Annotation of embedaddon/php/Zend/tests/bug26166.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #26166 (__toString() crash when no values returned)
        !             3: --FILE--
        !             4: <?php
        !             5: 
        !             6: class Foo
        !             7: {
        !             8:     function __toString()
        !             9:     {
        !            10:         return "Hello World!\n";
        !            11:     }
        !            12: }
        !            13: 
        !            14: class Bar
        !            15: {
        !            16:     private $obj;
        !            17: 
        !            18:     function __construct()
        !            19:     {
        !            20:         $this->obj = new Foo();
        !            21:     }
        !            22: 
        !            23:     function __toString()
        !            24:     {
        !            25:         return $this->obj->__toString();
        !            26:     }
        !            27: }
        !            28: 
        !            29: $o = new Bar;
        !            30: echo $o;
        !            31: 
        !            32: echo "===NONE===\n";
        !            33: 
        !            34: function my_error_handler($errno, $errstr, $errfile, $errline) {
        !            35:        var_dump($errstr);
        !            36: }
        !            37: 
        !            38: set_error_handler('my_error_handler');
        !            39: 
        !            40: class None
        !            41: {
        !            42:        function __toString() {
        !            43:        }
        !            44: }
        !            45: 
        !            46: $o = new None;
        !            47: echo $o;
        !            48: 
        !            49: echo "===THROW===\n";
        !            50: 
        !            51: class Error 
        !            52: {
        !            53:        function __toString() {
        !            54:                throw new Exception("This is an error!");
        !            55:        }
        !            56: }
        !            57: 
        !            58: $o = new Error;
        !            59: try {
        !            60:        echo $o;
        !            61: }
        !            62: catch (Exception $e) {
        !            63:        echo "Got the exception\n";
        !            64: }
        !            65: 
        !            66: ?>
        !            67: ===DONE===
        !            68: --EXPECTF--
        !            69: Hello World!
        !            70: ===NONE===
        !            71: string(52) "Method None::__toString() must return a string value"
        !            72: ===THROW===
        !            73: 
        !            74: Fatal error: Method Error::__toString() must not throw an exception in %sbug26166.php on line %d

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