]> granicus.if.org Git - php/commitdiff
improve tests, add new ones
authorAntony Dovgal <tony2001@php.net>
Thu, 21 Dec 2006 19:22:49 +0000 (19:22 +0000)
committerAntony Dovgal <tony2001@php.net>
Thu, 21 Dec 2006 19:22:49 +0000 (19:22 +0000)
ext/oci8/tests/array_bind_014.phpt [new file with mode: 0644]
ext/oci8/tests/array_bind_int1.phpt
ext/oci8/tests/error1.phpt
ext/oci8/tests/fetch_all2.phpt [new file with mode: 0644]
ext/oci8/tests/lob_020.phpt
ext/oci8/tests/lob_027.phpt
ext/oci8/tests/lob_033.phpt [new file with mode: 0644]
ext/oci8/tests/lob_034.phpt [new file with mode: 0644]
ext/oci8/tests/lob_035.phpt [new file with mode: 0644]
ext/oci8/tests/privileged_connect1.phpt

diff --git a/ext/oci8/tests/array_bind_014.phpt b/ext/oci8/tests/array_bind_014.phpt
new file mode 100644 (file)
index 0000000..bd9fdf1
--- /dev/null
@@ -0,0 +1,73 @@
+--TEST--
+oci_bind_array_by_name() and NUMBERs
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+--FILE--
+<?php
+
+require dirname(__FILE__).'/connect.inc';
+
+$drop = "DROP table bind_test";
+$statement = oci_parse($c, $drop);
+@oci_execute($statement);
+
+$create = "CREATE table bind_test(name NUMBER)";
+$statement = oci_parse($c, $create);
+oci_execute($statement);
+
+$create_pkg = "
+CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS 
+  TYPE ARRTYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; 
+  PROCEDURE iobind(c1 IN OUT ARRTYPE); 
+END ARRAYBINDPKG1;";
+$statement = oci_parse($c, $create_pkg);
+oci_execute($statement);
+
+$create_pkg_body = "
+CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS 
+  CURSOR CUR IS SELECT name FROM bind_test;
+  PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
+    BEGIN
+    IF NOT CUR%ISOPEN THEN
+      OPEN CUR;
+    END IF;
+    FOR i IN REVERSE 1..5 LOOP
+      FETCH CUR INTO c1(i);
+      IF CUR%NOTFOUND THEN
+        CLOSE CUR;
+        EXIT;
+      END IF;
+    END LOOP;
+  END iobind;
+END ARRAYBINDPKG1;";
+$statement = oci_parse($c, $create_pkg_body);
+oci_execute($statement);
+
+for ($i = 1; $i < 6; $i++) {
+       $statement = oci_parse($c, "INSERT INTO bind_test VALUES (".$i.")");
+       oci_execute($statement);
+}
+
+$statement = oci_parse($c, "BEGIN ARRAYBINDPKG1.iobind(:c1); END;");
+$array = Array();
+oci_bind_array_by_name($statement, ":c1", $array, 5, -1, SQLT_INT);
+oci_execute($statement);
+
+var_dump($array);
+
+echo "Done\n";
+?>
+--EXPECTF--    
+array(5) {
+  [0]=>
+  int(5)
+  [1]=>
+  int(4)
+  [2]=>
+  int(3)
+  [3]=>
+  int(2)
+  [4]=>
+  int(1)
+}
+Done
index eb2072adcfb0b477b7f079a8c7d43daa55de341d..5e06de876bbc475506c24e760286d1a6acccc270 100644 (file)
@@ -50,7 +50,7 @@ $statement = oci_parse($c, "BEGIN ARRAYBINDPKG1.iobind(:c1); END;");
 
 $array = Array(1,2,3,4,5);
 
-oci_bind_array_by_name($statement, ":c1", $array, 10, 5, SQLT_NUM);
+oci_bind_array_by_name($statement, ":c1", $array, 10, 5, SQLT_INT);
 
 oci_execute($statement);
 
