tests++
authorMichael Wallner <mike@php.net>
Mon, 21 Jan 2013 16:44:37 +0000 (17:44 +0100)
committerMichael Wallner <mike@php.net>
Mon, 21 Jan 2013 16:44:37 +0000 (17:44 +0100)
tests/_skipif.inc
tests/async001.phpt [new file with mode: 0644]
tests/async002.phpt [new file with mode: 0644]
tests/reset001.phpt [new file with mode: 0644]

index 93ac8ae8378d5386c86d9743574a41ad97e9006e..50fee406edd5c78ae76012fb1744ca94657f258d 100644 (file)
@@ -3,3 +3,5 @@ function _ext($ext) {
        extension_loaded($ext) or die("skip $ext not loaded");
 }
 _ext("pq");
+include "_setup.inc";
+defined("PQ_DSN") or die("skip PG_DSN undefined");
diff --git a/tests/async001.phpt b/tests/async001.phpt
new file mode 100644 (file)
index 0000000..9fa2eb7
--- /dev/null
@@ -0,0 +1,48 @@
+--TEST--
+async connect
+--SKIPIF--
+<?php include "_skipif.inc"; ?>
+--FILE--
+<?php
+echo "Test\n";
+
+include "_setup.inc";
+
+$c = new pq\Connection(PQ_DSN, false);
+$s = array($c->status);
+echo "W";
+$w = array($c->socket);
+$r = $e = null;
+stream_select($r, $w, $e, null);
+while (true) {
+       $s[] = $c->status;
+       echo "P";
+       switch ($c->poll()) {
+               case pq\Connection::POLLING_READING:
+                       echo "R";
+                       $w = $e = null;
+                       $r = array($c->socket);
+                       stream_select($r, $w, $e, NULL);
+                       break;
+               case pq\Connection::POLLING_WRITING:
+                       echo "W";
+                       $w = array($c->socket);
+                       $r = $e = null;
+                       stream_select($r, $w, $e, null);
+                       break;
+               case pq\Connection::POLLING_FAILED:
+                       echo "F";
+                       break 2;
+               case pq\Connection::POLLING_OK:
+                       echo "S";
+                       break 2;
+       }
+}
+printf("\n%s\n", implode(",", $s));
+?>
+DONE
+--EXPECTREGEX--
+Test
+(WP(RP)*)+S
+3(,\d+),+4
+DONE
diff --git a/tests/async002.phpt b/tests/async002.phpt
new file mode 100644 (file)
index 0000000..3dd80d1
--- /dev/null
@@ -0,0 +1,60 @@
+--TEST--
+async reset
+--SKIPIF--
+<?php include "_skipif.inc"; ?>
+--FILE--
+<?php
+echo "Test\n";
+
+include "_setup.inc";
+
+$c = new pq\Connection(PQ_DSN, false);
+
+function complete($c) {
+       $s = array($c->status);
+       echo "W";
+       $w = array($c->socket);
+       $r = $e = null;
+       stream_select($r, $w, $e, null);
+       while (true) {
+               $s[] = $c->status;
+               echo "P";
+               switch ($c->poll()) {
+                       case pq\Connection::POLLING_READING:
+                               echo "R";
+                               $w = $e = null;
+                               $r = array($c->socket);
+                               stream_select($r, $w, $e, NULL);
+                               break;
+                       case pq\Connection::POLLING_WRITING:
+                               echo "W";
+                               $w = array($c->socket);
+                               $r = $e = null;
+                               stream_select($r, $w, $e, null);
+                               break;
+                       case pq\Connection::POLLING_FAILED:
+                               echo "F";
+                               break 2;
+                       case pq\Connection::POLLING_OK:
+                               echo "S";
+                               break 2;
+               }
+       }
+       printf("\n%s\n", implode(",", $s));
+}
+
+complete($c);
+
+if ($c->status == pq\Connection::OK) {
+       $c->reset();
+       complete($c);
+}
+?>
+DONE
+--EXPECTREGEX--
+Test
+(WP(RP)*)+S
+3(,\d+),+4
+(WP(RP)*)+S
+3(,\d+),+4
+DONE
diff --git a/tests/reset001.phpt b/tests/reset001.phpt
new file mode 100644 (file)
index 0000000..f83e042
--- /dev/null
@@ -0,0 +1,21 @@
+--TEST--
+connection reset
+--SKIPIF--
+<?php include "_skipif.inc"; ?>
+--FILE--
+<?php
+echo "Test\n";
+
+include "_setup.inc";
+
+$c = new pq\Connection(PQ_DSN);
+var_dump($c->reset());
+var_dump($c->reset());
+
+?>
+DONE
+--EXPECT--
+Test
+bool(true)
+bool(true)
+DONE