zeek/testing/btest/language/const.zeek
2025-04-17 16:30:23 +02:00

79 lines
1.3 KiB
Text

# @TEST-EXEC: zeek -b valid.zeek 2>valid.stderr 1>valid.stdout
# @TEST-EXEC: btest-diff valid.stderr
# @TEST-EXEC: btest-diff valid.stdout
# @TEST-EXEC-FAIL: zeek -b invalid.zeek 2>invalid.stderr 1>invalid.stdout
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff invalid.stderr
# @TEST-EXEC: btest-diff invalid.stdout
# @TEST-START-FILE valid.zeek
# First some simple code that should be valid and error-free.
function f(c: count)
{
print "enter f", c;
c = c + 100;
print "exit f", c;
}
const foo = 0 &redef;
redef foo = 10;
const bar = 9;
event zeek_init()
{
const baz = 7;
local i = foo;
i = i + bar + 2;
i = i + baz + 11;
++i;
print i;
--i;
f(foo);
f(bar);
f(baz);
print "foo", foo;
print "bar", bar;
print "baz", baz;
}
# @TEST-END-FILE
# @TEST-START-FILE invalid.zeek
# Now some const assignments that should generate errors at parse-time.
const foo = 0 &redef;
redef foo = 10;
const bar = 9;
event zeek_init()
{
const baz = 7;
local s = 0;
print "nope";
foo = 100;
foo = bar;
foo = bar = baz;
foo = s;
++foo;
s = foo = bar;
if ( foo = 0 )
print "nope";
bar = 1 + 1;
baz = s;
++bar;
--baz;
print "foo", foo;
print "bar", bar;
print "baz", baz;
print "foo=foo", foo = foo;
}
# @TEST-END-FILE