diff --git a/src/Stmt.h b/src/Stmt.h index 53db73588d..dc1a33a45b 100644 --- a/src/Stmt.h +++ b/src/Stmt.h @@ -558,6 +558,9 @@ public: // Optimization-related: StmtPtr Duplicate() override; + bool IsReduced(Reducer* c) const override; + StmtPtr DoReduce(Reducer* c) override; + private: ExprPtr cond; ExprPtr msg; diff --git a/src/script_opt/Stmt.cc b/src/script_opt/Stmt.cc index 02afbe7ae3..5ffdda0f28 100644 --- a/src/script_opt/Stmt.cc +++ b/src/script_opt/Stmt.cc @@ -924,6 +924,16 @@ StmtPtr AssertStmt::Duplicate() return SetSucc(new AssertStmt(cond->Duplicate(), msg ? msg->Duplicate() : nullptr)); } +bool AssertStmt::IsReduced(Reducer* c) const + { + return false; + } + +StmtPtr AssertStmt::DoReduce(Reducer* c) + { + return make_intrusive(); + } + StmtPtr WhenStmt::Duplicate() { FuncType::CaptureList* cl_dup = nullptr; diff --git a/testing/btest/Baseline/language.assert-hook/.stderr b/testing/btest/Baseline/language.assert-hook/.stderr index 70a0f9c3a1..c04263e182 100644 --- a/testing/btest/Baseline/language.assert-hook/.stderr +++ b/testing/btest/Baseline/language.assert-hook/.stderr @@ -1,2 +1,2 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -error in <...>/assert-hook.zeek, line 15: assertion failure: 1 != 1 +error in <...>/assert-hook.zeek, line 18: assertion failure: 1 != 1 diff --git a/testing/btest/Baseline/language.assert-hook/out b/testing/btest/Baseline/language.assert-hook/out index f92c1a466f..f4efbf3732 100644 --- a/testing/btest/Baseline/language.assert-hook/out +++ b/testing/btest/Baseline/language.assert-hook/out @@ -1,2 +1,2 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -assertion_failure, 1 != 1, , <...>/assert-hook.zeek, 15 +assertion_failure, 1 != 1, , <...>/assert-hook.zeek, 18 diff --git a/testing/btest/Baseline/language.assert-top-level/.stderr b/testing/btest/Baseline/language.assert-top-level/.stderr index 18c84b3171..5322f47419 100644 --- a/testing/btest/Baseline/language.assert-top-level/.stderr +++ b/testing/btest/Baseline/language.assert-top-level/.stderr @@ -1,3 +1,3 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -error in <...>/assert-top-level.zeek, line 5: assertion failure: getpid() == 0 (my pid greater 0? T) +error in <...>/assert-top-level.zeek, line 7: assertion failure: getpid() == 0 (my pid greater 0? T) fatal error: failed to execute script statements at top-level scope diff --git a/testing/btest/Baseline/language.assert/out b/testing/btest/Baseline/language.assert/out index 256b93f1c8..886324ae99 100644 --- a/testing/btest/Baseline/language.assert/out +++ b/testing/btest/Baseline/language.assert/out @@ -1,3 +1,3 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -error in <...>/assert.zeek, line 8: assertion failure: fmt("%s", 1) == "2" +error in <...>/assert.zeek, line 11: assertion failure: fmt("%s", 1) == "2" fatal error: errors occurred while initializing diff --git a/testing/btest/language/assert-hook.zeek b/testing/btest/language/assert-hook.zeek index 1edca8ee6b..36909dec80 100644 --- a/testing/btest/language/assert-hook.zeek +++ b/testing/btest/language/assert-hook.zeek @@ -1,5 +1,8 @@ # @TEST-DOC: Assert statement testing with assertion_failure and assertion_result implementation. # +# Doesn't make sense for ZAM as it ignores assert's. +# @TEST-REQUIRES: test "${ZEEK_ZAM}" != "1" +# # @TEST-EXEC: zeek -b %INPUT >out # @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff out # @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff .stderr diff --git a/testing/btest/language/assert-misc.zeek b/testing/btest/language/assert-misc.zeek index 996ae3efd4..6c9de58432 100644 --- a/testing/btest/language/assert-misc.zeek +++ b/testing/btest/language/assert-misc.zeek @@ -1,5 +1,8 @@ # @TEST-DOC: Test Describe() of assert statement. Expressions may be canonicalized. # +# Doesn't make sense for ZAM as it ignores assert's. +# @TEST-REQUIRES: test "${ZEEK_ZAM}" != "1" +# # @TEST-EXEC: zeek -b %INPUT >out 2>&1 # @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff out diff --git a/testing/btest/language/assert-top-level.zeek b/testing/btest/language/assert-top-level.zeek index 738beca071..0bde1ad926 100644 --- a/testing/btest/language/assert-top-level.zeek +++ b/testing/btest/language/assert-top-level.zeek @@ -1,3 +1,5 @@ +# Doesn't make sense for ZAM as it ignores assert's. +# @TEST-REQUIRES: test "${ZEEK_ZAM}" != "1" # @TEST-EXEC-FAIL: zeek -b %INPUT >out # @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff .stderr diff --git a/testing/btest/language/assert.zeek b/testing/btest/language/assert.zeek index 9fdffeaeae..79ea8a9096 100644 --- a/testing/btest/language/assert.zeek +++ b/testing/btest/language/assert.zeek @@ -1,5 +1,8 @@ # @TEST-DOC: Assert statement behavior testing without an assertion_failure() hook. # +# Doesn't make sense for ZAM as it ignores assert's. +# @TEST-REQUIRES: test "${ZEEK_ZAM}" != "1" +# # @TEST-EXEC-FAIL: unset ZEEK_ALLOW_INIT_ERRORS; zeek -b %INPUT >out 2>&1 # @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff out