From af2262ddff18bb46f4e79a854d448905c5b4d06d Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Fri, 7 Aug 2020 15:31:19 -0700 Subject: [PATCH] Improve btests with unstable table/set output ordering Particularly, the final output order of a table/set is sensitive to order of input/insertions and some tests were converting std::unordered_{set,map} to Zeek table/set and iteration over those standard containers may not always loop through elements in the same order across all platforms. --- .../clonetwo.out | 19 +++------- .../master.out | 38 +++++-------------- .../output1 | 21 +++------- .../output2 | 21 +++------- .../output3 | 21 +++------- .../output1 | 21 +++------- .../output2 | 21 +++------- .../clone.out | 19 +++------- .../clone.out | 19 +++------- .../master.out | 19 +++------- .../clone.out | 19 +++------- .../master.out | 19 +++------- .../clone.out | 19 +++------- .../master.out | 19 +++------- .../output | 6 +-- .../broker/store/brokerstore-attr-clone.zeek | 24 ++++++------ .../brokerstore-attr-persistence-clone.zeek | 26 +++++++------ .../store/brokerstore-attr-persistence.zeek | 17 +++++---- .../broker/store/brokerstore-attr-simple.zeek | 16 ++++---- .../brokerstore-backend-simple-reverse.zeek | 26 +++++++------ .../store/brokerstore-backend-simple.zeek | 20 +++++----- .../store/brokerstore-backend-sqlite.zeek | 28 +++++++------- testing/btest/broker/store/sort-stuff.zeek | 33 ++++++++++++++++ .../scripts/base/frameworks/config/weird.zeek | 9 ++++- 24 files changed, 200 insertions(+), 300 deletions(-) create mode 100644 testing/btest/broker/store/sort-stuff.zeek diff --git a/testing/btest/Baseline/broker.store.brokerstore-attr-clone/clonetwo.out b/testing/btest/Baseline/broker.store.brokerstore-attr-clone/clonetwo.out index 92150d1f57..51010a20bf 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-attr-clone/clonetwo.out +++ b/testing/btest/Baseline/broker.store.brokerstore-attr-clone/clonetwo.out @@ -1,19 +1,10 @@ Peer added -{ -[a] = 3, -[whatever] = 5, -[b] = 3 -} -{ -hi -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=3], [key=b, val=3], [key=whatever, val=5]] +[hi] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-attr-clone/master.out b/testing/btest/Baseline/broker.store.brokerstore-attr-clone/master.out index c02a667464..16b6032d5f 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-attr-clone/master.out +++ b/testing/btest/Baseline/broker.store.brokerstore-attr-clone/master.out @@ -1,38 +1,20 @@ Peer added Peer added -{ -[a] = 3, -[whatever] = 5, -[b] = 3 -} -{ -hi -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=3], [key=b, val=3], [key=whatever, val=5]] +[hi] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} -{ -[a] = 3, -[whatever] = 5, -[b] = 3 -} -{ -hi -} -{ -[a] = [a=1, b=c, c={ +}]]] +[[key=a, val=3], [key=b, val=3], [key=whatever, val=5]] +[hi] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-attr-persistence-clone/output1 b/testing/btest/Baseline/broker.store.brokerstore-attr-persistence-clone/output1 index b95c3c515f..a1b13f36c0 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-attr-persistence-clone/output1 +++ b/testing/btest/Baseline/broker.store.brokerstore-attr-persistence-clone/output1 @@ -1,20 +1,9 @@ -{ -[a] = 5, -[whatever] = 5, -[b] = 3 -} -{ -I am a set!, -I am really a set!, -Believe me - I am a set -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=5], [key=b, val=3], [key=whatever, val=5]] +[Believe me - I am a set, I am a set!, I am really a set!] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-attr-persistence-clone/output2 b/testing/btest/Baseline/broker.store.brokerstore-attr-persistence-clone/output2 index c707fa8bf0..a1b13f36c0 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-attr-persistence-clone/output2 +++ b/testing/btest/Baseline/broker.store.brokerstore-attr-persistence-clone/output2 @@ -1,20 +1,9 @@ -{ -[a] = 5, -[whatever] = 5, -[b] = 3 -} -{ -I am a set!, -Believe me - I am a set, -I am really a set! -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=5], [key=b, val=3], [key=whatever, val=5]] +[Believe me - I am a set, I am a set!, I am really a set!] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-attr-persistence-clone/output3 b/testing/btest/Baseline/broker.store.brokerstore-attr-persistence-clone/output3 index b95c3c515f..a1b13f36c0 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-attr-persistence-clone/output3 +++ b/testing/btest/Baseline/broker.store.brokerstore-attr-persistence-clone/output3 @@ -1,20 +1,9 @@ -{ -[a] = 5, -[whatever] = 5, -[b] = 3 -} -{ -I am a set!, -I am really a set!, -Believe me - I am a set -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=5], [key=b, val=3], [key=whatever, val=5]] +[Believe me - I am a set, I am a set!, I am really a set!] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-attr-persistence/output1 b/testing/btest/Baseline/broker.store.brokerstore-attr-persistence/output1 index b95c3c515f..a1b13f36c0 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-attr-persistence/output1 +++ b/testing/btest/Baseline/broker.store.brokerstore-attr-persistence/output1 @@ -1,20 +1,9 @@ -{ -[a] = 5, -[whatever] = 5, -[b] = 3 -} -{ -I am a set!, -I am really a set!, -Believe me - I am a set -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=5], [key=b, val=3], [key=whatever, val=5]] +[Believe me - I am a set, I am a set!, I am really a set!] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-attr-persistence/output2 b/testing/btest/Baseline/broker.store.brokerstore-attr-persistence/output2 index c707fa8bf0..a1b13f36c0 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-attr-persistence/output2 +++ b/testing/btest/Baseline/broker.store.brokerstore-attr-persistence/output2 @@ -1,20 +1,9 @@ -{ -[a] = 5, -[whatever] = 5, -[b] = 3 -} -{ -I am a set!, -Believe me - I am a set, -I am really a set! -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=5], [key=b, val=3], [key=whatever, val=5]] +[Believe me - I am a set, I am a set!, I am really a set!] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-attr-simple/clone.out b/testing/btest/Baseline/broker.store.brokerstore-attr-simple/clone.out index 92150d1f57..51010a20bf 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-attr-simple/clone.out +++ b/testing/btest/Baseline/broker.store.brokerstore-attr-simple/clone.out @@ -1,19 +1,10 @@ Peer added -{ -[a] = 3, -[whatever] = 5, -[b] = 3 -} -{ -hi -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=3], [key=b, val=3], [key=whatever, val=5]] +[hi] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-backend-simple-reverse/clone.out b/testing/btest/Baseline/broker.store.brokerstore-backend-simple-reverse/clone.out index 972e62bf2a..79f70d84f0 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-backend-simple-reverse/clone.out +++ b/testing/btest/Baseline/broker.store.brokerstore-backend-simple-reverse/clone.out @@ -1,18 +1,9 @@ -{ -[a] = 3, -[whatever] = 5, -[b] = 3 -} -{ -hi -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=3], [key=b, val=3], [key=whatever, val=5]] +[hi] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-backend-simple-reverse/master.out b/testing/btest/Baseline/broker.store.brokerstore-backend-simple-reverse/master.out index 972e62bf2a..79f70d84f0 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-backend-simple-reverse/master.out +++ b/testing/btest/Baseline/broker.store.brokerstore-backend-simple-reverse/master.out @@ -1,18 +1,9 @@ -{ -[a] = 3, -[whatever] = 5, -[b] = 3 -} -{ -hi -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=3], [key=b, val=3], [key=whatever, val=5]] +[hi] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-backend-simple/clone.out b/testing/btest/Baseline/broker.store.brokerstore-backend-simple/clone.out index d9a64fcf44..79f70d84f0 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-backend-simple/clone.out +++ b/testing/btest/Baseline/broker.store.brokerstore-backend-simple/clone.out @@ -1,18 +1,9 @@ -{ -[whatever] = 5, -[a] = 3, -[b] = 3 -} -{ -hi -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=3], [key=b, val=3], [key=whatever, val=5]] +[hi] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-backend-simple/master.out b/testing/btest/Baseline/broker.store.brokerstore-backend-simple/master.out index 972e62bf2a..79f70d84f0 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-backend-simple/master.out +++ b/testing/btest/Baseline/broker.store.brokerstore-backend-simple/master.out @@ -1,18 +1,9 @@ -{ -[a] = 3, -[whatever] = 5, -[b] = 3 -} -{ -hi -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=3], [key=b, val=3], [key=whatever, val=5]] +[hi] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-backend-sqlite/clone.out b/testing/btest/Baseline/broker.store.brokerstore-backend-sqlite/clone.out index 972e62bf2a..79f70d84f0 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-backend-sqlite/clone.out +++ b/testing/btest/Baseline/broker.store.brokerstore-backend-sqlite/clone.out @@ -1,18 +1,9 @@ -{ -[a] = 3, -[whatever] = 5, -[b] = 3 -} -{ -hi -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=3], [key=b, val=3], [key=whatever, val=5]] +[hi] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/broker.store.brokerstore-backend-sqlite/master.out b/testing/btest/Baseline/broker.store.brokerstore-backend-sqlite/master.out index 972e62bf2a..79f70d84f0 100644 --- a/testing/btest/Baseline/broker.store.brokerstore-backend-sqlite/master.out +++ b/testing/btest/Baseline/broker.store.brokerstore-backend-sqlite/master.out @@ -1,18 +1,9 @@ -{ -[a] = 3, -[whatever] = 5, -[b] = 3 -} -{ -hi -} -{ -[a] = [a=1, b=c, c={ +[[key=a, val=3], [key=b, val=3], [key=whatever, val=5]] +[hi] +[[key=a, val=[a=1, b=c, c={ elem1, elem2 -}], -[b] = [a=2, b=d, c={ +}]], [key=b, val=[a=2, b=d, c={ elem1, elem2 -}] -} +}]]] diff --git a/testing/btest/Baseline/scripts.base.frameworks.config.weird/output b/testing/btest/Baseline/scripts.base.frameworks.config.weird/output index e33d28024f..7cc0fae3cb 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.config.weird/output +++ b/testing/btest/Baseline/scripts.base.frameworks.config.weird/output @@ -1,9 +1,5 @@ Config values set -{ -whitelisted_net_weird, -whitelisted_flow_weird, -whitelisted_conn_weird -} +[whitelisted_conn_weird, whitelisted_flow_weird, whitelisted_net_weird] 10 10 5.0 secs diff --git a/testing/btest/broker/store/brokerstore-attr-clone.zeek b/testing/btest/broker/store/brokerstore-attr-clone.zeek index 429c8e6d4f..643347352f 100644 --- a/testing/btest/broker/store/brokerstore-attr-clone.zeek +++ b/testing/btest/broker/store/brokerstore-attr-clone.zeek @@ -2,9 +2,9 @@ # @TEST-PORT: BROKER_PORT -# @TEST-EXEC: btest-bg-run master "zeek -B broker -b ../master.zeek >../master.out" -# @TEST-EXEC: btest-bg-run cloneone "zeek -B broker -b ../cloneone.zeek >../cloneone.out" -# @TEST-EXEC: btest-bg-run clonetwo "zeek -B broker -b ../clonetwo.zeek >../clonetwo.out" +# @TEST-EXEC: btest-bg-run master "zeek -B broker -b %DIR/sort-stuff.zeek ../master.zeek >../master.out" +# @TEST-EXEC: btest-bg-run cloneone "zeek -B broker -b %DIR/sort-stuff.zeek ../cloneone.zeek >../cloneone.out" +# @TEST-EXEC: btest-bg-run clonetwo "zeek -B broker -b %DIR/sort-stuff.zeek ../clonetwo.zeek >../clonetwo.out" # @TEST-EXEC: btest-bg-wait 15 # # @TEST-EXEC: btest-diff master.out @@ -39,9 +39,9 @@ event zeek_init() event dump_tables() { - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); } event Broker::peer_added(endpoint: Broker::EndpointInfo, msg: string) @@ -95,9 +95,9 @@ event send_stuff_over() r["a"] = testrec($a=1, $b="b", $c=set("elem1", "elem2")); r["a"] = testrec($a=1, $b="c", $c=set("elem1", "elem2")); r["b"] = testrec($a=2, $b="d", $c=set("elem1", "elem2")); - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); } event killmeplease() @@ -142,9 +142,9 @@ event zeek_init() event dump_tables() { - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); terminate(); } diff --git a/testing/btest/broker/store/brokerstore-attr-persistence-clone.zeek b/testing/btest/broker/store/brokerstore-attr-persistence-clone.zeek index 086e3dd11f..b6ac8d2eb5 100644 --- a/testing/btest/broker/store/brokerstore-attr-persistence-clone.zeek +++ b/testing/btest/broker/store/brokerstore-attr-persistence-clone.zeek @@ -1,13 +1,15 @@ # @TEST-PORT: BROKER_PORT -# @TEST-EXEC: zeek -B broker -b one.zeek > output1 -# @TEST-EXEC: btest-bg-run master "cp ../*.sqlite . && zeek -B broker -b ../two.zeek >../output2" -# @TEST-EXEC: btest-bg-run clone "zeek -B broker -b ../three.zeek >../output3" +# @TEST-EXEC: zeek -B broker -b %DIR/sort-stuff.zeek one.zeek > output1 +# @TEST-EXEC: btest-bg-run master "cp ../*.sqlite . && zeek -B broker -b %DIR/sort-stuff.zeek ../two.zeek >../output2" +# @TEST-EXEC: btest-bg-run clone "zeek -B broker -b %DIR/sort-stuff.zeek ../three.zeek >../output3" # @TEST-EXEC: btest-bg-wait 15 # @TEST-EXEC: btest-diff output1 # @TEST-EXEC: btest-diff output2 # @TEST-EXEC: btest-diff output3 +# @TEST-EXEC: diff output1 output2 +# @TEST-EXEC: diff output2 output3 # the first test writes out the sqlite files... @@ -45,9 +47,9 @@ event zeek_init() r["a"] = testrec($a=1, $b="b", $c=set("elem1", "elem2")); r["a"] = testrec($a=1, $b="c", $c=set("elem1", "elem2")); r["b"] = testrec($a=2, $b="d", $c=set("elem1", "elem2")); - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); } @TEST-END-FILE @@ -79,9 +81,9 @@ event zeek_init() tablestore = Broker::create_master("table", Broker::SQLITE); setstore = Broker::create_master("set", Broker::SQLITE); recordstore = Broker::create_master("rec", Broker::SQLITE); - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); } event Broker::peer_lost(endpoint: Broker::EndpointInfo, msg: string) @@ -121,9 +123,9 @@ event zeek_init() event print_me() { - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); terminate(); } diff --git a/testing/btest/broker/store/brokerstore-attr-persistence.zeek b/testing/btest/broker/store/brokerstore-attr-persistence.zeek index 895a4e3ec6..2fde1e096e 100644 --- a/testing/btest/broker/store/brokerstore-attr-persistence.zeek +++ b/testing/btest/broker/store/brokerstore-attr-persistence.zeek @@ -1,7 +1,8 @@ -# @TEST-EXEC: zeek -B broker -b one.zeek > output1 -# @TEST-EXEC: zeek -B broker -b two.zeek > output2 +# @TEST-EXEC: zeek -B broker -b %DIR/sort-stuff.zeek one.zeek > output1 +# @TEST-EXEC: zeek -B broker -b %DIR/sort-stuff.zeek two.zeek > output2 # @TEST-EXEC: btest-diff output1 # @TEST-EXEC: btest-diff output2 +# @TEST-EXEC: diff output1 output2 # the first test writes out the sqlite files... @@ -39,9 +40,9 @@ event zeek_init() r["a"] = testrec($a=1, $b="b", $c=set("elem1", "elem2")); r["a"] = testrec($a=1, $b="c", $c=set("elem1", "elem2")); r["b"] = testrec($a=2, $b="d", $c=set("elem1", "elem2")); - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); } @TEST-END-FILE @@ -70,8 +71,8 @@ event zeek_init() tablestore = Broker::create_master("table", Broker::SQLITE); setstore = Broker::create_master("set", Broker::SQLITE); recordstore = Broker::create_master("rec", Broker::SQLITE); - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); } @TEST-END-FILE diff --git a/testing/btest/broker/store/brokerstore-attr-simple.zeek b/testing/btest/broker/store/brokerstore-attr-simple.zeek index 95ef10454f..a38f249817 100644 --- a/testing/btest/broker/store/brokerstore-attr-simple.zeek +++ b/testing/btest/broker/store/brokerstore-attr-simple.zeek @@ -1,7 +1,7 @@ # @TEST-PORT: BROKER_PORT -# @TEST-EXEC: btest-bg-run master "zeek -B broker -b ../master.zeek >../master.out" -# @TEST-EXEC: btest-bg-run clone "zeek -B broker -b ../clone.zeek >../clone.out" +# @TEST-EXEC: btest-bg-run master "zeek -B broker -b %DIR/sort-stuff.zeek ../master.zeek >../master.out" +# @TEST-EXEC: btest-bg-run clone "zeek -B broker -b %DIR/sort-stuff.zeek ../clone.zeek >../clone.out" # @TEST-EXEC: btest-bg-wait 15 # # @TEST-EXEC: btest-diff clone.out @@ -48,9 +48,9 @@ event insert_stuff() r["a"] = testrec($a=1, $b="b", $c=set("elem1", "elem2")); r["a"] = testrec($a=1, $b="c", $c=set("elem1", "elem2")); r["b"] = testrec($a=2, $b="d", $c=set("elem1", "elem2")); - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); } event Broker::peer_added(endpoint: Broker::EndpointInfo, msg: string) @@ -92,9 +92,9 @@ event zeek_init() event dump_tables() { - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); terminate(); } diff --git a/testing/btest/broker/store/brokerstore-backend-simple-reverse.zeek b/testing/btest/broker/store/brokerstore-backend-simple-reverse.zeek index 91993e2bec..73e729f380 100644 --- a/testing/btest/broker/store/brokerstore-backend-simple-reverse.zeek +++ b/testing/btest/broker/store/brokerstore-backend-simple-reverse.zeek @@ -2,13 +2,15 @@ # @TEST-PORT: BROKER_PORT2 # @TEST-PORT: BROKER_PORT3 -# @TEST-EXEC: btest-bg-run manager-1 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=manager-1 zeek -B broker ../master.zeek >../master.out" -# @TEST-EXEC: btest-bg-run worker-1 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-1 zeek -B broker ../clone.zeek >../clone.out" -# @TEST-EXEC: btest-bg-run worker-2 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-2 zeek -B broker ../clone2.zeek >../clone2.out" +# @TEST-EXEC: btest-bg-run manager-1 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=manager-1 zeek -B broker %DIR/sort-stuff.zeek ../master.zeek >../master.out" +# @TEST-EXEC: btest-bg-run worker-1 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-1 zeek -B broker %DIR/sort-stuff.zeek ../clone.zeek >../clone.out" +# @TEST-EXEC: btest-bg-run worker-2 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-2 zeek -B broker %DIR/sort-stuff.zeek ../clone2.zeek >../clone2.out" # @TEST-EXEC: btest-bg-wait 40 # # @TEST-EXEC: btest-diff master.out # @TEST-EXEC: btest-diff clone.out +# @TEST-EXEC: diff master.out clone.out +# @TEST-EXEC: diff master.out clone2.out @TEST-START-FILE cluster-layout.zeek redef Cluster::nodes = { @@ -54,9 +56,9 @@ event Broker::peer_lost(endpoint: Broker::EndpointInfo, msg: string) if ( terminate_count == 2) { terminate(); - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); } } @@ -98,9 +100,9 @@ event dump_tables() r["a"] = testrec($a=1, $b="b", $c=set("elem1", "elem2")); r["a"] = testrec($a=1, $b="c", $c=set("elem1", "elem2")); r["b"] = testrec($a=2, $b="d", $c=set("elem1", "elem2")); - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); schedule 10sec { terminate_me() }; } @@ -136,9 +138,9 @@ global r: table[string] of testrec &broker_allow_complex_type &backend=Broker::M event dump_tables() { - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); terminate(); } diff --git a/testing/btest/broker/store/brokerstore-backend-simple.zeek b/testing/btest/broker/store/brokerstore-backend-simple.zeek index 698240e43b..42358287eb 100644 --- a/testing/btest/broker/store/brokerstore-backend-simple.zeek +++ b/testing/btest/broker/store/brokerstore-backend-simple.zeek @@ -2,13 +2,15 @@ # @TEST-PORT: BROKER_PORT2 # @TEST-PORT: BROKER_PORT3 -# @TEST-EXEC: btest-bg-run manager-1 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=manager-1 zeek -B broker ../master.zeek >../master.out" -# @TEST-EXEC: btest-bg-run worker-1 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-1 zeek -B broker ../clone.zeek >../clone.out" -# @TEST-EXEC: btest-bg-run worker-2 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-2 zeek -B broker ../clone.zeek >../clone2.out" +# @TEST-EXEC: btest-bg-run manager-1 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=manager-1 zeek -B broker %DIR/sort-stuff.zeek ../master.zeek >../master.out" +# @TEST-EXEC: btest-bg-run worker-1 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-1 zeek -B broker %DIR/sort-stuff.zeek ../clone.zeek >../clone.out" +# @TEST-EXEC: btest-bg-run worker-2 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-2 zeek -B broker %DIR/sort-stuff.zeek ../clone.zeek >../clone2.out" # @TEST-EXEC: btest-bg-wait 15 # # @TEST-EXEC: btest-diff master.out # @TEST-EXEC: btest-diff clone.out +# @TEST-EXEC: diff master.out clone.out +# @TEST-EXEC: diff master.out clone2.out @TEST-START-FILE cluster-layout.zeek redef Cluster::nodes = { @@ -50,9 +52,9 @@ event zeek_init() r["a"] = testrec($a=1, $b="b", $c=set("elem1", "elem2")); r["a"] = testrec($a=1, $b="c", $c=set("elem1", "elem2")); r["b"] = testrec($a=2, $b="d", $c=set("elem1", "elem2")); - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); } event Broker::peer_lost(endpoint: Broker::EndpointInfo, msg: string) @@ -82,9 +84,9 @@ global r: table[string] of testrec &broker_allow_complex_type &backend=Broker::M event dump_tables() { - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); terminate(); } diff --git a/testing/btest/broker/store/brokerstore-backend-sqlite.zeek b/testing/btest/broker/store/brokerstore-backend-sqlite.zeek index f4eed70c3f..cfb6a1f3a4 100644 --- a/testing/btest/broker/store/brokerstore-backend-sqlite.zeek +++ b/testing/btest/broker/store/brokerstore-backend-sqlite.zeek @@ -2,14 +2,16 @@ # @TEST-PORT: BROKER_PORT2 # @TEST-PORT: BROKER_PORT3 -# @TEST-EXEC: zeek preseed-sqlite.zeek; -# @TEST-EXEC: btest-bg-run manager-1 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=manager-1 zeek -B broker ../master.zeek >../master.out" -# @TEST-EXEC: btest-bg-run worker-1 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-1 zeek -B broker ../clone.zeek >../clone.out" -# @TEST-EXEC: btest-bg-run worker-2 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-2 zeek -B broker ../clone.zeek >../clone2.out" +# @TEST-EXEC: zeek %DIR/sort-stuff.zeek preseed-sqlite.zeek; +# @TEST-EXEC: btest-bg-run manager-1 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=manager-1 zeek -B broker %DIR/sort-stuff.zeek ../master.zeek >../master.out" +# @TEST-EXEC: btest-bg-run worker-1 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-1 zeek -B broker %DIR/sort-stuff.zeek ../clone.zeek >../clone.out" +# @TEST-EXEC: btest-bg-run worker-2 "ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-2 zeek -B broker %DIR/sort-stuff.zeek ../clone.zeek >../clone2.out" # @TEST-EXEC: btest-bg-wait 40 # # @TEST-EXEC: btest-diff master.out # @TEST-EXEC: btest-diff clone.out +# @TEST-EXEC: diff master.out clone.out +# @TEST-EXEC: diff master.out clone2.out @TEST-START-FILE cluster-layout.zeek redef Cluster::nodes = { @@ -47,9 +49,9 @@ event zeek_init() r["a"] = testrec($a=1, $b="b", $c=set("elem1", "elem2")); r["a"] = testrec($a=1, $b="c", $c=set("elem1", "elem2")); r["b"] = testrec($a=2, $b="d", $c=set("elem1", "elem2")); - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); } @TEST-END-FILE @@ -81,9 +83,9 @@ redef Broker::table_store_db_directory = ".."; event zeek_init() { - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); } event Broker::peer_lost(endpoint: Broker::EndpointInfo, msg: string) @@ -113,9 +115,9 @@ global r: table[string] of testrec &broker_allow_complex_type &backend=Broker::M event dump_tables() { - print t; - print s; - print r; + print sort_table(t); + print sort_set(s); + print sort_table(r); terminate(); } diff --git a/testing/btest/broker/store/sort-stuff.zeek b/testing/btest/broker/store/sort-stuff.zeek new file mode 100644 index 0000000000..c9d75f29a2 --- /dev/null +++ b/testing/btest/broker/store/sort-stuff.zeek @@ -0,0 +1,33 @@ +# @TEST-IGNORE + +function sort_set(s: set[string]): vector of string + { + local v: vector of string = vector(); + + for ( e in s ) + v += e; + + sort(v, strcmp); + return v; + } + +type TableEntry: record { + key: string; + val: any; +}; + +function sort_table(t: table[string] of any): vector of TableEntry + { + local vs: vector of string = vector(); + local rval: vector of TableEntry = vector(); + + for ( k, v in t ) + vs += k; + + sort(vs, strcmp); + + for ( i in vs ) + rval += TableEntry($key=vs[i], $val=t[vs[i]]); + + return rval; + } diff --git a/testing/btest/scripts/base/frameworks/config/weird.zeek b/testing/btest/scripts/base/frameworks/config/weird.zeek index 67c67b421d..ed6241bf50 100644 --- a/testing/btest/scripts/base/frameworks/config/weird.zeek +++ b/testing/btest/scripts/base/frameworks/config/weird.zeek @@ -13,7 +13,14 @@ event zeek_init() event zeek_init() &priority = -10 { - print Reporter::get_weird_sampling_whitelist(); + local v: vector of string = vector(); + local wl = Reporter::get_weird_sampling_whitelist(); + + for ( e in wl ) + v += e; + + sort(v, strcmp); + print v; print Reporter::get_weird_sampling_rate(); print Reporter::get_weird_sampling_threshold(); print Reporter::get_weird_sampling_duration();