Annotation of embedaddon/php/Zend/tests/bug45805.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #45805 (Crash on throwing exception from error handler)
3: --SKIPIF--
4: <?php extension_loaded('reflection') or die('skip'); ?>
5: --FILE--
6: <?php
7: class PHPUnit_Util_ErrorHandler
8: {
9: public static function handleError($errno, $errstr, $errfile, $errline)
10: {
11: throw new RuntimeException;
12: }
13: }
14:
15: class A {
16: public function getX() {
17: return NULL;
18: }
19: }
20:
21: class B {
22: public function foo() {
23: $obj = new A;
24: $source = &$obj->getX();
25: }
26:
27: public function bar() {
28: $m = new ReflectionMethod('B', 'foo');
29: $m->invoke($this);
30: }
31: }
32:
33: set_error_handler(
34: array('PHPUnit_Util_ErrorHandler', 'handleError'), E_ALL | E_STRICT
35: );
36:
37: $o = new B;
38: $o->bar();
39: ?>
40: --EXPECTF--
41: Fatal error: Uncaught exception 'RuntimeException' in %sbug45805.php:%d
42: Stack trace:
43: #0 %sbug45805.php(%d): PHPUnit_Util_ErrorHandler::handleError(2048, 'Only variables ...', '%s', %d, Array)
44: #1 [internal function]: B->foo()
45: #2 %sbug45805.php(%d): ReflectionMethod->invoke(Object(B))
46: #3 %sbug45805.php(%d): B->bar()
47: #4 {main}
48: thrown in %sbug45805.php on line %d
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>