On 6/21/2019 7:53 AM, Jakub Narebski wrote:
Josh Steadmon <steadmon@xxxxxxxxxx> writes:
On 2019.06.12 15:28, Ævar Arnfjörð Bjarmason wrote:
On Wed, Jun 12 2019, Josh Steadmon wrote:
trace_schema_validator can be used to verify that trace2 event output
conforms to the expectations set by the API documentation and codified
in event_schema.json (or strict_schema.json). This allows us to build a
regression test to verify that trace2 output does not change
unexpectedly.
Does this actually work for you? As seen in my code at
https://public-inbox.org/git/87zhnuwdkp.fsf@xxxxxxxxxxxxxxxxxxx/ our
test suite emits various lines of JSON that aren't even validly encoded,
so I can't imagine we're passing any sort of proper parser validatior,
let alone a schema validator.
[...]
The problem with the existing validators is that they expect each file to be a
complete JSON entity, whereas the trace output is one object per line. You can
of course loop over the lines in a shell script, but in my testing this approach
took multiple hours on the full test suite trace output, vs. 15 minutes for the
implementation in this patch.
Isn't this JSON-Lines (http://jsonlines.org/), also known as
Line-delimited JSON (LDJSON), newline-delimited JSON (NDJSON) format?
Yes. My Trace2 event format is a series of JSON objects, one per line.
I didn't know there was an official name for it.
Thanks
Jeff
Best,
--
Jakub Narębski