summaryrefslogtreecommitdiff
path: root/ext/zend_test/tests/observer_error_03.phpt
diff options
context:
space:
mode:
authorSammy Kaye Powers <sammyk@php.net>2020-10-23 11:43:31 -0700
committerSammy Kaye Powers <sammyk@php.net>2020-11-16 15:12:57 -0800
commit0425a6697a21327880e36975c733bba2b6a6890a (patch)
treedb05b906b9822976260eab56971fe4a6e8c4f4a5 /ext/zend_test/tests/observer_error_03.phpt
parent3fb1b0862c3742a1ef2d491ce8c9045bf2abc87c (diff)
downloadphp-git-0425a6697a21327880e36975c733bba2b6a6890a.tar.gz
Fire open observer end handlers after a zend_bailout
Closes GH-6377
Diffstat (limited to 'ext/zend_test/tests/observer_error_03.phpt')
-rw-r--r--ext/zend_test/tests/observer_error_03.phpt39
1 files changed, 39 insertions, 0 deletions
diff --git a/ext/zend_test/tests/observer_error_03.phpt b/ext/zend_test/tests/observer_error_03.phpt
new file mode 100644
index 0000000000..3d8150a440
--- /dev/null
+++ b/ext/zend_test/tests/observer_error_03.phpt
@@ -0,0 +1,39 @@
+--TEST--
+Observer: non-fatal errors do not fire end handlers prematurely
+--SKIPIF--
+<?php if (!extension_loaded('zend-test')) die('skip: zend-test extension required'); ?>
+--INI--
+zend_test.observer.enabled=1
+zend_test.observer.observe_all=1
+zend_test.observer.show_return_value=1
+--FILE--
+<?php
+function foo()
+{
+ return $this_does_not_exit; // E_WARNING
+}
+
+function main()
+{
+ foo();
+ echo 'After error.' . PHP_EOL;
+}
+
+main();
+
+echo 'Done.' . PHP_EOL;
+?>
+--EXPECTF--
+<!-- init '%s/observer_error_%d.php' -->
+<file '%s/observer_error_%d.php'>
+ <!-- init main() -->
+ <main>
+ <!-- init foo() -->
+ <foo>
+
+Warning: Undefined variable $this_does_not_exit in %s on line %d
+ </foo:NULL>
+After error.
+ </main:NULL>
+Done.
+</file '%s/observer_error_%d.php'>