Annotation of embedaddon/php/Zend/tests/bug26166.phpt, revision 1.1.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>