zeek/testing/btest/language/usage-analyzer-record-attributes.zeek
Arne Welzel ab388844bf UsageAnalyzer: Collect identifiers found in attributes as seeds
This marks every identifier used within an attribute as seeds. The scenario
this avoids is functions referenced through attributes on unused tables or
record types (&default, &expire_func, ...) being dinged as unused as
that's rather confusing.

Also adds test for the above and a light smoke test into language/ as it
doesn't appear we had coverage here.

Closes #3122
2023-08-01 15:46:10 +02:00

19 lines
645 B
Text

# @TEST-DOC: Usage analyzer marked lambdas and functions in attribute expressions of unused tables or record types as unused. That is a bit confusing. Regression test for #3122.
# @TEST-EXEC: zeek -b %INPUT
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff .stderr
module MyModule;
function gen_id(): string {
return cat(rand(10000));
}
type R1: record {
xxx_id: string &default=gen_id();
};
# Seems we can't actually put functions on &default on records, so the
# following uses a directly invoked lambda instead.
type R2: record {
xxx_id: string &default=(function(): string { return cat(rand(10000)); })();
};