]> granicus.if.org Git - php/commitdiff
- Add new test
authorMarcus Boerger <helly@php.net>
Fri, 11 Mar 2005 02:32:07 +0000 (02:32 +0000)
committerMarcus Boerger <helly@php.net>
Fri, 11 Mar 2005 02:32:07 +0000 (02:32 +0000)
Zend/tests/bug32252.phpt [new file with mode: 0755]

diff --git a/Zend/tests/bug32252.phpt b/Zend/tests/bug32252.phpt
new file mode 100755 (executable)
index 0000000..706da18
--- /dev/null
@@ -0,0 +1,47 @@
+--TEST--
+Bug #32252 (Segfault when offsetSet throws an Exception (only without debug))
+--FILE--
+<?php
+
+class Test implements ArrayAccess
+{
+       function offsetExists($offset)
+       {
+               echo __METHOD__ . "($offset)\n";
+               return false;
+       }
+
+       function offsetGet($offset)
+       {
+               echo __METHOD__ . "($offset)\n";
+               return null;
+       }
+
+       function offsetSet($offset, $value)
+       {
+               echo __METHOD__ . "($offset, $value)\n";
+               throw new Exception("Ooops");
+       }
+
+       function offsetUnset($offset)
+       {
+               echo __METHOD__ . "($offset)\n";
+       }
+}
+
+$list = new Test();
+try
+{
+    $list[-1] = 123;
+}
+catch (Exception $e)
+{
+       echo "CAUGHT\n";
+}
+
+?>
+===DONE===
+--EXPECT--
+Test::offsetSet(-1, 123)
+CAUGHT
+===DONE===