Extend language.expire-func-type-check btest

Now covers more forms of both valid and invalid &expire_funcs
This commit is contained in:
Jon Siwek 2021-04-15 16:13:35 -07:00
parent 01f6264c87
commit 05b992b865
2 changed files with 56 additions and 22 deletions

View file

@ -1,14 +1,23 @@
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
error in <...>/expire-func-type-check.zeek, line 12: &expire_func attribute is not a function (&expire_func=myev)
error in <...>/expire-func-type-check.zeek, line 12: &expire_func attribute is not a function (&expire_func=myev)
error in <...>/expire-func-type-check.zeek, line 12: &expire_func attribute is not a function (&expire_func=myev)
error in <...>/expire-func-type-check.zeek, line 13: &expire_func attribute is not a function (&expire_func=myhk)
error in <...>/expire-func-type-check.zeek, line 13: &expire_func attribute is not a function (&expire_func=myhk)
error in <...>/expire-func-type-check.zeek, line 13: &expire_func attribute is not a function (&expire_func=myhk)
error in <...>/expire-func-type-check.zeek, line 14: &expire_func attribute is not a function (&expire_func=foo)
error in <...>/expire-func-type-check.zeek, line 14: &expire_func attribute is not a function (&expire_func=foo)
error in <...>/expire-func-type-check.zeek, line 14: &expire_func attribute is not a function (&expire_func=foo)
warning in <...>/expire-func-type-check.zeek, line 17: Wrong number of arguments for function. Expected 3, got 2. (function(t:table[addr,port] of set[addr]; s:set[addr,port];) : interval)
error in <...>/expire-func-type-check.zeek, line 18: &expire_func argument type clash (&expire_func=expire_ce)
warning in <...>/expire-func-type-check.zeek, line 17: Wrong number of arguments for function. Expected 3, got 2. (function(t:table[addr,port] of set[addr]; s:set[addr,port];) : interval)
error in <...>/expire-func-type-check.zeek, line 18: &expire_func argument type clash (&expire_func=expire_ce)
warning in <...>/expire-func-type-check.zeek, line 16: Wrong number of arguments for function. Expected 2, got 0. (function() : interval)
error in <...>/expire-func-type-check.zeek, line 38: &expire_func argument type clash (&expire_func=invalid_expire_func_no_params)
warning in <...>/expire-func-type-check.zeek, line 16: Wrong number of arguments for function. Expected 2, got 0. (function() : interval)
error in <...>/expire-func-type-check.zeek, line 38: &expire_func argument type clash (&expire_func=invalid_expire_func_no_params)
warning in <...>/expire-func-type-check.zeek, line 16: Wrong number of arguments for function. Expected 2, got 0. (function() : interval)
error in <...>/expire-func-type-check.zeek, line 38: &expire_func argument type clash (&expire_func=invalid_expire_func_no_params)
error in <...>/expire-func-type-check.zeek, line 39: &expire_func must yield a value of type interval (&expire_func=invalid_expire_func_no_return)
error in <...>/expire-func-type-check.zeek, line 39: &expire_func must yield a value of type interval (&expire_func=invalid_expire_func_no_return)
error in <...>/expire-func-type-check.zeek, line 39: &expire_func must yield a value of type interval (&expire_func=invalid_expire_func_no_return)
warning in <...>/expire-func-type-check.zeek, line 22: Wrong number of arguments for function. Expected 3, got 2. (function(t:table[addr,port] of set[addr]; s:set[addr,port];) : interval)
error in <...>/expire-func-type-check.zeek, line 40: &expire_func argument type clash (&expire_func=invalid_expire_func_index_params)
warning in <...>/expire-func-type-check.zeek, line 22: Wrong number of arguments for function. Expected 3, got 2. (function(t:table[addr,port] of set[addr]; s:set[addr,port];) : interval)
error in <...>/expire-func-type-check.zeek, line 40: &expire_func argument type clash (&expire_func=invalid_expire_func_index_params)
error in <...>/expire-func-type-check.zeek, line 41: &expire_func attribute is not a function (&expire_func=invalid_expire_func_because_its_an_event)
error in <...>/expire-func-type-check.zeek, line 41: &expire_func attribute is not a function (&expire_func=invalid_expire_func_because_its_an_event)
error in <...>/expire-func-type-check.zeek, line 41: &expire_func attribute is not a function (&expire_func=invalid_expire_func_because_its_an_event)
error in <...>/expire-func-type-check.zeek, line 42: &expire_func attribute is not a function (&expire_func=invalid_expire_func_because_its_a_hook)
error in <...>/expire-func-type-check.zeek, line 42: &expire_func attribute is not a function (&expire_func=invalid_expire_func_because_its_a_hook)
error in <...>/expire-func-type-check.zeek, line 42: &expire_func attribute is not a function (&expire_func=invalid_expire_func_because_its_a_hook)
error in <...>/expire-func-type-check.zeek, line 43: &expire_func attribute is not a function (&expire_func=invalid_expire_func_because_its_a_number)
error in <...>/expire-func-type-check.zeek, line 43: &expire_func attribute is not a function (&expire_func=invalid_expire_func_because_its_a_number)
error in <...>/expire-func-type-check.zeek, line 43: &expire_func attribute is not a function (&expire_func=invalid_expire_func_because_its_a_number)

