From fec49370525625ba110439c1cf32320e948766bb Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Sat, 19 Mar 2005 15:09:11 +0000 Subject: [PATCH] - Add new test --- ext/spl/tests/bug31185.phpt | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 ext/spl/tests/bug31185.phpt diff --git a/ext/spl/tests/bug31185.phpt b/ext/spl/tests/bug31185.phpt new file mode 100755 index 0000000000..edd90f5b47 --- /dev/null +++ b/ext/spl/tests/bug31185.phpt @@ -0,0 +1,57 @@ +--TEST-- +Bug #31185 (Crash when exceptions thrown from ArrayAccess::offsetUnset()) +--FILE-- +array[$index]); + } + + public function offsetGet($index) { + return $this->array[$index]; + } + + public function offsetSet($index, $value) { + $this->array[$index] = $value; + } + + public function offsetUnset($index) { + throw new Exception('FAIL'); + unset($this->array[$index]); + } + +} + +$i = 0; +$foo = new FooBar(); +$foo[$i] = $i++; +$foo[$i] = $i++; +$foo[$i] = $i++; +try +{ + unset($foo[1]); +} +catch (Exception $e) +{ + echo "CAUGHT: " . $e->getMessage() . "\n"; +} + +print_R($foo); +?> +===DONE=== +--EXPECT-- +CAUGHT: FAIL +FooBar Object +( + [array:private] => Array + ( + [1] => 0 + [2] => 1 + [3] => 2 + ) + +) +===DONE=== -- 2.40.0