zeek/testing/btest/language/short-circuit.zeek
Robin Sommer 789cb376fd GH-239: Rename bro to zeek, bro-config to zeek-config, and bro-path-dev to zeek-path-dev.
This also installs symlinks from "zeek" and "bro-config" to a wrapper
script that prints a deprecation warning.

The btests pass, but this is still WIP. broctl renaming is still
missing.

#239
2019-05-01 21:43:45 +00:00

48 lines
971 B
Text

# @TEST-EXEC: zeek -b %INPUT >out
# @TEST-EXEC: btest-diff out
function test_case(msg: string, expect: bool)
{
print fmt("%s (%s)", msg, expect ? "PASS" : "FAIL");
}
global ct: count;
function t_func(): bool
{
ct += 1;
return T;
}
function f_func(): bool
{
ct += 2;
return F;
}
event zeek_init()
{
local res: bool;
# both functions should be called
ct = 0;
res = t_func() && f_func();
test_case("&& operator (eval. both operands)", res == F && ct == 3 );
# only first function should be called
ct = 0;
res = f_func() && t_func();
test_case("&& operator (eval. 1st operand)", res == F && ct == 2 );
# only first function should be called
ct = 0;
res = t_func() || f_func();
test_case("|| operator (eval. 1st operand)", res == T && ct == 1 );
# both functions should be called
ct = 0;
res = f_func() || t_func();
test_case("|| operator (eval. both operands)", res == T && ct == 3 );
}