View file

@ -1,18 +1,43 @@
# @TEST-EXEC-FAIL: zeek -b %INPUT >output 2>&1
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff output
event myev(t: table[string] of count)
function valid_expire_func_single_index(t: table[string] of count, s: string): interval
{ return 0secs; }
function valid_expire_func_multi_index(t: table[string, string] of count, s: string, s2: string): interval
{ return 0secs; }
function valid_expire_func_single_index_any(t: table[string] of count, s: any): interval
{ return 0secs; }
function valid_expire_func_multi_index_any(t: table[string, string] of count, s: any): interval
{ return 0secs; }
function invalid_expire_func_no_params(): interval
{ return 0secs; }
function invalid_expire_func_no_return(t: table[string] of count, s: string)
{ }
hook myhk(t: table[string] of count)
function invalid_expire_func_index_params(t: table[addr,port] of set[addr], s: set[addr, port]): interval
{ return 0secs; }
event invalid_expire_func_because_its_an_event(t: table[string] of count)
{ }
global foo = 3;
hook invalid_expire_func_because_its_a_hook(t: table[string] of count)
{ }
global t: table[string] of count &expire_func=myev;
global tt: table[string] of count &expire_func=myhk;
global ttt: table[string] of count &expire_func=foo;
global invalid_expire_func_because_its_a_number = 3;
type ap: set[addr, port];
global expire_ce: function(t: table[addr,port] of set[addr], s: ap): interval;
global ce: table[addr, port] of set[addr]=table() &create_expire=1 secs &expire_func=expire_ce;
global valid1: table[string] of count &expire_func=valid_expire_func_single_index;
global valid2: table[string, string] of count &expire_func=valid_expire_func_multi_index;
global valid3: table[string] of count &expire_func=valid_expire_func_single_index_any;
global valid4: table[string, string] of count &expire_func=valid_expire_func_multi_index_any;
global invalid1: table[string] of count &expire_func=invalid_expire_func_no_params;
global invalid2: table[string] of count &expire_func=invalid_expire_func_no_return;
global invalid3: table[addr, port] of set[addr]=table() &create_expire=1 secs &expire_func=invalid_expire_func_index_params;
global invalid4: table[string] of count &expire_func=invalid_expire_func_because_its_an_event;
global invalid5: table[string] of count &expire_func=invalid_expire_func_because_its_a_hook;
global invalid6: table[string] of count &expire_func=invalid_expire_func_because_its_a_number;