Skip to content

Commit

Permalink
New tests
Browse files Browse the repository at this point in the history
# These tests were failing on different configurations, so adding them
# all to get more chances of seeing one failing in case of problem.
  • Loading branch information
arnaud-lb committed Jun 1, 2009
1 parent 07f2ac9 commit a2412a6
Show file tree
Hide file tree
Showing 4 changed files with 142 additions and 0 deletions.
32 changes: 32 additions & 0 deletions Zend/tests/bug48228.phpt
Original file line number Diff line number Diff line change
@@ -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
30 changes: 30 additions & 0 deletions Zend/tests/bug48408.phpt
Original file line number Diff line number Diff line change
@@ -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
67 changes: 67 additions & 0 deletions Zend/tests/bug48409.phpt
Original file line number Diff line number Diff line change
@@ -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
13 changes: 13 additions & 0 deletions Zend/tests/bug48428.phpt
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit a2412a6

Please sign in to comment.