zeek/testing/btest/language/table-optional-subrecord-index.zeek

35 lines
817 B
Text

# @TEST-EXEC: zeek -b %INPUT >out
# @TEST-EXEC: btest-diff out
# @TEST-DOC: Check functionality of a table/set index consisting of optional sub-records.
type SubRec: record {
str: string;
};
type Rec: record {
subrec: SubRec &optional;
};
global myset: set[Rec] = set();
local i = Rec();
local j = Rec($subrec=SubRec($str="hi"));
add myset[i];
add myset[j];
print |myset|, myset;
# All membership tests below are expected to evaluate to true.
print i in myset;
print j in myset;
print Rec() in myset;
print Rec($subrec=SubRec($str="hi")) in myset;
print Rec($subrec=SubRec($str="no")) !in myset;
delete myset[i];
delete myset[j];
print |myset|, myset;
print i !in myset;
print j !in myset;
print Rec() !in myset;
print Rec($subrec=SubRec($str="hi")) !in myset;
print Rec($subrec=SubRec($str="no")) !in myset;