mirror of
https://github.com/zeek/zeek.git
synced 2025-10-07 09:08:20 +00:00
Add btests for new functionality
- Expand language.set to cover sets of sets - Expand language.table to cover tables indexed with tables - Add language.table-nested-set-ordering to capture the reproducer from GHI-1753
This commit is contained in:
parent
10e8d36340
commit
cfcf1f83cc
7 changed files with 58 additions and 0 deletions
|
@ -70,3 +70,8 @@ equality (FAIL)
|
|||
non-equality (PASS)
|
||||
equality (FAIL)
|
||||
magnitude (FAIL)
|
||||
nested-set-add (PASS)
|
||||
nested-set-add (PASS)
|
||||
nested-set-add (PASS)
|
||||
nested-set-del (PASS)
|
||||
nested-set-in (PASS)
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||
[a={
|
||||
SHA1,
|
||||
MD5
|
||||
}, b=12345678901234567890, c=<uninitialized>]
|
|
@ -47,3 +47,5 @@ remove element (PASS)
|
|||
!in operator (PASS)
|
||||
remove element (PASS)
|
||||
!in operator (PASS)
|
||||
nested table addition (PASS)
|
||||
nested table removal (PASS)
|
||||
|
|
|
@ -28,6 +28,8 @@ type r: record {
|
|||
b: set[count];
|
||||
};
|
||||
|
||||
type s: set[set[count]];
|
||||
|
||||
global foo: set[r];
|
||||
global bar = set(1,3,5);
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ event zeek_init()
|
|||
local s6: set[port, string, bool] = set();
|
||||
local s7: set[port, string, bool];
|
||||
local s8 = set( [8/tcp, "type inference", T] );
|
||||
local s9: set[set[count]] = set();
|
||||
|
||||
# Type inference tests
|
||||
|
||||
|
@ -181,5 +182,15 @@ event zeek_init()
|
|||
test_case( "equality", a == a | set(5,11) );
|
||||
|
||||
test_case( "magnitude", |a_and_b| == |a_or_b|);
|
||||
|
||||
add s9[set(1,2,3)];
|
||||
test_case( "nested-set-add", |s9| == 1 );
|
||||
add s9[set(1,2,3)];
|
||||
test_case( "nested-set-add", |s9| == 1 );
|
||||
add s9[set(2,3,4)];
|
||||
test_case( "nested-set-add", |s9| == 2 );
|
||||
delete s9[set(1,2,3)];
|
||||
test_case( "nested-set-del", |s9| == 1 );
|
||||
test_case( "nested-set-in", set(2,3,4) in s9 );
|
||||
}
|
||||
|
||||
|
|
25
testing/btest/language/table-nested-set-ordering.zeek
Normal file
25
testing/btest/language/table-nested-set-ordering.zeek
Normal file
|
@ -0,0 +1,25 @@
|
|||
# This testcase used to cause subtle memory overflow problems due to deviating
|
||||
# traversal order of the k$a set members. With 4.2, this will trigger an
|
||||
# InternalError due to new bounds-checking. For context, see GHI-1753.
|
||||
#
|
||||
# @TEST-EXEC: zeek -b %INPUT >out
|
||||
# @TEST-EXEC: btest-diff out
|
||||
|
||||
type Key: record {
|
||||
a: set[string];
|
||||
b: string &optional;
|
||||
c: string &optional;
|
||||
};
|
||||
|
||||
global state: table[Key] of count = {};
|
||||
|
||||
event zeek_init() {
|
||||
|
||||
local k: Key;
|
||||
|
||||
k$a = set("MD5", "SHA1");
|
||||
k$b = "12345678901234567890";
|
||||
|
||||
state[k] = 1;
|
||||
print k;
|
||||
}
|
|
@ -29,6 +29,9 @@ event zeek_init()
|
|||
local t11: table[conn_id, bool] of count = {
|
||||
[ [$orig_h=1.1.1.1, $orig_p=1234/tcp,
|
||||
$resp_h=2.2.2.2, $resp_p=4321/tcp], T ] = 42 };
|
||||
local t12: table[table[count] of string] of string = {
|
||||
[table([1] = "foo", [2] = "bar")] = "oh1"
|
||||
};
|
||||
|
||||
# Type inference tests
|
||||
|
||||
|
@ -159,5 +162,10 @@ event zeek_init()
|
|||
delete t11[cid, T];
|
||||
test_case( "remove element", |t11| == 1 );
|
||||
test_case( "!in operator", [cid, T] !in t11 );
|
||||
|
||||
t12[table([2] = "blum", [3] = "frub")] = "oh2";
|
||||
test_case( "nested table addition", |t12| == 2 );
|
||||
delete t12[table([1] = "foo", [2] = "bar")];
|
||||
test_case( "nested table removal", |t12| == 1 );
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue