mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
59 lines
1.1 KiB
Text
59 lines
1.1 KiB
Text
# @TEST-EXEC: zeek %INPUT >output 2>&1
|
|
# @TEST-EXEC: btest-diff output
|
|
|
|
# Make sure a set can be indexed with a record that has optional fields
|
|
|
|
type FOO: record {
|
|
a: count;
|
|
b: count &optional;
|
|
};
|
|
|
|
event zeek_init()
|
|
{
|
|
local set_of_foo: set[FOO] = set();
|
|
|
|
local f: FOO;
|
|
f$a = 1;
|
|
|
|
add set_of_foo[f];
|
|
add set_of_foo[[$a=3]];
|
|
|
|
local f3: FOO; # = [$a=4, $b=5];
|
|
f3$a = 4;
|
|
f3$b = 5;
|
|
|
|
add set_of_foo[f3];
|
|
|
|
add set_of_foo[[$a=4, $b=5]];
|
|
|
|
print set_of_foo;
|
|
|
|
print "";
|
|
|
|
for ( i in set_of_foo )
|
|
print i;
|
|
|
|
print "";
|
|
|
|
local f2: FOO;
|
|
f2$a = 2;
|
|
|
|
print f in set_of_foo;
|
|
print f2 in set_of_foo;
|
|
|
|
print "";
|
|
|
|
f3$a = 4;
|
|
print f3 in set_of_foo;
|
|
|
|
f3$b = 4;
|
|
print f3 in set_of_foo;
|
|
|
|
f3$b = 5;
|
|
print f3 in set_of_foo;
|
|
|
|
}
|
|
|
|
# Also make sure that we can declare sets of recursive records.
|
|
# This used to crash in Zeek 4.x.
|
|
global crash_me: set[Conn::RemovalHook];
|