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>