mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
71 lines
1.8 KiB
Text
71 lines
1.8 KiB
Text
# @TEST-DOC: Test zeekygen declaring script functions. A bit quirky: The path returned for additional scripts depends on whether loaded relative or absolute. We load %INPUT relative here to have relative paths.
|
|
#
|
|
# @TEST-EXEC: unset ZEEK_DISABLE_ZEEKYGEN; zeek -b `basename %INPUT` >out
|
|
# @TEST-EXEC: btest-diff out
|
|
|
|
@load ./my-module
|
|
@load ./redef-it
|
|
@load ./pkg1
|
|
|
|
@load base/protocols/conn
|
|
@load protocols/conn/speculative-service
|
|
@load protocols/conn/mac-logging
|
|
|
|
event zeek_init()
|
|
{
|
|
print "Conn::Info", get_identifier_declaring_script("Conn::Info");
|
|
print "Conn::Info$uid", get_record_field_declaring_script("Conn::Info$uid");
|
|
print "Conn::Info$speculative_service", get_record_field_declaring_script("Conn::Info$speculative_service");
|
|
print "Conn::Info$orig_l2_addr", get_record_field_declaring_script("Conn::Info$orig_l2_addr");
|
|
|
|
# Custom record
|
|
local record_type_name = "MyModule::Info";
|
|
local record_script = get_identifier_declaring_script(record_type_name);
|
|
print record_type_name, record_script;
|
|
|
|
for ( field in record_fields(record_type_name) )
|
|
{
|
|
local field_identifier = fmt("%s$%s", record_type_name, field);
|
|
local field_script = get_record_field_declaring_script(field_identifier);
|
|
print field_identifier, record_script != field_script ? "redef" : "original", field_script;
|
|
}
|
|
}
|
|
|
|
|
|
# @TEST-START-FILE my-module.zeek
|
|
module MyModule;
|
|
|
|
export {
|
|
type Info: record {
|
|
ts: time &log;
|
|
prefix: string &log;
|
|
};
|
|
}
|
|
|
|
# @TEST-END-FILE
|
|
|
|
|
|
# @TEST-START-FILE redef-it.zeek
|
|
module RedefIt;
|
|
|
|
export {
|
|
redef record MyModule::Info += {
|
|
addl: string &log &default="dfl";
|
|
};
|
|
}
|
|
# @TEST-END-FILE
|
|
|
|
# @TEST-START-FILE pkg1/__load__.zeek
|
|
@load ./redef-more.zeek
|
|
# @TEST-END-FILE
|
|
|
|
|
|
# @TEST-START-FILE pkg1/redef-more.zeek
|
|
module RedefMore;
|
|
|
|
export {
|
|
redef record MyModule::Info += {
|
|
more: string &log &default="more";
|
|
};
|
|
}
|
|
# @TEST-END-FILE
|