--- /dev/null
+--TEST--
+crash result iterator
+--SKIPIF--
+<?php
+include "_skipif.inc";
+?>
+--FILE--
+<?php
+echo "Test\n";
+
+include "_setup.inc";
+
+$conn = new pq\Connection(PQ_DSN);
+
+$sql = "
+ SELECT id
+ FROM generate_series(1,3) id
+ ORDER BY id ASC
+ LIMIT 5
+";
+
+foreach ($conn->exec($sql) as $row) {
+ var_dump($row);
+}
+?>
+===DONE===
+--EXPECT--
+Test
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(2)
+}
+array(1) {
+ [0]=>
+ int(3)
+}
+===DONE===
--- /dev/null
+--TEST--
+crash stm reverse dependency from connection
+--SKIPIF--
+<?php
+include "_skipif.inc";
+?>
+--FILE--
+<?php
+echo "Test\n";
+
+include "_setup.inc";
+
+$c = new pq\Connection(PQ_DSN);
+$c->s = $c->prepare("test", "SELECT 1");
+
+?>
+===DONE===
+--EXPECT--
+Test
+===DONE===
--- /dev/null
+--TEST--
+crash unbuffered async prepare
+--SKIPIF--
+<?php
+include "_skipif.inc";
+?>
+--FILE--
+<?php
+echo "Test\n";
+
+include "_setup.inc";
+
+function complete($c) {
+ do {
+ while ($c->busy) {
+ $r = array($c->socket);
+ $w = $e = null;
+ if (stream_select($r, $w, $e, null)) {
+ $c->poll();
+ }
+ }
+ } while ($c->getResult());
+}
+
+try {
+ $c = new pq\Connection(PQ_DSN);
+ $c->unbuffered = true;
+
+ $s = $c->prepareAsync("test", "SELECT * from generate_series(1,2)");
+ complete($c);
+
+ $r = $s->execAsync();
+ complete($c);
+} catch (Exception $e) {
+ echo $e;
+}
+unset($c);
+
+?>
+===DONE===
+--EXPECT--
+Test
+===DONE===
\ No newline at end of file