]> granicus.if.org Git - php/commitdiff
MFH: New tests
authorArnaud Le Blanc <lbarnaud@php.net>
Mon, 1 Jun 2009 16:10:47 +0000 (16:10 +0000)
committerArnaud Le Blanc <lbarnaud@php.net>
Mon, 1 Jun 2009 16:10:47 +0000 (16:10 +0000)
# These tests were failing on different configurations, so adding them
# all to get more chances of seeing one failing in case of problem.

Zend/tests/bug48228.phpt [new file with mode: 0644]
Zend/tests/bug48408.phpt [new file with mode: 0644]
Zend/tests/bug48409.phpt [new file with mode: 0644]
Zend/tests/bug48428.phpt [new file with mode: 0644]

diff --git a/Zend/tests/bug48228.phpt b/Zend/tests/bug48228.phpt
new file mode 100644 (file)
index 0000000..2add69c
--- /dev/null
@@ -0,0 +1,32 @@
+--TEST--
+Bug #48228 (crash when exception is thrown while passing function arguments)
+--FILE--
+<?
+
+function do_throw() {
+       throw new Exception();
+}
+
+class aa 
+{
+       function check()
+       {
+       }
+
+       function dosome()
+       {
+               $this->check(do_throw());
+       }
+}
+$l_aa=new aa();
+
+$l_aa->dosome();
+?>
+--EXPECTF--
+
+Fatal error: Uncaught exception 'Exception' in %s
+Stack trace:
+#0 %s(%d): do_throw()
+#1 %s(%d): aa->dosome()
+#2 {main}
+  thrown in %s
diff --git a/Zend/tests/bug48408.phpt b/Zend/tests/bug48408.phpt
new file mode 100644 (file)
index 0000000..20a0198
--- /dev/null
@@ -0,0 +1,30 @@
+--TEST--
+Bug #48408 (crash when exception is thrown while passing function arguments)
+--FILE--
+<?php
+class B{
+       public function process($x){
+               return $x;
+       }
+}
+class C{
+       public function generate($x){
+               throw new Exception;
+       }
+}
+$b = new B;
+$c = new C;
+try{
+       $b->process($c->generate(0));
+}
+catch(Exception $e){
+       $c->generate(0);
+}
+?>
+--EXPECTF--
+
+Fatal error: Uncaught exception 'Exception' in %s
+Stack trace:
+#0 %s(%d): C->generate(0)
+#1 {main}
+  thrown in %s
diff --git a/Zend/tests/bug48409.phpt b/Zend/tests/bug48409.phpt
new file mode 100644 (file)
index 0000000..238b52e
--- /dev/null
@@ -0,0 +1,67 @@
+--TEST--
+Bug #48409 (crash when exception is thrown while passing function arguments)
+--FILE--
+<?php
+
+class ABCException extends Exception {}
+
+class BBB
+{
+       public function xyz($d, $x)
+       {
+               if ($x == 34) {
+                       throw new ABCException;
+               }
+               return array('foo' => 'xyz');
+       }
+}
+       
+class CCC
+{
+       public function process($p)
+       {
+               return $p;
+       }
+}
+
+class AAA
+{
+       public function func()
+       {
+               $b = new BBB;
+               $c = new CCC;
+               $i = 34;
+               $item = array('foo' => 'bar');
+               try {
+                       $c->process($b->xyz($item['foo'], $i));
+               }
+               catch(ABCException $e) {
+                       $b->xyz($item['foo'], $i);
+               }
+       } // end func();
+}
+
+class Runner
+{
+       public function run($x)
+       {
+               try {
+                       $x->func();
+               }
+               catch(ABCException $e) {
+                       throw new Exception;
+               }
+       }
+}
+
+try {
+       $runner = new Runner;
+       $runner->run(new AAA);
+}
+catch(Exception $e) {
+       die('Exception thrown');
+}
+
+?>
+--EXPECT--
+Exception thrown
diff --git a/Zend/tests/bug48428.phpt b/Zend/tests/bug48428.phpt
new file mode 100644 (file)
index 0000000..ae9ac93
--- /dev/null
@@ -0,0 +1,13 @@
+--TEST--
+Bug #48428 (crash when exception is thrown while passing function arguments)
+--FILE--
+<?php
+try {
+               function x() { throw new Exception("ERROR"); }
+                               x(x());
+} catch(Exception $e) {
+               echo($e -> getMessage());
+}
+?>
+--EXPECT--
+ERROR