summaryrefslogtreecommitdiff
path: root/Zend/tests/bug31102.phpt
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2005-03-20 20:14:27 +0000
committerMarcus Boerger <helly@php.net>2005-03-20 20:14:27 +0000
commitd7a79134763a520d2179bcb1d68d84366977b9c5 (patch)
tree76232273c1b4c9a68612c08ff7ac26b33055b9d1 /Zend/tests/bug31102.phpt
parent978f50c046ccb20ac9f617ba443a456959f81223 (diff)
downloadphp-git-d7a79134763a520d2179bcb1d68d84366977b9c5.tar.gz
- Add new test
Diffstat (limited to 'Zend/tests/bug31102.phpt')
-rwxr-xr-xZend/tests/bug31102.phpt48
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