From: Alexandre Montplaisir Date: Sat, 11 Apr 2015 00:01:19 +0000 (-0400) Subject: Add pass/fail tests for events with undefined stream IDs X-Git-Url: https://git.efficios.com/?p=ctf-testsuite.git;a=commitdiff_plain;h=185bd6caa014a79e400aa70bd6f5f71220a890fe Add pass/fail tests for events with undefined stream IDs It's valid to have events not specify a stream ID, but only if: * There are only unspecified-stream events in the trace, or * Only stream_id 0 is used in other events. In this case, all events are considered as being part of stream 0. If there are other stream IDs defined, then all events should specify their own. Signed-off-by: Alexandre Montplaisir Signed-off-by: Mathieu Desnoyers --- diff --git a/tests/1.8/regression/metadata/fail/stream-undefined-id/metadata b/tests/1.8/regression/metadata/fail/stream-undefined-id/metadata new file mode 100644 index 0000000..a48700a --- /dev/null +++ b/tests/1.8/regression/metadata/fail/stream-undefined-id/metadata @@ -0,0 +1,47 @@ +/* CTF 1.8 */ +trace { + major = 1; + minor = 8; + byte_order = le; + packet.header := struct { + integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } stream_id; + }; +}; + +/* + * Some events explicitly define stream_id = 0, some define stream_id = 1, and + * others don't specify a stream_id at all. + * This is not valid: if there are events not specifying a stream, then only + * stream_id = 0 is allowed. + */ + +stream { + id = 0; +}; + +stream { + id = 1; +}; + + +event { + id = 0; + name = "event0"; +}; + +event { + id = 1; + name = "event1"; + stream_id = 0; +}; + +event { + id = 2; + name = "event2"; + stream_id = 1; +}; + +event { + id = 3; + name = "event3"; +}; diff --git a/tests/1.8/regression/metadata/pass/stream-undefined-id/metadata b/tests/1.8/regression/metadata/pass/stream-undefined-id/metadata new file mode 100644 index 0000000..e112d26 --- /dev/null +++ b/tests/1.8/regression/metadata/pass/stream-undefined-id/metadata @@ -0,0 +1,39 @@ +/* CTF 1.8 */ +trace { + major = 1; + minor = 8; + byte_order = le; + packet.header := struct { + integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } stream_id; + }; +}; + +/* + * Some events explicitly define stream_id = 0, others don't specify a stream_id + * at all. This should be valid, as long as no other stream is defined. + */ + +stream { + id = 0; +}; + +event { + id = 0; + name = "event0"; +}; + +event { + id = 1; + name = "event1"; +}; + +event { + id = 2; + name = "event2"; + stream_id = 0; +}; + +event { + id = 3; + name = "event3"; +};