Annotation of embedaddon/php/Zend/tests/bug38047.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Bug #38047 ("file" and "line" sometimes not set in backtrace from inside error handler)
                      3: --FILE--
                      4: <?php
                      5: error_reporting(E_ALL);
                      6: set_error_handler('kalus_error_handler');
                      7: ini_set("display_errors", "on");
                      8: 
                      9: class A {
                     10:   function A_ftk($a) {
                     11:   }
                     12: }
                     13: 
                     14: function kalus_error_handler($error_code, $error_string, $filename, $line, $symbols) {
                     15:   echo "$error_string\n";
                     16:   get_error_context();
                     17: }
                     18: 
                     19: function get_error_context() {
                     20:   $backtrace = debug_backtrace();
                     21:   $n = 1;
                     22:   foreach ($backtrace as $call) {
                     23:        echo $n++." ";
                     24:        if (isset($call["file"])) {
                     25:                echo $call["file"];
                     26:                if (isset($call["line"])) {
                     27:                        echo ":".$call["line"];
                     28:                }
                     29:        }
                     30:        if (isset($call["function"])) {
                     31:                echo " ".$call["function"]."()";
                     32:        }
                     33:        echo "\n";
                     34:   }
                     35:   echo "\n";
                     36: }
                     37: 
                     38: //This will not create file and line items for the call into the error handler
                     39: $page["name"] = A::A_ftk();
                     40: ?>
                     41: --EXPECTF--
                     42: Non-static method A::A_ftk() should not be called statically
                     43: 1 %sbug38047.php:13 get_error_context()
                     44: 2 %sbug38047.php:36 kalus_error_handler()
                     45: 3 %sbug38047.php:36 A_ftk()
                     46: 
                     47: Missing argument 1 for A::A_ftk(), called in %sbug38047.php on line 36 and defined
                     48: 1 %sbug38047.php:13 get_error_context()
                     49: 2 %sbug38047.php:7 kalus_error_handler()
                     50: 3 %sbug38047.php:36 A_ftk()

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>