- Fix/add tests

This commit is contained in:
Marcus Boerger 2008-07-13 21:37:27 +00:00
parent 0960a894f8
commit 33adcdf0cc
3 changed files with 83 additions and 1 deletions

36
Zend/tests/exception_007.phpt Executable file
View File

@ -0,0 +1,36 @@
--TEST--
Setting previous exception
--FILE--
<?php
try {
try {
throw new Exception("First", 1, new Exception("Another", 0, NULL));
}
catch (Exception $e) {
throw new Exception("Second", 2, $e);
}
}
catch (Exception $e) {
throw new Exception("Third", 3, $e);
}
?>
===DONE===
--EXPECTF--
Fatal error: Uncaught exception 'Exception' with message 'Another' in %sexception_007.php:%d
Stack trace:
#0 {main}
Next exception 'Exception' with message 'First' in %sexception_007.php:%d
Stack trace:
#0 {main}
Next exception 'Exception' with message 'Second' in %sexception_007.php:%d
Stack trace:
#0 {main}
Next exception 'Exception' with message 'Third' in %sexception_007.php:%d
Stack trace:
#0 {main}
thrown in %sexception_007.php on line %d

36
Zend/tests/exception_008.phpt Executable file
View File

@ -0,0 +1,36 @@
--TEST--
Exception in __destruct while exception is pending
--FILE--
<?php
class TestFirst
{
function __destruct() {
throw new Exception("First");
}
}
class TestSecond
{
function __destruct() {
throw new Exception("Second");
}
}
$ar = array(new TestFirst, new TestSecond);
unset($ar);
?>
===DONE===
--EXPECTF--
Fatal error: Uncaught exception 'Exception' with message 'First' in %sexception_008.php:%d
Stack trace:
#0 %sexception_008.php(%d): TestFirst->__destruct()
#1 {main}
Next exception 'Exception' with message 'Second' in %sexception_008.php:%d
Stack trace:
#0 %sexception_008.php(%d): TestSecond->__destruct()
#1 {main}
thrown in %sexception_008.php on line %d

View File

@ -18,4 +18,14 @@ unset($f1, $f2);
gc_collect_cycles();
?>
--EXPECTF--
Fatal error: Ignoring exception from foo::__destruct() while an exception is already active (Uncaught Exception in %sgc_030.php on line %d) in %sgc_030.php on line %d
Fatal error: Uncaught exception 'Exception' with message 'foobar' in %sgc_030.php:%d
Stack trace:
#0 [internal function]: foo->__destruct()
#1 %sgc_030.php(%d): gc_collect_cycles()
#2 {main}
Next exception 'Exception' with message 'foobar' in %sgc_030.php:%d
Stack trace:
#0 %sgc_030.php(%d): foo->__destruct()
#1 {main}
thrown in %sgc_030.php on line %d