From 607156b27a07b83ac1ae240dc43723c60b0e3054 Mon Sep 17 00:00:00 2001 From: Florian Sowade Date: Sat, 29 Oct 2022 14:11:25 +0200 Subject: [PATCH] Add option to run all tests with active observers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some bugs only happen when observers are registered. This change makes it possible to register observers from the zend_test extension in all tests. The observers don’t really do anything, but just by being registered some bugs in the observer implementation can be caught. The full test suite can be run with observers by executing `TEST_PHP_ARGS='--with-test-observers' make test`. --- .../tests/observer_backtrace_01.phpt | 1 + ext/zend_test/tests/observer_basic_01.phpt | 1 + ext/zend_test/tests/observer_basic_02.phpt | 1 + ext/zend_test/tests/observer_basic_03.phpt | 1 + ext/zend_test/tests/observer_basic_04.phpt | 2 ++ ext/zend_test/tests/observer_basic_05.phpt | 2 ++ ext/zend_test/tests/observer_basic_06.phpt | 2 ++ ext/zend_test/tests/observer_bug81430_1.phpt | 1 + ext/zend_test/tests/observer_bug81430_2.phpt | 1 + ext/zend_test/tests/observer_bug81435.phpt | 2 ++ .../tests/observer_call_user_func_01.phpt | 1 + .../tests/observer_call_user_func_02.phpt | 1 + .../tests/observer_call_user_func_03.phpt | 1 + .../tests/observer_call_user_func_04.phpt | 1 + ext/zend_test/tests/observer_closure_01.phpt | 1 + ext/zend_test/tests/observer_closure_02.phpt | 1 + .../tests/observer_declarations_01.phpt | 1 + .../observer_declarations_file_cache.phpt | 2 ++ ext/zend_test/tests/observer_error_01.phpt | 1 + ext/zend_test/tests/observer_error_02.phpt | 1 + ext/zend_test/tests/observer_error_03.phpt | 1 + ext/zend_test/tests/observer_error_04.phpt | 1 + ext/zend_test/tests/observer_error_05.phpt | 1 + ext/zend_test/tests/observer_eval_01.phpt | 1 + .../tests/observer_exception_01.phpt | 1 + ext/zend_test/tests/observer_fiber_01.phpt | 2 ++ ext/zend_test/tests/observer_fiber_02.phpt | 2 ++ ext/zend_test/tests/observer_fiber_03.phpt | 2 ++ ext/zend_test/tests/observer_fiber_04.phpt | 2 ++ ext/zend_test/tests/observer_fiber_05.phpt | 2 ++ ext/zend_test/tests/observer_fiber_06.phpt | 2 ++ .../tests/observer_fiber_functions_01.phpt | 1 + .../tests/observer_fiber_functions_02.phpt | 1 + .../tests/observer_fiber_functions_03.phpt | 1 + .../tests/observer_generator_01.phpt | 1 + .../tests/observer_generator_02.phpt | 1 + .../tests/observer_generator_03.phpt | 1 + .../tests/observer_generator_04.phpt | 1 + .../tests/observer_generator_05.phpt | 1 + ext/zend_test/tests/observer_magic_01.phpt | 1 + ext/zend_test/tests/observer_opline_01.phpt | 1 + ext/zend_test/tests/observer_retval_01.phpt | 1 + ext/zend_test/tests/observer_retval_02.phpt | 1 + ext/zend_test/tests/observer_retval_03.phpt | 1 + ext/zend_test/tests/observer_retval_04.phpt | 1 + ext/zend_test/tests/observer_retval_05.phpt | 1 + ext/zend_test/tests/observer_retval_06.phpt | 1 + ext/zend_test/tests/observer_retval_07.phpt | 1 + .../tests/observer_retval_by_ref_01.phpt | 1 + .../tests/observer_retval_by_ref_02.phpt | 1 + .../tests/observer_retval_by_ref_03.phpt | 1 + ext/zend_test/tests/observer_shutdown_01.phpt | 1 + ext/zend_test/tests/observer_shutdown_02.phpt | 1 + .../observer_sqlite_create_function.phpt | 1 + ext/zend_test/tests/observer_types_01.phpt | 1 + .../tests/observer_zend_call_function_01.phpt | 1 + run-tests.php | 19 ++++++++++++++++--- 57 files changed, 83 insertions(+), 3 deletions(-) diff --git a/ext/zend_test/tests/observer_backtrace_01.phpt b/ext/zend_test/tests/observer_backtrace_01.phpt index 7f021bf40251..147d30db88a0 100644 --- a/ext/zend_test/tests/observer_backtrace_01.phpt +++ b/ext/zend_test/tests/observer_backtrace_01.phpt @@ -6,6 +6,7 @@ zend_test zend_test.observer.enabled=1 zend_test.observer.observe_all=1 zend_test.observer.show_init_backtrace=1 +zend_test.observer.show_output=1 --FILE-- "worker$workerID"] : []; // Additional required extensions - $extensions = []; + $extensions = $global_extensions; if ($test->hasSection('EXTENSIONS')) { - $extensions = preg_split("/[\n\r]+/", trim($test->getSection('EXTENSIONS'))); + $extensions = array_merge($extensions, preg_split("/[\n\r]+/", trim($test->getSection('EXTENSIONS')))); } if (is_array($IN_REDIRECT) && $IN_REDIRECT['EXTENSIONS'] != []) { $extensions = array_merge($extensions, $IN_REDIRECT['EXTENSIONS']);