diff options
author | Marcus Boerger <helly@php.net> | 2005-03-20 20:14:27 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2005-03-20 20:14:27 +0000 |
commit | d7a79134763a520d2179bcb1d68d84366977b9c5 (patch) | |
tree | 76232273c1b4c9a68612c08ff7ac26b33055b9d1 /Zend/tests/bug31102.phpt | |
parent | 978f50c046ccb20ac9f617ba443a456959f81223 (diff) | |
download | php-git-d7a79134763a520d2179bcb1d68d84366977b9c5.tar.gz |
- Add new test
Diffstat (limited to 'Zend/tests/bug31102.phpt')
-rwxr-xr-x | Zend/tests/bug31102.phpt | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Zend/tests/bug31102.phpt b/Zend/tests/bug31102.phpt new file mode 100755 index 0000000000..7dd841dd53 --- /dev/null +++ b/Zend/tests/bug31102.phpt @@ -0,0 +1,48 @@ +--TEST-- +Bug #31102 () +--FILE-- +<?php + +$test = 0; + +function __autoload($class) +{ + global $test; + + echo __METHOD__ . "($class,$test)\n"; + switch($test) + { + case 1: + eval("class $class { function __construct(){throw new Exception('$class::__construct');}}"); + return; + case 2: + eval("class $class { function __construct(){throw new Exception('$class::__construct');}}"); + throw new Exception(__METHOD__); + return; + case 3: + return; + } +} + +while($test++ < 5) +{ + try + { + eval("\$bug = new Test$test();"); + } + catch (Exception $e) + { + echo "Caught: " . $e->getMessage() . "\n"; + } +} +?> +===DONE=== +<?php exit(0); ?> +--EXPECTF-- +__autoload(Test1,1) +Caught: Test1::__construct +__autoload(Test2,2) +Caught: __autoload +__autoload(Test3,3) + +Fatal error: Class 'Test3' not found in %sbug31102.php(%d) : eval()'d code on line 1 |