File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / Zend / tests / bug26166.phpt
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:47:52 2012 UTC (13 years, 10 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, v5_3_10, HEAD
php

    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>