From dc7f4dca1cca808bc3ba0ab1bcaafb5946dbc624 Mon Sep 17 00:00:00 2001 From: Vern Paxson Date: Fri, 12 Sep 2025 11:05:55 -0600 Subject: [PATCH] BTests & baselines for testing selective skipping of script optimization --- .../btest/Baseline.cpp/language.skip-opt1/out | 9 +++++++ .../btest/Baseline.cpp/language.skip-opt2/out | 11 +++++++++ .../btest/Baseline.zam/language.skip-opt1/out | 9 +++++++ .../btest/Baseline.zam/language.skip-opt2/out | 11 +++++++++ testing/btest/Baseline/language.skip-opt1/out | 13 ++++++++++ testing/btest/Baseline/language.skip-opt2/out | 13 ++++++++++ testing/btest/Baseline/language.skip-opt3/out | 13 ++++++++++ .../btest/Baseline/opt.opt-skip-files/output | 6 +++++ .../btest/Baseline/opt.opt-skip-funcs/out1 | 6 +++++ .../btest/Baseline/opt.opt-skip-funcs/out2 | 6 +++++ .../btest/Baseline/opt.opt-skip-other/out1 | 4 ++++ .../btest/Baseline/opt.opt-skip-other/out2 | 4 ++++ testing/btest/language/skip-opt1.zeek | 24 +++++++++++++++++++ testing/btest/language/skip-opt2.zeek | 24 +++++++++++++++++++ testing/btest/language/skip-opt3.zeek | 24 +++++++++++++++++++ testing/btest/opt/opt-files.zeek | 2 +- testing/btest/opt/opt-files2.zeek | 2 +- testing/btest/opt/opt-files3.zeek | 4 ++-- testing/btest/opt/opt-func.zeek | 2 +- testing/btest/opt/opt-func2.zeek | 2 +- testing/btest/opt/opt-func3.zeek | 2 +- testing/btest/opt/opt-no-files.zeek | 2 +- testing/btest/opt/opt-no-func.zeek | 2 +- testing/btest/opt/opt-no-func2.zeek | 2 +- testing/btest/opt/opt-skip-files.zeek | 20 ++++++++++++++++ testing/btest/opt/opt-skip-funcs.zeek | 19 +++++++++++++++ testing/btest/opt/opt-skip-other.zeek | 20 ++++++++++++++++ 27 files changed, 246 insertions(+), 10 deletions(-) create mode 100644 testing/btest/Baseline.cpp/language.skip-opt1/out create mode 100644 testing/btest/Baseline.cpp/language.skip-opt2/out create mode 100644 testing/btest/Baseline.zam/language.skip-opt1/out create mode 100644 testing/btest/Baseline.zam/language.skip-opt2/out create mode 100644 testing/btest/Baseline/language.skip-opt1/out create mode 100644 testing/btest/Baseline/language.skip-opt2/out create mode 100644 testing/btest/Baseline/language.skip-opt3/out create mode 100644 testing/btest/Baseline/opt.opt-skip-files/output create mode 100644 testing/btest/Baseline/opt.opt-skip-funcs/out1 create mode 100644 testing/btest/Baseline/opt.opt-skip-funcs/out2 create mode 100644 testing/btest/Baseline/opt.opt-skip-other/out1 create mode 100644 testing/btest/Baseline/opt.opt-skip-other/out2 create mode 100644 testing/btest/language/skip-opt1.zeek create mode 100644 testing/btest/language/skip-opt2.zeek create mode 100644 testing/btest/language/skip-opt3.zeek create mode 100644 testing/btest/opt/opt-skip-files.zeek create mode 100644 testing/btest/opt/opt-skip-funcs.zeek create mode 100644 testing/btest/opt/opt-skip-other.zeek diff --git a/testing/btest/Baseline.cpp/language.skip-opt1/out b/testing/btest/Baseline.cpp/language.skip-opt1/out new file mode 100644 index 0000000000..03947e1784 --- /dev/null +++ b/testing/btest/Baseline.cpp/language.skip-opt1/out @@ -0,0 +1,9 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +always: function() : void +compiled-C++ +no_ZAM: function() : void +compiled-C++ +no_CPP: function() : void +{ +print no CPP; +} diff --git a/testing/btest/Baseline.cpp/language.skip-opt2/out b/testing/btest/Baseline.cpp/language.skip-opt2/out new file mode 100644 index 0000000000..b44c826a88 --- /dev/null +++ b/testing/btest/Baseline.cpp/language.skip-opt2/out @@ -0,0 +1,11 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +always: function() : void +{ +print always; +} +no_ZAM: function() : void +compiled-C++ +no_CPP: function() : void +{ +print no CPP; +} diff --git a/testing/btest/Baseline.zam/language.skip-opt1/out b/testing/btest/Baseline.zam/language.skip-opt1/out new file mode 100644 index 0000000000..aa133df5ad --- /dev/null +++ b/testing/btest/Baseline.zam/language.skip-opt1/out @@ -0,0 +1,9 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +always: function() : void +ZAM-code always +no_ZAM: function() : void +{ +print no ZAM; +} +no_CPP: function() : void +ZAM-code no_CPP diff --git a/testing/btest/Baseline.zam/language.skip-opt2/out b/testing/btest/Baseline.zam/language.skip-opt2/out new file mode 100644 index 0000000000..90533a197a --- /dev/null +++ b/testing/btest/Baseline.zam/language.skip-opt2/out @@ -0,0 +1,11 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +always: function() : void +{ +print always; +} +no_ZAM: function() : void +{ +print no ZAM; +} +no_CPP: function() : void +ZAM-code no_CPP diff --git a/testing/btest/Baseline/language.skip-opt1/out b/testing/btest/Baseline/language.skip-opt1/out new file mode 100644 index 0000000000..5425ec1afc --- /dev/null +++ b/testing/btest/Baseline/language.skip-opt1/out @@ -0,0 +1,13 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +always: function() : void +{ +print always; +} +no_ZAM: function() : void +{ +print no ZAM; +} +no_CPP: function() : void +{ +print no CPP; +} diff --git a/testing/btest/Baseline/language.skip-opt2/out b/testing/btest/Baseline/language.skip-opt2/out new file mode 100644 index 0000000000..5425ec1afc --- /dev/null +++ b/testing/btest/Baseline/language.skip-opt2/out @@ -0,0 +1,13 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +always: function() : void +{ +print always; +} +no_ZAM: function() : void +{ +print no ZAM; +} +no_CPP: function() : void +{ +print no CPP; +} diff --git a/testing/btest/Baseline/language.skip-opt3/out b/testing/btest/Baseline/language.skip-opt3/out new file mode 100644 index 0000000000..5425ec1afc --- /dev/null +++ b/testing/btest/Baseline/language.skip-opt3/out @@ -0,0 +1,13 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +always: function() : void +{ +print always; +} +no_ZAM: function() : void +{ +print no ZAM; +} +no_CPP: function() : void +{ +print no CPP; +} diff --git a/testing/btest/Baseline/opt.opt-skip-files/output b/testing/btest/Baseline/opt.opt-skip-files/output new file mode 100644 index 0000000000..6a70430a5a --- /dev/null +++ b/testing/btest/Baseline/opt.opt-skip-files/output @@ -0,0 +1,6 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +I shouldn't be ZAM code! +my_test: function() : void +{ +print I shouldn't be ZAM code!; +} diff --git a/testing/btest/Baseline/opt.opt-skip-funcs/out1 b/testing/btest/Baseline/opt.opt-skip-funcs/out1 new file mode 100644 index 0000000000..6a70430a5a --- /dev/null +++ b/testing/btest/Baseline/opt.opt-skip-funcs/out1 @@ -0,0 +1,6 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +I shouldn't be ZAM code! +my_test: function() : void +{ +print I shouldn't be ZAM code!; +} diff --git a/testing/btest/Baseline/opt.opt-skip-funcs/out2 b/testing/btest/Baseline/opt.opt-skip-funcs/out2 new file mode 100644 index 0000000000..6a70430a5a --- /dev/null +++ b/testing/btest/Baseline/opt.opt-skip-funcs/out2 @@ -0,0 +1,6 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +I shouldn't be ZAM code! +my_test: function() : void +{ +print I shouldn't be ZAM code!; +} diff --git a/testing/btest/Baseline/opt.opt-skip-other/out1 b/testing/btest/Baseline/opt.opt-skip-other/out1 new file mode 100644 index 0000000000..d2e95de646 --- /dev/null +++ b/testing/btest/Baseline/opt.opt-skip-other/out1 @@ -0,0 +1,4 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +I should be ZAM code! +my_test: function() : void +ZAM-code my_test diff --git a/testing/btest/Baseline/opt.opt-skip-other/out2 b/testing/btest/Baseline/opt.opt-skip-other/out2 new file mode 100644 index 0000000000..d2e95de646 --- /dev/null +++ b/testing/btest/Baseline/opt.opt-skip-other/out2 @@ -0,0 +1,4 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +I should be ZAM code! +my_test: function() : void +ZAM-code my_test diff --git a/testing/btest/language/skip-opt1.zeek b/testing/btest/language/skip-opt1.zeek new file mode 100644 index 0000000000..4d3866048a --- /dev/null +++ b/testing/btest/language/skip-opt1.zeek @@ -0,0 +1,24 @@ +# @TEST-EXEC: zeek -b %INPUT >out 2>&1 +# @TEST-EXEC: btest-diff out + +function always() + { + print "always"; + } + +function no_ZAM() &no_ZAM_opt + { + print "no ZAM"; + } + +function no_CPP() &no_CPP_opt + { + print "no CPP"; + } + +event zeek_init() + { + print always; + print no_ZAM; + print no_CPP; + } diff --git a/testing/btest/language/skip-opt2.zeek b/testing/btest/language/skip-opt2.zeek new file mode 100644 index 0000000000..e7f9ecf158 --- /dev/null +++ b/testing/btest/language/skip-opt2.zeek @@ -0,0 +1,24 @@ +# @TEST-EXEC: zeek -b %INPUT --no-optimize-func=always >out 2>&1 +# @TEST-EXEC: btest-diff out + +function always() + { + print "always"; + } + +function no_ZAM() &no_ZAM_opt + { + print "no ZAM"; + } + +function no_CPP() &no_CPP_opt + { + print "no CPP"; + } + +event zeek_init() + { + print always; + print no_ZAM; + print no_CPP; + } diff --git a/testing/btest/language/skip-opt3.zeek b/testing/btest/language/skip-opt3.zeek new file mode 100644 index 0000000000..f1884cda21 --- /dev/null +++ b/testing/btest/language/skip-opt3.zeek @@ -0,0 +1,24 @@ +# @TEST-EXEC: zeek -b %INPUT --no-optimize-file=skip-opt >out 2>&1 +# @TEST-EXEC: btest-diff out + +function always() + { + print "always"; + } + +function no_ZAM() &no_ZAM_opt + { + print "no ZAM"; + } + +function no_CPP() &no_CPP_opt + { + print "no CPP"; + } + +event zeek_init() + { + print always; + print no_ZAM; + print no_CPP; + } diff --git a/testing/btest/opt/opt-files.zeek b/testing/btest/opt/opt-files.zeek index c2413bf59c..9f06cf7e68 100644 --- a/testing/btest/opt/opt-files.zeek +++ b/testing/btest/opt/opt-files.zeek @@ -1,5 +1,5 @@ # @TEST-REQUIRES: test "${ZEEK_USE_CPP}" != "1" -# @TEST-EXEC: zeek -b -O ZAM --optimize-files='opt-files' %INPUT >output +# @TEST-EXEC: zeek -b -O ZAM --optimize-files=opt-files %INPUT >output # @TEST-EXEC: btest-diff output # Tests that we can selectively pick this file. diff --git a/testing/btest/opt/opt-files2.zeek b/testing/btest/opt/opt-files2.zeek index c2cb5852f9..43ea8bb5de 100644 --- a/testing/btest/opt/opt-files2.zeek +++ b/testing/btest/opt/opt-files2.zeek @@ -1,5 +1,5 @@ # @TEST-REQUIRES: test "${ZEEK_USE_CPP}" != "1" -# @TEST-EXEC: zeek -b -O ZAM --optimize-files='base/utils' %INPUT >output +# @TEST-EXEC: zeek -b -O ZAM --optimize-files=base/utils %INPUT >output # @TEST-EXEC: btest-diff output # Tests that we can selectively pick a group of files but not this one. diff --git a/testing/btest/opt/opt-files3.zeek b/testing/btest/opt/opt-files3.zeek index 647d791f19..7c60595dc5 100644 --- a/testing/btest/opt/opt-files3.zeek +++ b/testing/btest/opt/opt-files3.zeek @@ -1,8 +1,8 @@ # @TEST-REQUIRES: test "${ZEEK_USE_CPP}" != "1" -# @TEST-EXEC: zeek -b -O ZAM --optimize-files='base/utils' --optimize-files='opt-files3' %INPUT >output +# @TEST-EXEC: zeek -b -O ZAM --optimize-files=base/utils --optimize-files=opt-files3 %INPUT >output # @TEST-EXEC: btest-diff output -# Tests that we can selectively pick a group of files *and* this one. +# Tests that we can selectively pick a group of (other) files *and* this one. function my_test() { diff --git a/testing/btest/opt/opt-func.zeek b/testing/btest/opt/opt-func.zeek index 01713b0676..61b967086e 100644 --- a/testing/btest/opt/opt-func.zeek +++ b/testing/btest/opt/opt-func.zeek @@ -1,5 +1,5 @@ # @TEST-REQUIRES: test "${ZEEK_USE_CPP}" != "1" -# @TEST-EXEC: zeek -b -O ZAM --optimize-func='my_test' %INPUT >output +# @TEST-EXEC: zeek -b -O ZAM --optimize-func=my_test %INPUT >output # @TEST-EXEC: btest-diff output # Tests that we can selectively pick a given function. diff --git a/testing/btest/opt/opt-func2.zeek b/testing/btest/opt/opt-func2.zeek index 6ec477da0b..dc29a99445 100644 --- a/testing/btest/opt/opt-func2.zeek +++ b/testing/btest/opt/opt-func2.zeek @@ -1,5 +1,5 @@ # @TEST-REQUIRES: test "${ZEEK_USE_CPP}" != "1" -# @TEST-EXEC: zeek -b -O ZAM --optimize-func='another_test' %INPUT >output +# @TEST-EXEC: zeek -b -O ZAM --optimize-func=another_test %INPUT >output # @TEST-EXEC: btest-diff output # Tests that we can selectively pick a bunch of functions (event handlers), diff --git a/testing/btest/opt/opt-func3.zeek b/testing/btest/opt/opt-func3.zeek index 4d1f44ce3d..0a095ed107 100644 --- a/testing/btest/opt/opt-func3.zeek +++ b/testing/btest/opt/opt-func3.zeek @@ -1,5 +1,5 @@ # @TEST-REQUIRES: test "${ZEEK_USE_CPP}" != "1" -# @TEST-EXEC: zeek -b -O ZAM --optimize-func='my_test' --optimize-func='another_test' %INPUT >output +# @TEST-EXEC: zeek -b -O ZAM --optimize-func=my_test --optimize-func=another_test %INPUT >output # @TEST-EXEC: btest-diff output # Tests that we can selectively pick a bunch of functions (event handlers), diff --git a/testing/btest/opt/opt-no-files.zeek b/testing/btest/opt/opt-no-files.zeek index 36a22c4c5e..dfa904fdfe 100644 --- a/testing/btest/opt/opt-no-files.zeek +++ b/testing/btest/opt/opt-no-files.zeek @@ -1,4 +1,4 @@ -# @TEST-EXEC-FAIL: zeek -b -O ZAM --optimize-files='Xopt-files' %INPUT +# @TEST-EXEC-FAIL: zeek -b -O ZAM --optimize-files=Xopt-files %INPUT # @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff .stderr # Make sure that if --optimize-files is specified but there are no matching diff --git a/testing/btest/opt/opt-no-func.zeek b/testing/btest/opt/opt-no-func.zeek index 88b8d6de47..06e6009471 100644 --- a/testing/btest/opt/opt-no-func.zeek +++ b/testing/btest/opt/opt-no-func.zeek @@ -1,4 +1,4 @@ -# @TEST-EXEC-FAIL: zeek -b -O ZAM --optimize-files='my_func' %INPUT +# @TEST-EXEC-FAIL: zeek -b -O ZAM --optimize-files=my_func %INPUT # @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff .stderr # Make sure that if --optimize-func is specified but there are no matching diff --git a/testing/btest/opt/opt-no-func2.zeek b/testing/btest/opt/opt-no-func2.zeek index 84d09b90fe..8b9f08afdb 100644 --- a/testing/btest/opt/opt-no-func2.zeek +++ b/testing/btest/opt/opt-no-func2.zeek @@ -1,4 +1,4 @@ -# @TEST-EXEC-FAIL: zeek -b -O ZAM --optimize-files='my_func' %INPUT +# @TEST-EXEC-FAIL: zeek -b -O ZAM --optimize-files=my_func %INPUT # @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff .stderr # Make sure that --optimize-func anchors the regex. diff --git a/testing/btest/opt/opt-skip-files.zeek b/testing/btest/opt/opt-skip-files.zeek new file mode 100644 index 0000000000..95e63f20d5 --- /dev/null +++ b/testing/btest/opt/opt-skip-files.zeek @@ -0,0 +1,20 @@ +# @TEST-REQUIRES: test "${ZEEK_USE_CPP}" != "1" +# @TEST-EXEC: zeek -b -O ZAM --no-optimize-files=opt-skip-files %INPUT >output +# @TEST-EXEC-FAIL: zeek -b -O ZAM --no-optimize-files=opt-skip-files --optimize-files=opt-skip-files %INPUT +# @TEST-EXEC: btest-diff output + +# The first run tests that we can selectively exclude this file. +# +# The second run tests that skipping overrides including. This should +# result in an error because there are no functions to compile. + +function my_test() + { + print "I shouldn't be ZAM code!"; + } + +event zeek_init() + { + my_test(); + print my_test; + } diff --git a/testing/btest/opt/opt-skip-funcs.zeek b/testing/btest/opt/opt-skip-funcs.zeek new file mode 100644 index 0000000000..14d7b814f6 --- /dev/null +++ b/testing/btest/opt/opt-skip-funcs.zeek @@ -0,0 +1,19 @@ +# @TEST-REQUIRES: test "${ZEEK_USE_CPP}" != "1" +# @TEST-EXEC: zeek -b -O ZAM --no-optimize-func=my_test %INPUT >out1 +# @TEST-EXEC: zeek -b -O ZAM --no-optimize-func=my_test --optimize-func=my_test %INPUT --optimize-func=zeek_init >out2 +# @TEST-EXEC: btest-diff out1 +# @TEST-EXEC: btest-diff out2 + +# The first test checks that we can selectively exclude a function. +# The second tests that skipping overrides including. + +function my_test() + { + print "I shouldn't be ZAM code!"; + } + +event zeek_init() + { + my_test(); + print my_test; + } diff --git a/testing/btest/opt/opt-skip-other.zeek b/testing/btest/opt/opt-skip-other.zeek new file mode 100644 index 0000000000..55b4833f61 --- /dev/null +++ b/testing/btest/opt/opt-skip-other.zeek @@ -0,0 +1,20 @@ +# @TEST-REQUIRES: test "${ZEEK_USE_CPP}" != "1" +# @TEST-EXEC: zeek -b -O ZAM --no-optimize-files=Xopt-skip-other-file %INPUT >out1 +# @TEST-EXEC: zeek -b -O ZAM --no-optimize-func=my_tes %INPUT >out2 +# @TEST-EXEC: btest-diff out1 +# @TEST-EXEC: btest-diff out2 + +# The first test checks that if we exclude a different file, we still compile +# this one. The second tests that if we exclude a different function (since +# function matches have to be full), we still compile this one. + +function my_test() + { + print "I should be ZAM code!"; + } + +event zeek_init() + { + my_test(); + print my_test; + }