index 6cb16675fd53f13082fcab8d13767974ada03eb6..1048fc65d0ff9296a30ce0465653c5418c65fe63 100644 (file)
@@ -32,7 +32,7 @@ array(4) {
   ["code"]=>
   int(12154)
   ["message"]=>
-  unicode(45) "ORA-12154: TNS:could not resolve %s"
+  unicode(%d) "ORA-12154: TNS:could not resolve %s"
   ["offset"]=>
   int(0)
   ["sqltext"]=>
diff --git a/ext/oci8/tests/fetch_all2.phpt b/ext/oci8/tests/fetch_all2.phpt
new file mode 100644 (file)
index 0000000..787abf8
--- /dev/null
@@ -0,0 +1,432 @@
+--TEST--
+oci_fetch_all() - 2 
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+--FILE--
+<?php
+
+require dirname(__FILE__)."/connect.inc";
+require dirname(__FILE__).'/create_table.inc';
+
+$insert_sql = "INSERT INTO ".$schema."".$table_name." (id, value) VALUES (1,1)";
+
+$s = oci_parse($c, $insert_sql);
+
+for ($i = 0; $i<3; $i++) {
+       oci_execute($s);
+}
+
+oci_commit($c);
+
+$select_sql = "SELECT * FROM ".$schema."".$table_name."";
+
+$s = oci_parse($c, $select_sql);
+
+oci_execute($s);
+var_dump(oci_fetch_all($s, $all));
+var_dump($all);
+
+oci_execute($s);
+var_dump(oci_fetch_all($s, $all, 0, 10, OCI_FETCHSTATEMENT_BY_ROW));
+var_dump($all);
+
+oci_execute($s);
+var_dump(oci_fetch_all($s, $all, -1, -1, OCI_FETCHSTATEMENT_BY_ROW));
+var_dump($all);
+
+oci_execute($s);
+var_dump(oci_fetch_all($s, $all, 0, 2, OCI_FETCHSTATEMENT_BY_ROW+OCI_NUM));
+var_dump($all);
+
+oci_execute($s);
+var_dump(oci_fetch_all($s, $all, 0, 2, OCI_NUM));
+var_dump($all);
+
+oci_execute($s);
+var_dump(oci_fetch_all($s, $all, 0, 1, OCI_BOTH));
+var_dump($all);
+
+require dirname(__FILE__).'/drop_table.inc';
+       
+echo "Done\n";
+?>
+--EXPECT--
+int(3)
+array(5) {
+  ["ID"]=>
+  array(3) {
+    [0]=>
+    string(1) "1"
+    [1]=>
+    string(1) "1"
+    [2]=>
+    string(1) "1"
+  }
+  ["VALUE"]=>
+  array(3) {
+    [0]=>
+    string(1) "1"
+    [1]=>
+    string(1) "1"
+    [2]=>
+    string(1) "1"
+  }
+  ["BLOB"]=>
+  array(3) {
+    [0]=>
+    NULL
+    [1]=>
+    NULL
+    [2]=>
+    NULL
+  }
+  ["CLOB"]=>
+  array(3) {
+    [0]=>
+    NULL
+    [1]=>
+    NULL
+    [2]=>
+    NULL
+  }
+  ["STRING"]=>
+  array(3) {
+    [0]=>
+    NULL
+    [1]=>
+    NULL
+    [2]=>
+    NULL
+  }
+}
+int(3)
+array(3) {
+  [0]=>
+  array(5) {
+    ["ID"]=>
+    string(1) "1"
+    ["VALUE"]=>
+    string(1) "1"
+    ["BLOB"]=>
+    NULL
+    ["CLOB"]=>
+    NULL
+    ["STRING"]=>
+    NULL
+  }
+  [1]=>
+  array(5) {
+    ["ID"]=>
+    string(1) "1"
+    ["VALUE"]=>
+    string(1) "1"
+    ["BLOB"]=>
+    NULL
+    ["CLOB"]=>
+    NULL
+    ["STRING"]=>
+    NULL
+  }
+  [2]=>
+  array(5) {
+    ["ID"]=>
+    string(1) "1"
+    ["VALUE"]=>
+    string(1) "1"
+    ["BLOB"]=>
+    NULL
+    ["CLOB"]=>
+    NULL
+    ["STRING"]=>
+    NULL
+  }
+}
+int(0)
+array(0) {
+}
+int(2)
+array(2) {
+  [0]=>
+  array(5) {
+    [0]=>
+    string(1) "1"
+    [1]=>
+    string(1) "1"
+    [2]=>
+    NULL
+    [3]=>
+    NULL
+    [4]=>
+    NULL
+  }
+  [1]=>
+  array(5) {
+    [0]=>
+    string(1) "1"
+    [1]=>
+    string(1) "1"
+    [2]=>
+    NULL
+    [3]=>
+    NULL
+    [4]=>
+    NULL
+  }
+}
+int(2)
+array(5) {
+  [0]=>
+  array(2) {
+    [0]=>
+    string(1) "1"
+    [1]=>
+    string(1) "1"
+  }
+  [1]=>
+  array(2) {
+    [0]=>
+    string(1) "1"
+    [1]=>
+    string(1) "1"
+  }
+  [2]=>
+  array(2) {
+    [0]=>
+    NULL
+    [1]=>
+    NULL
+  }
+  [3]=>
+  array(2) {
+    [0]=>
+    NULL
+    [1]=>
+    NULL
+  }
+  [4]=>
+  array(2) {
+    [0]=>
+    NULL
+    [1]=>
+    NULL
+  }
+}
+int(1)
+array(5) {
+  [0]=>
+  array(1) {
+    [0]=>
+    string(1) "1"
+  }
+  [1]=>
+  array(1) {
+    [0]=>
+    string(1) "1"
+  }
+  [2]=>
+  array(1) {
+    [0]=>
+    NULL
+  }
+  [3]=>
+  array(1) {
+    [0]=>
+    NULL
+  }
+  [4]=>
+  array(1) {
+    [0]=>
+    NULL
+  }
+}
+Done
+--UEXPECT--
+int(3)
+array(5) {
+  [u"ID"]=>
+  array(3) {
+    [0]=>
+    unicode(1) "1"
+    [1]=>
+    unicode(1) "1"
+    [2]=>
+    unicode(1) "1"
+  }
+  [u"VALUE"]=>
+  array(3) {
+    [0]=>
+    unicode(1) "1"
+    [1]=>
+    unicode(1) "1"
+    [2]=>
+    unicode(1) "1"
+  }
+  [u"BLOB"]=>
+  array(3) {
+    [0]=>
+    NULL
+    [1]=>
+    NULL
+    [2]=>
+    NULL
+  }
+  [u"CLOB"]=>
+  array(3) {
+    [0]=>
+    NULL
+    [1]=>
+    NULL
+    [2]=>
+    NULL
+  }
+  [u"STRING"]=>
+  array(3) {
+    [0]=>
+    NULL
+    [1]=>
+    NULL
+    [2]=>
+    NULL
+  }
+}
+int(3)
+array(3) {
+  [0]=>
+  array(5) {
+    [u"ID"]=>
+    unicode(1) "1"
+    [u"VALUE"]=>
+    unicode(1) "1"
+    [u"BLOB"]=>
+    NULL
+    [u"CLOB"]=>
+    NULL
+    [u"STRING"]=>
+    NULL
+  }
+  [1]=>
+  array(5) {
+    [u"ID"]=>
+    unicode(1) "1"
+    [u"VALUE"]=>
+    unicode(1) "1"
+    [u"BLOB"]=>
+    NULL
+    [u"CLOB"]=>
+    NULL
+    [u"STRING"]=>
+    NULL
+  }
+  [2]=>
+  array(5) {
+    [u"ID"]=>
+    unicode(1) "1"
+    [u"VALUE"]=>
+    unicode(1) "1"
+    [u"BLOB"]=>
+    NULL
+    [u"CLOB"]=>
+    NULL
+    [u"STRING"]=>
+    NULL
+  }
+}
+int(0)
+array(0) {
+}
+int(2)
+array(2) {
+  [0]=>
+  array(5) {
+    [0]=>
+    unicode(1) "1"
+    [1]=>
+    unicode(1) "1"
+    [2]=>
+    NULL
+    [3]=>
+    NULL
+    [4]=>
+    NULL
+  }
+  [1]=>
+  array(5) {
+    [0]=>
+    unicode(1) "1"
+    [1]=>
+    unicode(1) "1"
+    [2]=>
+    NULL
+    [3]=>
+    NULL
+    [4]=>
+    NULL
+  }
+}
+int(2)
+array(5) {
+  [0]=>
+  array(2) {
+    [0]=>
+    unicode(1) "1"
+    [1]=>
+    unicode(1) "1"
+  }
+  [1]=>
+  array(2) {
+    [0]=>
+    unicode(1) "1"
+    [1]=>
+    unicode(1) "1"
+  }
+  [2]=>
+  array(2) {
+    [0]=>
+    NULL
+    [1]=>
+    NULL
+  }
+  [3]=>
+  array(2) {
+    [0]=>
+    NULL
+    [1]=>
+    NULL
+  }
+  [4]=>
+  array(2) {
+    [0]=>
+    NULL
+    [1]=>
+    NULL
+  }
+}
+int(1)
+array(5) {
+  [0]=>
+  array(1) {
+    [0]=>
+    unicode(1) "1"
+  }
+  [1]=>
+  array(1) {
+    [0]=>
+    unicode(1) "1"
+  }
+  [2]=>
+  array(1) {
+    [0]=>
+    NULL
+  }
+  [3]=>
+  array(1) {
+    [0]=>
+    NULL
+  }
+  [4]=>
+  array(1) {
+    [0]=>
+    NULL
+  }
+}
+Done
index c590f2ee6994496652e22fdc5cf9baacede28d04..ed36dfa793ce5538fa69c2968d1788872c786773 100644 (file)
Binary files a/ext/oci8/tests/lob_020.phpt and b/ext/oci8/tests/lob_020.phpt differ
index de4539e46727598103740788e980179a793631a0..dc7d954fb6938626b2e3563bcc9c4506d42c978d 100644 (file)
@@ -47,6 +47,16 @@ for ($i = 5; $i >= 0; $i--) {
        oci_commit($c);
 }
 
+$select_sql = "SELECT blob FROM ".$schema.$table_name." FOR UPDATE";
+$s = oci_parse($c, $select_sql);
+oci_execute($s, OCI_DEFAULT);
+
+$row = oci_fetch_array($s);
+var_dump($row['BLOB']->load());
+var_dump($row['BLOB']->truncate(-1));
+var_dump($row['BLOB']->truncate(0));
+
+oci_commit($c);
 
 require dirname(__FILE__).'/drop_table.inc';
 
@@ -85,6 +95,11 @@ string(0) ""
 
 Warning: OCI-Lob::truncate(): Length must be greater than or equal to zero in %s on line %d
 bool(false)
+string(0) ""
+
+Warning: OCI-Lob::truncate(): Length must be greater than or equal to zero in %s on line %d
+bool(false)
+bool(true)
 Done
 --UEXPECTF--
 object(OCI-Lob)#%d (1) {
@@ -118,4 +133,9 @@ string(0) ""
 
 Warning: OCI-Lob::truncate(): Length must be greater than or equal to zero in %s on line %d
 bool(false)
+string(0) ""
+
+Warning: OCI-Lob::truncate(): Length must be greater than or equal to zero in %s on line %d
+bool(false)
+bool(true)
 Done
diff --git a/ext/oci8/tests/lob_033.phpt b/ext/oci8/tests/lob_033.phpt
new file mode 100644 (file)
index 0000000..5647cd9
--- /dev/null
@@ -0,0 +1,38 @@
+--TEST--
+various oci_lob_write() error messages
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+--FILE--
+<?php
+       
+require dirname(__FILE__).'/connect.inc';
+require dirname(__FILE__).'/create_table.inc';
+
+$ora_sql = "INSERT INTO
+                       ".$schema.$table_name." (id, blob)
+                      VALUES (2, empty_blob())
+                      RETURNING
+                               blob
+                      INTO :v_blob ";
+
+$statement = oci_parse($c,$ora_sql);
+$blob = oci_new_descriptor($c,OCI_D_LOB);
+
+$blob->save("");
+
+oci_bind_by_name($statement,":v_blob", $blob,-1,OCI_B_BLOB);
+oci_execute($statement, OCI_DEFAULT);
+
+var_dump($blob->save(""));
+var_dump($blob->save("data", 100));
+
+require dirname(__FILE__).'/drop_table.inc';
+
+echo "Done\n";
+
+?>
+--EXPECTF--
+Warning: OCI-Lob::save(): OCI_INVALID_HANDLE in %s on line %d
+bool(true)
+bool(true)
+Done
diff --git a/ext/oci8/tests/lob_034.phpt b/ext/oci8/tests/lob_034.phpt
new file mode 100644 (file)
index 0000000..6bf4058
--- /dev/null
@@ -0,0 +1,50 @@
+--TEST--
+lob buffering - 2
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+--FILE--
+<?php
+       
+require dirname(__FILE__).'/connect.inc';
+require dirname(__FILE__).'/create_table.inc';
+
+$ora_sql = "INSERT INTO
+                       ".$schema.$table_name." (blob)
+                      VALUES (empty_blob())
+                      RETURNING
+                               blob
+                      INTO :v_blob ";
+
+$statement = oci_parse($c,$ora_sql);
+$blob = oci_new_descriptor($c,OCI_D_LOB);
+oci_bind_by_name($statement,":v_blob", $blob,-1,OCI_B_BLOB);
+oci_execute($statement, OCI_DEFAULT);
+
+var_dump($blob->getBuffering());
+var_dump($blob->setBuffering(false));
+var_dump($blob->setBuffering(false));
+var_dump($blob->setBuffering(true));
+var_dump($blob->setBuffering(true));
+var_dump($blob->flush());
+var_dump($blob->flush(0));
+var_dump($blob->flush(-1));
+
+oci_commit($c);
+
+require dirname(__FILE__).'/drop_table.inc';
+
+echo "Done\n";
+
+?>
+--EXPECTF--
+bool(false)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+
+Warning: OCI-Lob::flush(): Invalid flag value: -1 in %s on line %d
+bool(false)
+Done
diff --git a/ext/oci8/tests/lob_035.phpt b/ext/oci8/tests/lob_035.phpt
new file mode 100644 (file)
index 0000000..2d1bfcf
--- /dev/null
@@ -0,0 +1,135 @@
+--TEST--
+oci_lob_copy() - 2 
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+--FILE--
+<?php
+       
+require dirname(__FILE__).'/connect.inc';
+require dirname(__FILE__).'/create_table.inc';
+
+$ora_sql = "INSERT INTO
+                       ".$schema.$table_name." (id, blob)
+                      VALUES (1, empty_blob())
+                      RETURNING
+                               blob
+                      INTO :v_blob ";
+
+$statement = oci_parse($c,$ora_sql);
+$blob = oci_new_descriptor($c,OCI_D_LOB);
+oci_bind_by_name($statement,":v_blob", $blob,-1,OCI_B_BLOB);
+oci_execute($statement, OCI_DEFAULT);
+
+var_dump($blob->write("some string here. string, I said"));
+oci_commit($c);
+
+$ora_sql = "INSERT INTO
+                       ".$schema.$table_name." (id, blob)
+                      VALUES (2, empty_blob())
+                      RETURNING
+                               blob
+                      INTO :v_blob ";
+
+$statement = oci_parse($c,$ora_sql);
+$blob = oci_new_descriptor($c,OCI_D_LOB);
+oci_bind_by_name($statement,":v_blob", $blob,-1,OCI_B_BLOB);
+oci_execute($statement, OCI_DEFAULT);
+
+oci_commit($c);
+
+$select_sql = "SELECT blob FROM ".$schema.$table_name." WHERE id = 1";
+$s = oci_parse($c, $select_sql);
+oci_execute($s);
+
+$row1 = oci_fetch_array($s);
+
+$select_sql = "SELECT blob FROM ".$schema.$table_name." WHERE id = 2 FOR UPDATE";
+$s = oci_parse($c, $select_sql);
+oci_execute($s, OCI_DEFAULT);
+
+$row2 = oci_fetch_array($s);
+
+$dummy = oci_new_descriptor($c, OCI_D_LOB);
+
+var_dump(oci_lob_copy($dummy, $row1[0]));
+var_dump(oci_lob_copy($row2[0], $dummy));
+
+var_dump(oci_lob_copy($row2[0], $row1[0], 0));
+var_dump(oci_lob_copy($row2[0], $row1[0], -1));
+var_dump(oci_lob_copy($row2[0], $row1[0], 100000));
+
+var_dump(oci_lob_size());
+var_dump(oci_lob_size($row2[0]));
+unset($dummy->descriptor);
+var_dump(oci_lob_size($dummy));
+
+oci_rollback($c);
+oci_rollback($c);
+oci_commit($c);
+oci_commit($c);
+
+$select_sql = "SELECT blob FROM ".$schema.$table_name." WHERE id = 2 FOR UPDATE";
+$s = oci_parse($c, $select_sql);
+oci_execute($s, OCI_DEFAULT);
+
+var_dump($row2 = oci_fetch_array($s, OCI_RETURN_LOBS));
+
+require dirname(__FILE__).'/drop_table.inc';
+
+echo "Done\n";
+
+?>
+--EXPECTF--
+int(32)
+
+Warning: oci_lob_copy(): OCI_INVALID_HANDLE in %s on line %d
+bool(false)
+
+Warning: oci_lob_copy(): OCI_INVALID_HANDLE in %s on line %d
+bool(false)
+bool(false)
+
+Warning: oci_lob_copy(): Length parameter must be greater than 0 in %s on line %d
+bool(false)
+bool(true)
+
+Warning: oci_lob_size() expects exactly 1 parameter, 0 given in %s on line %d
+NULL
+int(0)
+
+Warning: oci_lob_size(): Unable to find descriptor property in %s on line %d
+bool(false)
+array(2) {
+  [0]=>
+  string(0) ""
+  ["BLOB"]=>
+  string(0) ""
+}
+Done
+--UEXPECTF--
+int(64)
+
+Warning: oci_lob_copy(): OCI_INVALID_HANDLE in %s on line %d
+bool(false)
+
+Warning: oci_lob_copy(): OCI_INVALID_HANDLE in %s on line %d
+bool(false)
+bool(false)
+
+Warning: oci_lob_copy(): Length parameter must be greater than 0 in %s on line %d
+bool(false)
+bool(true)
+
+Warning: oci_lob_size() expects exactly 1 parameter, 0 given in %s on line %d
+NULL
+int(0)
+
+Warning: oci_lob_size(): Unable to find descriptor property in %s on line %d
+bool(false)
+array(2) {
+  [0]=>
+  string(0) ""
+  [u"BLOB"]=>
+  string(0) ""
+}
+Done
index 44bb2f60a82fd13e1a0657d17810f7c05af06a0b..c6c72678093ff000a1a2295108180ed8203240b5 100644 (file)
@@ -25,3 +25,12 @@ Warning: oci_connect(): Invalid session mode specified (-1) in %s on line %d
 
 Warning: oci_connect() expects parameter 5 to be long, string given in %s on line %d
 Done
+--UEXPECTF--
+Warning: oci_connect(): ORA-01017: invalid username/password; logon denied in %s on line %d
+
+Warning: oci_connect(): ORA-01017: invalid username/password; logon denied in %s on line %d
+
+Warning: oci_connect(): Invalid session mode specified (-1) in %s on line %d
+
+Warning: oci_connect() expects parameter 5 to be long, Unicode string given in %s on line %d
+Done