]> granicus.if.org Git - php/commitdiff
- Add new test
authorMarcus Boerger <helly@php.net>
Sun, 20 Mar 2005 20:14:27 +0000 (20:14 +0000)
committerMarcus Boerger <helly@php.net>
Sun, 20 Mar 2005 20:14:27 +0000 (20:14 +0000)
Zend/tests/bug31102.phpt [new file with mode: 0755]

diff --git a/Zend/tests/bug31102.phpt b/Zend/tests/bug31102.phpt
new file mode 100755 (executable)
index 0000000..7dd841d
--- /dev/null
@@ -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