tests/utils/python/mctf.py: convert JSON array → JSON text seq.
This patch updates `mctf.py` so that it converts a JSON array found in
the part named `metadata` to a JSON text sequence.
This makes it possible to write a CTF 2 metadata part without the odd
RS characters, for example:
--- metadata
[
{
"type": "preamble",
"version": 2
},
{
"type": "trace-class"
},
{
"type": "data-stream-class"
},
{
"name": "test",
"payload-field-class": {
"member-classes": [
{
"field-class": {
"type": "variable-length-unsigned-integer"
},
"name": "vu1a"
},
{
"field-class": {
"type": "variable-length-unsigned-integer"
},
"name": "vu1b"
},
{
"field-class": {
"type": "variable-length-unsigned-integer"
},
"name": "vu2"
},
{
"field-class": {
"type": "variable-length-unsigned-integer"
},
"name": "vu3"
},
{
"field-class": {
"type": "variable-length-unsigned-integer"
},
"name": "vu4"
},
{
"field-class": {
"type": "variable-length-unsigned-integer"
},
"name": "vu5"
},
{
"field-class": {
"type": "variable-length-unsigned-integer"
},
"name": "vu6"
},
{
"field-class": {
"type": "variable-length-unsigned-integer"
},
"name": "vu7"
},
{
"field-class": {
"type": "variable-length-unsigned-integer"
},
"name": "vu8"
},
{
"field-class": {
"type": "variable-length-unsigned-integer"
},
"name": "vu9"
},
{
"field-class": {
"type": "variable-length-unsigned-integer"
},
"name": "vu10"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi1a"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi1b"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi1c"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi2"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi3"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi4"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi5"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi6"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi7"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi8"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi9"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi10a"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi10b"
},
{
"field-class": {
"type": "variable-length-signed-integer"
},
"name": "vi10c"
}
],
"type": "structure"
},
"type": "event-record-class"
}
]
--- my-stream
[0 : uleb128] # `vu1a`
[77 : uleb128] # `vu1b`
[177 : uleb128] # `vu2`
[43123 : uleb128] # `vu3`
[
21829382 : uleb128] # `vu4`
[
5121829382 : uleb128] # `vu5`
[
95121829382 : uleb128] # `vu6`
[
13895121829382 : uleb128] # `vu7`
[
913895121855555 : uleb128] # `vu8`
[
333333333333333333 : uleb128] # `vu9`
[
18446744073709551615 : uleb128] # `vu10`
[0 : sleb128] # `vi1a`
[-1 : sleb128] # `vi1b`
[23 : sleb128] # `vi1c`
[-156 : sleb128] # `vi2`
[8556 : sleb128] # `vi3`
[-
100101001 : sleb128] # `vi4`
[
8288491823 : sleb128] # `vi5`
[-
171717171717 : sleb128] # `vi6`
[
123456787654321 : sleb128] # `vi7`
[-
1121231234123450 : sleb128] # `vi8`
[
99999999999999999 : sleb128] # `vi9`
[
9223372036853775807 : sleb128] # `vi10a`
[
9223372036854775807 : sleb128] # `vi10b`
[-
9223372036854775808 : sleb128] # `vi10c`
Detecting `[` as the first character of the part is enough because a
CTF 1.8 TSDL metadata text never starts with `[`.
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Change-Id: Ic1d6fb1644870f3b951d26238f82c79d7f3cf25a
Reviewed-on: https://review.lttng.org/c/babeltrace/+/12772