mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00

into BroVals (especially enums) Not we do not force an internal error anymore. Instead, we raise an normal error and set an error flag that signals to the top-level functions that the value could not be converted and should not be propagated to the Bro core. This sadly makes the already messy code even more messy - but since errors can happen in deeply nested data structures, the alternative (catching the error at every possible location and then trying to clean up there instead of recursively deleting the data that cannot be used later) is much worse. Addresses BIT-1199
37 lines
707 B
Text
37 lines
707 B
Text
# @TEST-EXEC: btest-bg-run bro bro -b %INPUT
|
|
# @TEST-EXEC: btest-bg-wait 10
|
|
# @TEST-EXEC: btest-diff bro/.stderr
|
|
# @TEST-EXEC: btest-diff bro/.stdout
|
|
|
|
@TEST-START-FILE input.log
|
|
#fields e i
|
|
IdoNot::Exist 1
|
|
@TEST-END-FILE
|
|
|
|
redef exit_only_after_terminate = T;
|
|
|
|
module A;
|
|
|
|
type Idx: record {
|
|
i: int;
|
|
};
|
|
|
|
type Val: record {
|
|
e: Log::ID;
|
|
};
|
|
|
|
global etable: table[int] of Log::ID = table();
|
|
|
|
event bro_init()
|
|
{
|
|
# first read in the old stuff into the table...
|
|
Input::add_table([$source="../input.log", $name="enum", $idx=Idx, $val=Val, $destination=etable, $want_record=F]);
|
|
}
|
|
|
|
event Input::end_of_data(name: string, source:string)
|
|
{
|
|
print "Table:";
|
|
print etable;
|
|
Input::remove("enum");
|
|
terminate();
|
|
}
|