From 5569d8195324c1d7a6d0259aec0929c36184e9bc Mon Sep 17 00:00:00 2001 From: Vern Paxson Date: Fri, 29 Jul 2022 21:30:40 -0700 Subject: [PATCH] ensure that language tests pay attention to .stderr --- testing/btest/Baseline/language.addr/.stderr | 1 + testing/btest/Baseline/language.any/.stderr | 1 + .../Baseline/language.at-if-event/.stderr | 1 + testing/btest/Baseline/language.at-if/.stderr | 1 + .../btest/Baseline/language.at-ifdef/.stderr | 1 + .../btest/Baseline/language.at-ifndef/.stderr | 1 + .../btest/Baseline/language.at-load/.stderr | 1 + testing/btest/Baseline/language.bool/.stderr | 1 + .../language.conditional-expression/.stderr | 1 + testing/btest/Baseline/language.copy/.stderr | 1 + testing/btest/Baseline/language.count/.stderr | 1 + .../btest/Baseline/language.double/.stderr | 1 + testing/btest/Baseline/language.enum/.stderr | 1 + testing/btest/Baseline/language.for/.stderr | 1 + .../btest/Baseline/language.function/.stderr | 1 + testing/btest/Baseline/language.if/.stderr | 1 + testing/btest/Baseline/language.int/.stderr | 1 + .../btest/Baseline/language.interval/.stderr | 1 + .../btest/Baseline/language.module/.stderr | 1 + .../btest/Baseline/language.no-module/.stderr | 1 + .../btest/Baseline/language.pattern/.stderr | 1 + testing/btest/Baseline/language.port/.stderr | 1 + .../Baseline/language.precedence/.stderr | 1 + testing/btest/Baseline/language.set/.stderr | 1 + .../Baseline/language.short-circuit/.stderr | 1 + .../btest/Baseline/language.string/.stderr | 1 + .../btest/Baseline/language.subnet/.stderr | 1 + testing/btest/Baseline/language.table/.stderr | 1 + testing/btest/Baseline/language.time/.stderr | 1 + testing/btest/language/addr.zeek | 37 ++++++----- testing/btest/language/any.zeek | 9 +-- testing/btest/language/at-if-event.zeek | 2 + testing/btest/language/at-if.zeek | 4 +- testing/btest/language/at-ifdef.zeek | 4 +- testing/btest/language/at-ifndef.zeek | 4 +- testing/btest/language/at-load.zeek | 1 + testing/btest/language/bool.zeek | 12 ++-- .../language/conditional-expression.zeek | 18 ++--- testing/btest/language/copy.zeek | 1 + testing/btest/language/count.zeek | 19 +++--- testing/btest/language/double.zeek | 46 ++++++------- testing/btest/language/enum.zeek | 12 ++-- testing/btest/language/for.zeek | 1 + testing/btest/language/function.zeek | 1 + testing/btest/language/if.zeek | 1 + testing/btest/language/int.zeek | 33 +++++----- testing/btest/language/interval.zeek | 65 +++++++++---------- testing/btest/language/module.zeek | 1 + testing/btest/language/no-module.zeek | 1 + testing/btest/language/pattern.zeek | 10 +-- testing/btest/language/port.zeek | 24 +++---- testing/btest/language/precedence.zeek | 17 ++--- testing/btest/language/set.zeek | 1 + testing/btest/language/short-circuit.zeek | 1 + testing/btest/language/string.zeek | 44 ++++++------- testing/btest/language/subnet.zeek | 44 ++++++------- testing/btest/language/table.zeek | 1 + testing/btest/language/time.zeek | 1 + 58 files changed, 243 insertions(+), 201 deletions(-) create mode 100644 testing/btest/Baseline/language.addr/.stderr create mode 100644 testing/btest/Baseline/language.any/.stderr create mode 100644 testing/btest/Baseline/language.at-if-event/.stderr create mode 100644 testing/btest/Baseline/language.at-if/.stderr create mode 100644 testing/btest/Baseline/language.at-ifdef/.stderr create mode 100644 testing/btest/Baseline/language.at-ifndef/.stderr create mode 100644 testing/btest/Baseline/language.at-load/.stderr create mode 100644 testing/btest/Baseline/language.bool/.stderr create mode 100644 testing/btest/Baseline/language.conditional-expression/.stderr create mode 100644 testing/btest/Baseline/language.copy/.stderr create mode 100644 testing/btest/Baseline/language.count/.stderr create mode 100644 testing/btest/Baseline/language.double/.stderr create mode 100644 testing/btest/Baseline/language.enum/.stderr create mode 100644 testing/btest/Baseline/language.for/.stderr create mode 100644 testing/btest/Baseline/language.function/.stderr create mode 100644 testing/btest/Baseline/language.if/.stderr create mode 100644 testing/btest/Baseline/language.int/.stderr create mode 100644 testing/btest/Baseline/language.interval/.stderr create mode 100644 testing/btest/Baseline/language.module/.stderr create mode 100644 testing/btest/Baseline/language.no-module/.stderr create mode 100644 testing/btest/Baseline/language.pattern/.stderr create mode 100644 testing/btest/Baseline/language.port/.stderr create mode 100644 testing/btest/Baseline/language.precedence/.stderr create mode 100644 testing/btest/Baseline/language.set/.stderr create mode 100644 testing/btest/Baseline/language.short-circuit/.stderr create mode 100644 testing/btest/Baseline/language.string/.stderr create mode 100644 testing/btest/Baseline/language.subnet/.stderr create mode 100644 testing/btest/Baseline/language.table/.stderr create mode 100644 testing/btest/Baseline/language.time/.stderr diff --git a/testing/btest/Baseline/language.addr/.stderr b/testing/btest/Baseline/language.addr/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.addr/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.any/.stderr b/testing/btest/Baseline/language.any/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.any/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.at-if-event/.stderr b/testing/btest/Baseline/language.at-if-event/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.at-if-event/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.at-if/.stderr b/testing/btest/Baseline/language.at-if/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.at-if/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.at-ifdef/.stderr b/testing/btest/Baseline/language.at-ifdef/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.at-ifdef/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.at-ifndef/.stderr b/testing/btest/Baseline/language.at-ifndef/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.at-ifndef/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.at-load/.stderr b/testing/btest/Baseline/language.at-load/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.at-load/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.bool/.stderr b/testing/btest/Baseline/language.bool/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.bool/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.conditional-expression/.stderr b/testing/btest/Baseline/language.conditional-expression/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.conditional-expression/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.copy/.stderr b/testing/btest/Baseline/language.copy/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.copy/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.count/.stderr b/testing/btest/Baseline/language.count/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.count/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.double/.stderr b/testing/btest/Baseline/language.double/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.double/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.enum/.stderr b/testing/btest/Baseline/language.enum/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.enum/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.for/.stderr b/testing/btest/Baseline/language.for/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.for/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.function/.stderr b/testing/btest/Baseline/language.function/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.function/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.if/.stderr b/testing/btest/Baseline/language.if/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.if/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.int/.stderr b/testing/btest/Baseline/language.int/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.int/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.interval/.stderr b/testing/btest/Baseline/language.interval/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.interval/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.module/.stderr b/testing/btest/Baseline/language.module/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.module/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.no-module/.stderr b/testing/btest/Baseline/language.no-module/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.no-module/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.pattern/.stderr b/testing/btest/Baseline/language.pattern/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.pattern/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.port/.stderr b/testing/btest/Baseline/language.port/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.port/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.precedence/.stderr b/testing/btest/Baseline/language.precedence/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.precedence/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.set/.stderr b/testing/btest/Baseline/language.set/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.set/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.short-circuit/.stderr b/testing/btest/Baseline/language.short-circuit/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.short-circuit/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.string/.stderr b/testing/btest/Baseline/language.string/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.string/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.subnet/.stderr b/testing/btest/Baseline/language.subnet/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.subnet/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.table/.stderr b/testing/btest/Baseline/language.table/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.table/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/Baseline/language.time/.stderr b/testing/btest/Baseline/language.time/.stderr new file mode 100644 index 0000000000..49d861c74c --- /dev/null +++ b/testing/btest/Baseline/language.time/.stderr @@ -0,0 +1 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. diff --git a/testing/btest/language/addr.zeek b/testing/btest/language/addr.zeek index dff331c3fd..7fb8e1c529 100644 --- a/testing/btest/language/addr.zeek +++ b/testing/btest/language/addr.zeek @@ -1,20 +1,33 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { print fmt("%s (%s)", msg, expect ? "PASS" : "FAIL"); } +# IPv4 addresses +global a1: addr = 0.0.0.0; +global a2: addr = 10.0.0.11; +global a3: addr = 255.255.255.255; +global a4 = 192.1.2.3; + +# IPv6 addresses +global b1: addr = [::]; +global b2: addr = [::255.255.255.255]; +global b3: addr = [::ffff:ffff]; +global b4: addr = [ffff::ffff]; +global b5: addr = [0000:0000:0000:0000:0000:0000:0000:0000]; +global b6: addr = [aaaa:bbbb:cccc:dddd:eeee:ffff:1111:2222]; +global b7: addr = [AAAA:BBBB:CCCC:DDDD:EEEE:FFFF:1111:2222]; +global b9 = [2001:db8:0:0:0:FFFF:192.168.0.5]; + +# IPv4-mapped-IPv6 (internally treated as IPv4) +global c1: addr = [::ffff:1.2.3.4]; event zeek_init() { - # IPv4 addresses - local a1: addr = 0.0.0.0; - local a2: addr = 10.0.0.11; - local a3: addr = 255.255.255.255; - local a4 = 192.1.2.3; - test_case( "IPv4 address inequality", a1 != a2 ); test_case( "IPv4 address equality", a1 == 0.0.0.0 ); test_case( "IPv4 address comparison", a1 < a2 ); @@ -22,16 +35,7 @@ event zeek_init() test_case( "size of IPv4 address", |a1| == 32 ); test_case( "IPv4 address type inference", type_name(a4) == "addr" ); - # IPv6 addresses - local b1: addr = [::]; - local b2: addr = [::255.255.255.255]; - local b3: addr = [::ffff:ffff]; - local b4: addr = [ffff::ffff]; - local b5: addr = [0000:0000:0000:0000:0000:0000:0000:0000]; - local b6: addr = [aaaa:bbbb:cccc:dddd:eeee:ffff:1111:2222]; - local b7: addr = [AAAA:BBBB:CCCC:DDDD:EEEE:FFFF:1111:2222]; local b8 = [a::b]; - local b9 = [2001:db8:0:0:0:FFFF:192.168.0.5]; test_case( "IPv6 address inequality", b1 != b2 ); test_case( "IPv6 address equality", b1 == b5 ); @@ -44,9 +48,6 @@ event zeek_init() test_case( "IPv4 and IPv6 address inequality", a1 != b1 ); - # IPv4-mapped-IPv6 (internally treated as IPv4) - local c1: addr = [::ffff:1.2.3.4]; - test_case( "IPv4-mapped-IPv6 equality to IPv4", c1 == 1.2.3.4 ); test_case( "IPv4-mapped-IPv6 is IPv4", is_v4_addr(c1) == T ); } diff --git a/testing/btest/language/any.zeek b/testing/btest/language/any.zeek index aebab284c2..ed22b1df38 100644 --- a/testing/btest/language/any.zeek +++ b/testing/btest/language/any.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { @@ -11,12 +12,12 @@ function anyarg(arg1: any, arg1type: string) test_case( arg1type, type_name(arg1) == arg1type ); } +global any1: any = 5; +global any2: any = "bar"; +global any3: any = /bar/; + event zeek_init() { - local any1: any = 5; - local any2: any = "bar"; - local any3: any = /bar/; - # Test using variable of type "any" anyarg( any1, "count" ); diff --git a/testing/btest/language/at-if-event.zeek b/testing/btest/language/at-if-event.zeek index 9c26d39faa..5624eb6f91 100644 --- a/testing/btest/language/at-if-event.zeek +++ b/testing/btest/language/at-if-event.zeek @@ -1,5 +1,7 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr + # Check if @if can be used to alternative function/event definitions @if ( 1==1 ) diff --git a/testing/btest/language/at-if.zeek b/testing/btest/language/at-if.zeek index e6d7f58cae..4e62051b1c 100644 --- a/testing/btest/language/at-if.zeek +++ b/testing/btest/language/at-if.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { @@ -10,11 +11,10 @@ function foo(c: count): bool { return c == 42 ? T : F; } global TRUE_CONDITION = T; +global xyz = 0; event zeek_init() { - local xyz = 0; - # Test "if" without "else" @if ( F ) diff --git a/testing/btest/language/at-ifdef.zeek b/testing/btest/language/at-ifdef.zeek index cbc26b5cfa..df20c972de 100644 --- a/testing/btest/language/at-ifdef.zeek +++ b/testing/btest/language/at-ifdef.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { @@ -7,11 +8,10 @@ function test_case(msg: string, expect: bool) } global thisisdefined = 123; +global xyz = 0; event zeek_init() { - local xyz = 0; - # Test "ifdef" without "else" @ifdef ( notdefined ) diff --git a/testing/btest/language/at-ifndef.zeek b/testing/btest/language/at-ifndef.zeek index 069b51bddc..6d3c3325dc 100644 --- a/testing/btest/language/at-ifndef.zeek +++ b/testing/btest/language/at-ifndef.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { @@ -7,11 +8,10 @@ function test_case(msg: string, expect: bool) } global thisisdefined = 123; +global xyz = 0; event zeek_init() { - local xyz = 0; - # Test "ifndef" without "else" @ifndef ( notdefined ) diff --git a/testing/btest/language/at-load.zeek b/testing/btest/language/at-load.zeek index 45df73b05c..1937a9cdfb 100644 --- a/testing/btest/language/at-load.zeek +++ b/testing/btest/language/at-load.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr # In this script, we try to access each object defined in a "@load"ed script diff --git a/testing/btest/language/bool.zeek b/testing/btest/language/bool.zeek index e19f5a3714..0e505d13af 100644 --- a/testing/btest/language/bool.zeek +++ b/testing/btest/language/bool.zeek @@ -1,20 +1,20 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { print fmt("%s (%s)", msg, expect ? "PASS" : "FAIL"); } +global b1: bool = T; +global b2: bool = F; +global b3: bool = T; +global b4 = T; +global b5 = F; event zeek_init() { - local b1: bool = T; - local b2: bool = F; - local b3: bool = T; - local b4 = T; - local b5 = F; - test_case( "equality operator", b1 == b3 ); test_case( "inequality operator", b1 != b2 ); test_case( "logical or operator", b1 || b2 ); diff --git a/testing/btest/language/conditional-expression.zeek b/testing/btest/language/conditional-expression.zeek index 064ee0f790..1c9eb8f56b 100644 --- a/testing/btest/language/conditional-expression.zeek +++ b/testing/btest/language/conditional-expression.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { @@ -25,13 +26,17 @@ function f2(): bool # value is constant. global false = F; +global a: count; +global b: count; +global res: count; +global res2: bool; + +global s: set[string] = { "one", "two", "three" }; +global t: table[count] of string = { [1] = "one", [2] = "two", [3] = "three" }; +global v: vector of string = { "one", "two", "three" }; + event zeek_init() { - local a: count; - local b: count; - local res: count; - local res2: bool; - # Test that the correct operand is evaluated a = b = 0; @@ -67,21 +72,18 @@ event zeek_init() test_case( "associativity", ct == 2 ); # Test for unspecified set coercion - local s: set[string] = { "one", "two", "three" }; local sT = T ? set() : s; local sF = F ? s : set(); print |sT|, type_name(sT); print |sF|, type_name(sF); # Test for unspecified table coercion - local t: table[count] of string = { [1] = "one", [2] = "two", [3] = "three" }; local tT = T ? table() : t; local tF = F ? t : table(); print |tT|, type_name(tT); print |tF|, type_name(tF); # Test for unspecified vector coercion - local v: vector of string = { "one", "two", "three" }; local vT = T ? vector() : v; local vF = F ? v : vector(); print |vT|, type_name(vT); diff --git a/testing/btest/language/copy.zeek b/testing/btest/language/copy.zeek index 638976295d..f500491835 100644 --- a/testing/btest/language/copy.zeek +++ b/testing/btest/language/copy.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { diff --git a/testing/btest/language/count.zeek b/testing/btest/language/count.zeek index 7ba4c7982f..ae6a52665e 100644 --- a/testing/btest/language/count.zeek +++ b/testing/btest/language/count.zeek @@ -1,27 +1,25 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { print fmt("%s (%s)", msg, expect ? "PASS" : "FAIL"); } +global c1: count = 0; +global c2: count = 5; +global c3: count = 0xFF; +global c4: count = 255; +global c5: count = 18446744073709551615; # maximum allowed value +global c6: count = 0xffffffffffffffff; # maximum allowed value +global c7 = 1; event zeek_init() { - local c1: count = 0; - local c2: count = 5; - local c3: count = 0xFF; - local c4: count = 255; - local c5: count = 18446744073709551615; # maximum allowed value - local c6: count = 0xffffffffffffffff; # maximum allowed value - local c7 = 1; - # Type inference test - test_case( "type inference", type_name(c7) == "count" ); - # Test various constant representations test_case( "hexadecimal", c3 == c4 ); @@ -60,6 +58,5 @@ event zeek_init() test_case( str1, str1 == "max count value = 18446744073709551615" ); local str2 = fmt("max count value = %d", c6); test_case( str2, str2 == "max count value = 18446744073709551615" ); - } diff --git a/testing/btest/language/double.zeek b/testing/btest/language/double.zeek index f98abc839a..8334657b98 100644 --- a/testing/btest/language/double.zeek +++ b/testing/btest/language/double.zeek @@ -1,37 +1,37 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { print fmt("%s (%s)", msg, expect ? "PASS" : "FAIL"); } +global d1: double = 3; +global d2: double = +3; +global d3: double = 3.; +global d4: double = 3.0; +global d5: double = +3.0; +global d6: double = 3e0; +global d7: double = 3E0; +global d8: double = 3e+0; +global d9: double = 3e-0; +global d10: double = 3.0e0; +global d11: double = +3.0e0; +global d12: double = +3.0e+0; +global d13: double = +3.0E+0; +global d14: double = +3.0E-0; +global d15: double = .03E+2; +global d16: double = .03E2; +global d17: double = 3.0001; +global d18: double = -3.0001; +global d19: double = 1.7976931348623157e308; # maximum allowed value +global d20 = 7.0; +global d21 = 7e0; +global d22 = 7e+1; event zeek_init() { - local d1: double = 3; - local d2: double = +3; - local d3: double = 3.; - local d4: double = 3.0; - local d5: double = +3.0; - local d6: double = 3e0; - local d7: double = 3E0; - local d8: double = 3e+0; - local d9: double = 3e-0; - local d10: double = 3.0e0; - local d11: double = +3.0e0; - local d12: double = +3.0e+0; - local d13: double = +3.0E+0; - local d14: double = +3.0E-0; - local d15: double = .03E+2; - local d16: double = .03E2; - local d17: double = 3.0001; - local d18: double = -3.0001; - local d19: double = 1.7976931348623157e308; # maximum allowed value - local d20 = 7.0; - local d21 = 7e0; - local d22 = 7e+1; - # Type inference tests test_case( "type inference", type_name(d20) == "double" ); diff --git a/testing/btest/language/enum.zeek b/testing/btest/language/enum.zeek index 71c354971f..d6b64a36f8 100644 --- a/testing/btest/language/enum.zeek +++ b/testing/btest/language/enum.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { @@ -13,20 +14,19 @@ type color: enum { Red, White, Blue, }; # enum without optional comma type city: enum { Rome, Paris }; +global e1: color = Blue; +global e2: color = White; +global e3: color = Blue; +global e4: city = Rome; +global x = Blue; event zeek_init() { - local e1: color = Blue; - local e2: color = White; - local e3: color = Blue; - local e4: city = Rome; - test_case( "enum equality comparison", e1 != e2 ); test_case( "enum equality comparison", e1 == e3 ); test_case( "enum equality comparison", e1 != e4 ); # type inference - local x = Blue; test_case( "type inference", x == e1 ); } diff --git a/testing/btest/language/for.zeek b/testing/btest/language/for.zeek index 6918e78818..3ae4f20ac4 100644 --- a/testing/btest/language/for.zeek +++ b/testing/btest/language/for.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { diff --git a/testing/btest/language/function.zeek b/testing/btest/language/function.zeek index ff967b897f..dacdcdff27 100644 --- a/testing/btest/language/function.zeek +++ b/testing/btest/language/function.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { diff --git a/testing/btest/language/if.zeek b/testing/btest/language/if.zeek index 1f6f1116e1..ce80ec6aa3 100644 --- a/testing/btest/language/if.zeek +++ b/testing/btest/language/if.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { diff --git a/testing/btest/language/int.zeek b/testing/btest/language/int.zeek index 469cd56e07..1ad6bb6745 100644 --- a/testing/btest/language/int.zeek +++ b/testing/btest/language/int.zeek @@ -1,30 +1,30 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { print fmt("%s (%s)", msg, expect ? "PASS" : "FAIL"); } +global i1: int = 3; +global i2: int = +3; +global i3: int = -3; +global i4: int = +0; +global i5: int = -0; +global i6: int = 12; +global i7: int = +0xc; +global i8: int = 0xC; +global i9: int = -0xC; +global i10: int = -12; +global i11: int = 9223372036854775807; # max. allowed value +global i12: int = -9223372036854775808; # min. allowed value +global i13: int = 0x7fffffffffffffff; # max. allowed value +global i14: int = -0x8000000000000000; # min. allowed value +global i15 = +3; event zeek_init() { - local i1: int = 3; - local i2: int = +3; - local i3: int = -3; - local i4: int = +0; - local i5: int = -0; - local i6: int = 12; - local i7: int = +0xc; - local i8: int = 0xC; - local i9: int = -0xC; - local i10: int = -12; - local i11: int = 9223372036854775807; # max. allowed value - local i12: int = -9223372036854775808; # min. allowed value - local i13: int = 0x7fffffffffffffff; # max. allowed value - local i14: int = -0x8000000000000000; # min. allowed value - local i15 = +3; - # Type inference test test_case( "type inference", type_name(i15) == "int" ); @@ -67,5 +67,4 @@ event zeek_init() test_case( str3, str3 == "max int value = 9223372036854775807" ); local str4 = fmt("min int value = %d", i14); test_case( str4, str4 == "min int value = -9223372036854775808" ); - } diff --git a/testing/btest/language/interval.zeek b/testing/btest/language/interval.zeek index 994eb4c769..1b6e049685 100644 --- a/testing/btest/language/interval.zeek +++ b/testing/btest/language/interval.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { @@ -12,41 +13,39 @@ function approx_equal(x: double, y: double): bool return |(x - y)/x| < 1e-6 ? T : F; } +# Constants without space and no letter "s" +global in11: interval = 2usec; +global in12: interval = 2msec; +global in13: interval = 120sec; +global in14: interval = 2min; +global in15: interval = -2hr; +global in16: interval = 2.5day; + +# Constants with space and no letter "s" +global in21: interval = 2 usec; +global in22: interval = 2 msec; +global in23: interval = 120 sec; +global in24: interval = 2 min; +global in25: interval = -2 hr; +global in26: interval = 2.5 day; + +# Constants with space and letter "s" + +global in31: interval = 2 usecs; +global in32: interval = 2 msecs; +global in33: interval = 1.2e2 secs; +global in34: interval = 2 mins; +global in35: interval = -2 hrs; +global in36: interval = 2.5 days; + +# Type inference + +global in41 = 2 usec; +global in42 = 2.1usec; +global in43 = 3usecs; + event zeek_init() { - # Constants without space and no letter "s" - - local in11: interval = 2usec; - local in12: interval = 2msec; - local in13: interval = 120sec; - local in14: interval = 2min; - local in15: interval = -2hr; - local in16: interval = 2.5day; - - # Constants with space and no letter "s" - - local in21: interval = 2 usec; - local in22: interval = 2 msec; - local in23: interval = 120 sec; - local in24: interval = 2 min; - local in25: interval = -2 hr; - local in26: interval = 2.5 day; - - # Constants with space and letter "s" - - local in31: interval = 2 usecs; - local in32: interval = 2 msecs; - local in33: interval = 1.2e2 secs; - local in34: interval = 2 mins; - local in35: interval = -2 hrs; - local in36: interval = 2.5 days; - - # Type inference - - local in41 = 2 usec; - local in42 = 2.1usec; - local in43 = 3usecs; - # Type inference tests test_case( "type inference", type_name(in41) == "interval" ); diff --git a/testing/btest/language/module.zeek b/testing/btest/language/module.zeek index e714ff22c2..12efd7affc 100644 --- a/testing/btest/language/module.zeek +++ b/testing/btest/language/module.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT secondtestfile >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr # In this source file, we define a module and export some objects diff --git a/testing/btest/language/no-module.zeek b/testing/btest/language/no-module.zeek index f78c9da6c0..e209936c90 100644 --- a/testing/btest/language/no-module.zeek +++ b/testing/btest/language/no-module.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT secondtestfile >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr # This is the same test as "module.zeek", but here we omit the module definition diff --git a/testing/btest/language/pattern.zeek b/testing/btest/language/pattern.zeek index 05a84e713c..33e5446e5a 100644 --- a/testing/btest/language/pattern.zeek +++ b/testing/btest/language/pattern.zeek @@ -1,19 +1,19 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { print fmt("%s (%s)", msg, expect ? "PASS" : "FAIL"); } +global p1: pattern = /foo|bar/; +global p2: pattern = /oob/; +global p3: pattern = /^oob/; +global p4 = /foo/; event zeek_init() { - local p1: pattern = /foo|bar/; - local p2: pattern = /oob/; - local p3: pattern = /^oob/; - local p4 = /foo/; - # Type inference tests test_case( "type inference", type_name(p4) == "pattern" ); diff --git a/testing/btest/language/port.zeek b/testing/btest/language/port.zeek index 03a6617eed..868d402b37 100644 --- a/testing/btest/language/port.zeek +++ b/testing/btest/language/port.zeek @@ -1,26 +1,26 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { print fmt("%s (%s)", msg, expect ? "PASS" : "FAIL"); } +global p1: port = 1/icmp; +global p2: port = 2/udp; +global p3: port = 3/tcp; +global p4: port = 4/unknown; +global p5 = 123/tcp; + +# maximum allowed values for each port type +global p6: port = 255/icmp; +global p7: port = 65535/udp; +global p8: port = 65535/tcp; +global p9: port = 255/unknown; event zeek_init() { - local p1: port = 1/icmp; - local p2: port = 2/udp; - local p3: port = 3/tcp; - local p4: port = 4/unknown; - local p5 = 123/tcp; - - # maximum allowed values for each port type - local p6: port = 255/icmp; - local p7: port = 65535/udp; - local p8: port = 65535/tcp; - local p9: port = 255/unknown; - # Type inference test test_case( "type inference", type_name(p5) == "port" ); diff --git a/testing/btest/language/precedence.zeek b/testing/btest/language/precedence.zeek index 1af4bb6569..b01313f280 100644 --- a/testing/btest/language/precedence.zeek +++ b/testing/btest/language/precedence.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { @@ -9,12 +10,16 @@ function test_case(msg: string, expect: bool) # This is an incomplete set of tests to demonstrate the order of precedence # of zeek script operators +global n1: int; +global n2: int; +global n3: int; + +global r1: bool; +global r2: bool; +global r3: bool; + event zeek_init() { - local n1: int; - local n2: int; - local n3: int; - # Tests that show "++" has higher precedence than "*" n1 = n2 = 5; @@ -70,10 +75,6 @@ event zeek_init() test_case( "+= and +", n2 == 3 ); test_case( "+= and +", n3 == 1 ); - local r1: bool; - local r2: bool; - local r3: bool; - # Tests that show "&&" has higher precedence than "||" r1 = F && F || T; diff --git a/testing/btest/language/set.zeek b/testing/btest/language/set.zeek index b396a0c572..110856a7b4 100644 --- a/testing/btest/language/set.zeek +++ b/testing/btest/language/set.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { diff --git a/testing/btest/language/short-circuit.zeek b/testing/btest/language/short-circuit.zeek index 45d1046ab3..c167c03ac6 100644 --- a/testing/btest/language/short-circuit.zeek +++ b/testing/btest/language/short-circuit.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { diff --git a/testing/btest/language/string.zeek b/testing/btest/language/string.zeek index 8f9350a16d..4ae7cbd1aa 100644 --- a/testing/btest/language/string.zeek +++ b/testing/btest/language/string.zeek @@ -1,36 +1,36 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { print fmt("%s (%s)", msg, expect ? "PASS" : "FAIL"); } +global s1: string = "a\ty"; # tab +global s2: string = "a\nb"; # newline +global s3: string = "a\"b"; # double quote +global s4: string = "a\\b"; # backslash +global s5: string = "a\x9y"; # 1-digit hex value (tab character) +global s6: string = "a\x0ab"; # 2-digit hex value (newline character) +global s7: string = "a\x22b"; # 2-digit hex value (double quote) +global s8: string = "a\x00b"; # 2-digit hex value (null character) +global s9: string = "a\011y"; # 3-digit octal value (tab character) +global s10: string = "a\12b"; # 2-digit octal value (newline character) +global s11: string = "a\0b"; # 1-digit octal value (null character) + +global s20: string = ""; +global s21: string = "x"; +global s22: string = s21 + s11; +global s23: string = "test"; +global s24: string = "this is a very long string" + + "which continues on the next line" + + "the end"; +global s25: string = "on"; +global s26 = "x"; event zeek_init() { - local s1: string = "a\ty"; # tab - local s2: string = "a\nb"; # newline - local s3: string = "a\"b"; # double quote - local s4: string = "a\\b"; # backslash - local s5: string = "a\x9y"; # 1-digit hex value (tab character) - local s6: string = "a\x0ab"; # 2-digit hex value (newline character) - local s7: string = "a\x22b"; # 2-digit hex value (double quote) - local s8: string = "a\x00b"; # 2-digit hex value (null character) - local s9: string = "a\011y"; # 3-digit octal value (tab character) - local s10: string = "a\12b"; # 2-digit octal value (newline character) - local s11: string = "a\0b"; # 1-digit octal value (null character) - - local s20: string = ""; - local s21: string = "x"; - local s22: string = s21 + s11; - local s23: string = "test"; - local s24: string = "this is a very long string" + - "which continues on the next line" + - "the end"; - local s25: string = "on"; - local s26 = "x"; - # Type inference test test_case( "type inference", type_name(s26) == "string" ); diff --git a/testing/btest/language/subnet.zeek b/testing/btest/language/subnet.zeek index db61460df9..894d9036ad 100644 --- a/testing/btest/language/subnet.zeek +++ b/testing/btest/language/subnet.zeek @@ -1,39 +1,42 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { print fmt("%s (%s)", msg, expect ? "PASS" : "FAIL"); } +# IPv4 addr +global a1: addr = 192.1.2.3; + +# IPv4 subnets +global s1: subnet = 0.0.0.0/0; +global s2: subnet = 192.0.0.0/8; +global s3: subnet = 255.255.255.255/32; +global s4 = 10.0.0.0/16; + +# IPv6 addrs +global b1: addr = [ffff::]; +global b2: addr = [ffff::1]; +global b3: addr = [ffff:1::1]; + +# IPv6 subnets +global t1: subnet = [::]/0; +global t2: subnet = [ffff::]/64; +global t3 = [a::]/32; + +# IPv4-mapped-IPv6 subnets +global u1: subnet = [::ffff:0:0]/96; event zeek_init() { - # IPv4 addr - local a1: addr = 192.1.2.3; - - # IPv4 subnets - local s1: subnet = 0.0.0.0/0; - local s2: subnet = 192.0.0.0/8; - local s3: subnet = 255.255.255.255/32; - local s4 = 10.0.0.0/16; - test_case( "IPv4 subnet equality", a1/8 == s2 ); test_case( "IPv4 subnet inequality", a1/4 != s2 ); test_case( "IPv4 subnet in operator", a1 in s2 ); test_case( "IPv4 subnet !in operator", a1 !in s3 ); test_case( "IPv4 subnet type inference", type_name(s4) == "subnet" ); - # IPv6 addrs - local b1: addr = [ffff::]; - local b2: addr = [ffff::1]; - local b3: addr = [ffff:1::1]; - - # IPv6 subnets - local t1: subnet = [::]/0; - local t2: subnet = [ffff::]/64; - local t3 = [a::]/32; - test_case( "IPv6 subnet equality", b1/64 == t2 ); test_case( "IPv6 subnet inequality", b3/64 != t2 ); test_case( "IPv6 subnet in operator", b2 in t2 ); @@ -43,9 +46,6 @@ event zeek_init() test_case( "IPv4 and IPv6 subnet inequality", s1 != t1 ); test_case( "IPv4 address and IPv6 subnet", a1 !in t2 ); - # IPv4-mapped-IPv6 subnets - local u1: subnet = [::ffff:0:0]/96; - test_case( "IPv4 in IPv4-mapped-IPv6 subnet", 1.2.3.4 in u1 ); test_case( "IPv6 !in IPv4-mapped-IPv6 subnet", [fe80::1] !in u1 ); test_case( "IPv4-mapped-IPv6 in IPv4-mapped-IPv6 subnet", diff --git a/testing/btest/language/table.zeek b/testing/btest/language/table.zeek index f7d63622ea..db95f43d41 100644 --- a/testing/btest/language/table.zeek +++ b/testing/btest/language/table.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) { diff --git a/testing/btest/language/time.zeek b/testing/btest/language/time.zeek index 685b011217..65c9eea6fe 100644 --- a/testing/btest/language/time.zeek +++ b/testing/btest/language/time.zeek @@ -1,5 +1,6 @@ # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff .stderr function test_case(msg: string, expect: bool) {