diff --git a/testing/btest/Baseline/language.expire-func-type-check/output b/testing/btest/Baseline/language.expire-func-type-check/output index d848bce4ac..05eff0b0fe 100644 --- a/testing/btest/Baseline/language.expire-func-type-check/output +++ b/testing/btest/Baseline/language.expire-func-type-check/output @@ -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) diff --git a/testing/btest/language/expire-func-type-check.zeek b/testing/btest/language/expire-func-type-check.zeek index 189d10d311..8e842b20dc 100644 --- a/testing/btest/language/expire-func-type-check.zeek +++ b/testing/btest/language/expire-func-type-check.zeek @@ -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;