zeek/testing/btest/scripts/base/frameworks/input/set-event-reread.zeek

66 lines
1.4 KiB
Text

# @TEST-EXEC: mv entries.set1 entries.set
# @TEST-EXEC: btest-bg-run zeek zeek -b %INPUT
# @TEST-EXEC: $SCRIPTS/wait-for-file zeek/got1 15 || (btest-bg-wait -k 1 && false)
# @TEST-EXEC: mv entries.set2 entries.set
# @TEST-EXEC: $SCRIPTS/wait-for-file zeek/got2 15 || (btest-bg-wait -k 1 && false)
# @TEST-EXEC: mv entries.set3 entries.set
# @TEST-EXEC: btest-bg-wait 30
# @TEST-EXEC: btest-diff out
@TEST-START-FILE entries.set1
#fields s
one
two
three
@TEST-END-FILE
@TEST-START-FILE entries.set2
#fields s
one
@TEST-END-FILE
@TEST-START-FILE entries.set3
#fields s
one
four
@TEST-END-FILE
redef exit_only_after_terminate=T;
type Idx: record {
s: string;
};
global entries: set[string] = set();
global event_count = 0;
global out = open("../out");
event entry_notify(description: Input::TableDescription, tpe: Input::Event,
left: Idx)
{
++event_count;
print out, fmt("entry notification %s: %s", tpe, left);
if ( event_count == 3 )
system("touch got1");
else if ( event_count == 5 )
system("touch got2");
else if ( event_count == 6 )
{
print out, "done";
close(out);
Input::remove("entries");
terminate();
}
}
event zeek_init()
{
Input::add_table([$source="../entries.set",
$name="entries",
$idx=Idx,
$destination=entries,
$ev=entry_notify,
$mode=Input::REREAD
]);
}