zeek/testing/btest/core/option-zeek-done.zeek
Patrick Kelley 8fd444092b initial
2025-05-07 15:35:15 -04:00

30 lines
780 B
Plaintext

# @TEST-DOC: Ensure change handlers do not run when terminating by trying to change an option during zeek_done()
# @TEST-EXEC: zeek -b %INPUT
# @TEST-EXEC: btest-diff .stdout
export {
option testbool: bool = T;
}
function option_changed(ID: string, new_value: bool): bool {
print fmt("Value of %s changed from %s to %s (zeek_is_terminating=%s)", ID, testbool, new_value, zeek_is_terminating());
return new_value;
}
event zeek_init()
{
print "Initial value", testbool;
Option::set_change_handler("testbool", option_changed);
local changed = Option::set("testbool", F);
print "Next value", testbool;
print "Next changed", changed;
}
event zeek_done()
{
local changed = Option::set("testbool", T);
print "Final value", testbool;
print "Final changed", changed;
}