From 185bd6caa014a79e400aa70bd6f5f71220a890fe Mon Sep 17 00:00:00 2001 From: Alexandre Montplaisir Date: Fri, 10 Apr 2015 20:01:19 -0400 Subject: [PATCH] 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 --- .../fail/stream-undefined-id/metadata | 47 +++++++++++++++++++ .../pass/stream-undefined-id/metadata | 39 +++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 tests/1.8/regression/metadata/fail/stream-undefined-id/metadata create mode 100644 tests/1.8/regression/metadata/pass/stream-undefined-id/metadata 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"; +}; -- 2.34.1