diff options
Diffstat (limited to 'Zend/tests/bug26166.phpt')
| -rwxr-xr-x | Zend/tests/bug26166.phpt | 141 |
1 files changed, 74 insertions, 67 deletions
diff --git a/Zend/tests/bug26166.phpt b/Zend/tests/bug26166.phpt index 01344cfb1..60624ed98 100755 --- a/Zend/tests/bug26166.phpt +++ b/Zend/tests/bug26166.phpt @@ -1,67 +1,74 @@ ---TEST--
-Bug #26166 (__toString() crash when no values returned)
---FILE--
-<?php
-class Foo
-{
- function __toString()
- {
- return "Hello World!\n";
- }
-}
-
-class Bar
-{
- private $obj;
-
- function __construct()
- {
- $this->obj = new Foo();
- }
-
- function __toString()
- {
- return $this->obj->__toString();
- }
-}
-
-$o = new Bar;
-echo $o;
-
-echo "===THROW===\n";
-
-class Error
-{
- function __toString() {
- throw new Exception("This is an error!");
- }
-}
-
-$o = new Error;
-try {
- echo $o;
-}
-catch (Exception $e) {
- echo "Got the exception\n";
-}
-
-echo "===NONE===\n";
-
-class None
-{
- function __toString() {
- }
-}
-
-$o = new None;
-echo $o;
-
-?>
-===DONE===
---EXPECTF--
-Hello World!
-===THROW===
-Got the exception
-===NONE===
-
-Fatal error: Method None::__toString() must return a string value in %sbug26166.php on line %d
+--TEST-- +Bug #26166 (__toString() crash when no values returned) +--FILE-- +<?php + +class Foo +{ + function __toString() + { + return "Hello World!\n"; + } +} + +class Bar +{ + private $obj; + + function __construct() + { + $this->obj = new Foo(); + } + + function __toString() + { + return $this->obj->__toString(); + } +} + +$o = new Bar; +echo $o; + +echo "===NONE===\n"; + +function my_error_handler($errno, $errstr, $errfile, $errline) { + var_dump($errstr); +} + +set_error_handler('my_error_handler'); + +class None +{ + function __toString() { + } +} + +$o = new None; +echo $o; + +echo "===THROW===\n"; + +class Error +{ + function __toString() { + throw new Exception("This is an error!"); + } +} + +$o = new Error; +try { + echo $o; +} +catch (Exception $e) { + echo "Got the exception\n"; +} + +?> +===DONE=== +--EXPECTF-- +Hello World! +===NONE=== +string(52) "Method None::__toString() must return a string value" +===THROW=== + +Fatal error: Method Error::__toString() must not throw an exception in %sbug26166.php on line %d |
