moar tests
authorMichael Wallner <mike@php.net>
Tue, 14 May 2013 11:50:22 +0000 (13:50 +0200)
committerMichael Wallner <mike@php.net>
Tue, 14 May 2013 11:50:22 +0000 (13:50 +0200)
package.xml
src/php_pq_params.c
tests/conv001.phpt
tests/info002.phpt [new file with mode: 0644]
tests/lob001.phpt
tests/res001.phpt [new file with mode: 0644]

index c686d58c6eb725d9c5335635102100179581a041..741cddca9417c0089456a29aaeeb3c27f600946e 100644 (file)
@@ -102,6 +102,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
     <file role="test" name="exceptions002.phpt" />
     <file role="test" name="fetch001.phpt" />
     <file role="test" name="info001.phpt" />
+    <file role="test" name="info002.phpt" />
     <file role="test" name="lob001.phpt" />
     <file role="test" name="lob002.phpt" />
     <file role="test" name="lob003.phpt" />
@@ -109,6 +110,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
     <file role="test" name="map001.phpt" />
     <file role="test" name="notify001.phpt" />
     <file role="test" name="persistent001.phpt" />
+    <file role="test" name="res001.phpt" />
     <file role="test" name="reset001.phpt" />
     <file role="test" name="savepoint001.phpt" />
     <file role="test" name="stm_desc001.phpt" />
index 0c8278e95593c37ebd2475fe4b0b81b5e5311861..ec915829ed7146bf03911fd7f6eb93d69ddfdaf6 100644 (file)
@@ -137,6 +137,7 @@ static int apply_to_param_from_array(void *p TSRMLS_DC, int argc, va_list argv,
                        if (*zparam != *((zval **) p)) {
                                zval_ptr_dtor(zparam);
                        }
+                       efree(tmp);
                        break;
                }
        }
index 3020945136aecebbca5718e8b514917143c8e8b9..7340c49eb6aea5d86e7370cfa23a5be179086560 100644 (file)
@@ -83,7 +83,7 @@ $c->setConverter(new HStoreConverter($t));
 $c->setConverter(new IntVectorConverter($t));
 $c->setConverter(new JSONConverter($t));
 
-$r = $c->execParams("SELECT \$1 as hs, \$2 as iv, \$3 as oids, \$4 as js",
+$r = $c->execParams("SELECT \$1 as hs, \$2 as iv, \$3 as oids, \$4 as js, \$5 as ia, \$6 as ta, \$7 as ba, \$8 as da",
        array(
                // hstore
                array(
@@ -107,13 +107,22 @@ $r = $c->execParams("SELECT \$1 as hs, \$2 as iv, \$3 as oids, \$4 as js",
                                "c" => 3,
                        ),
                        "str" => "äüö"
-               )
+               ),
+               // arrays
+               array(array(array(1,2,3))),
+               array(array("a\"","b}",null)),
+               array(true,false),
+               array(1.1,2.2)
        ),
        array(
                $t["hstore"]->oid,
                $t["int2vector"]->oid,
                $t["oidvector"]->oid,
-               $t["json"]->oid
+               $t["json"]->oid,
+               $t["_int4"]->oid,
+               $t["_text"]->oid,
+               $t["_bool"]->oid,
+               $t["_float8"]->oid
        )
 );
 
@@ -125,7 +134,7 @@ Done
 Test
 array(1) {
   [0]=>
-  array(4) {
+  array(%d) {
     [0]=>
     array(3) {
       ["k1"]=>
@@ -175,6 +184,47 @@ array(1) {
       ["str"]=>
       string(6) "äüö"
     }
+    [4]=>
+    array(1) {
+      [0]=>
+      array(1) {
+        [0]=>
+        array(3) {
+          [0]=>
+          int(1)
+          [1]=>
+          int(2)
+          [2]=>
+          int(3)
+        }
+      }
+    }
+    [5]=>
+    array(1) {
+      [0]=>
+      array(3) {
+        [0]=>
+        string(2) "a""
+        [1]=>
+        string(2) "b}"
+        [2]=>
+        NULL
+      }
+    }
+    [6]=>
+    array(2) {
+      [0]=>
+      bool(true)
+      [1]=>
+      bool(false)
+    }
+    [7]=>
+    array(2) {
+      [0]=>
+      float(1.1)
+      [1]=>
+      float(2.2)
+    }
   }
 }
 Done
diff --git a/tests/info002.phpt b/tests/info002.phpt
new file mode 100644 (file)
index 0000000..0299df9
--- /dev/null
@@ -0,0 +1,24 @@
+--TEST--
+ext info
+--SKIPIF--
+<?php
+include "_skipif.inc";
+?>
+--FILE--
+<?php
+echo "Test\n";
+$e = new ReflectionExtension("pq");
+$e->info();
+?>
+Done
+--EXPECTF--
+Test
+
+pq
+
+PQ Support => enabled
+Extension Version => %s
+
+Used Library => Version
+libpq => %s
+Done
index 7f91f645788215e6cc0ed1e75bea9c32eac2a325..990d6f02a774e7df01f94afa845ce6e4985e35d9 100644 (file)
@@ -12,6 +12,9 @@ $c = new pq\Connection(PQ_DSN);
 $t = $c->startTransaction();
 
 $lob = $t->createLOB();
+
+var_dump($lob->transaction === $t);
+
 $lob->write(file_get_contents(__FILE__));
 var_dump($lob->tell());
 
@@ -31,7 +34,8 @@ $t->unlinkLOB($lob->oid);
 DONE
 --EXPECTF--
 Test
-int(451)
+bool(true)
+int(489)
 bool(true)
 string(5) "%c?php"
 DONE
diff --git a/tests/res001.phpt b/tests/res001.phpt
new file mode 100644 (file)
index 0000000..89e0512
--- /dev/null
@@ -0,0 +1,86 @@
+--TEST--
+empty result
+--SKIPIF--
+<?php
+include "_skipif.inc";
+?>
+--FILE--
+<?php
+echo "Test\n";
+
+include "_setup.inc";
+
+class r extends pq\Result {
+       public $dummy = 2;
+}
+
+var_dump(new pq\Result, get_object_vars(new r));
+?>
+Done
+--EXPECTF--
+Test
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+
+Warning: pq\Result not initialized in %s on line %d
+object(pq\Result)#%d (7) {
+  ["status"]=>
+  NULL
+  ["statusMessage"]=>
+  NULL
+  ["errorMessage"]=>
+  NULL
+  ["numRows"]=>
+  int(0)
+  ["numCols"]=>
+  int(0)
+  ["affectedRows"]=>
+  int(0)
+  ["fetchType"]=>
+  int(0)
+}
+array(8) {
+  ["dummy"]=>
+  int(2)
+  ["status"]=>
+  NULL
+  ["statusMessage"]=>
+  NULL
+  ["errorMessage"]=>
+  NULL
+  ["numRows"]=>
+  int(0)
+  ["numCols"]=>
+  int(0)
+  ["affectedRows"]=>
+  int(0)
+  ["fetchType"]=>
+  int(0)
+}
+Done