zeek/testing/btest/language/assert.zeek
2023-06-14 17:41:41 -07:00

78 lines
1.6 KiB
Text

# @TEST-DOC: Assert statement behavior testing without an assertion_failure() hook.
#
# Doesn't make sense for ZAM as it ignores assert's.
# @TEST-REQUIRES: test "${ZEEK_ZAM}" != "1"
#
# @TEST-EXEC-FAIL: unset ZEEK_ALLOW_INIT_ERRORS; zeek -b %INPUT >out 2>&1
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff out
event zeek_init()
{
assert fmt("%s", 1) == "2";
print "not reached";
}
@TEST-START-NEXT
event zeek_init()
{
assert fmt("%s", 1) == "2", fmt("\"%s\" != \"2\"", 1);
print "not reached";
}
@TEST-START-NEXT
event zeek_init()
{
assert to_count("42") == 42.5, "always failing";
print "not reached";
}
@TEST-START-NEXT
event zeek_init()
{
local x = 2;
assert x == 1, fmt("Expected x to be 1, have %s", x);
print "not reached";
}
@TEST-START-NEXT
event zeek_init()
{
local tbl: table[string] of string = [
["abc"] = "123",
["def"] = "456",
];
assert "abc" in tbl, cat(tbl);
assert "def" in tbl, cat(tbl);
assert "ghi" in tbl, cat(tbl);
}
@TEST-START-NEXT
type MyRecord: record {
a: count;
b: count &optional;
};
event zeek_init()
{
local r: MyRecord = [$a=1234];
assert ! r?$b, fmt("Unexpected r$b is set to %s", r$b);
assert r?$b, fmt("r$b is not set in %s", r);
}
@TEST-START-NEXT
type MyRecord: record {
a: count;
b: count &optional;
};
event zeek_init()
{
local r: MyRecord = [$a=1234];
assert ! r?$b, fmt("Unexpected r$b is set to %s", r$b);
assert r?$b, fmt("r$b is not set trying anyway: %s", r$b);
}
@TEST-START-NEXT
assert 1 == 1, "always true";
assert 1 == 2, "always false";
print "not reached";