]> granicus.if.org Git - php/commitdiff
Test portability and coverage changes
authorChristopher Jones <sixd@php.net>
Mon, 12 Mar 2012 18:08:34 +0000 (18:08 +0000)
committerChristopher Jones <sixd@php.net>
Mon, 12 Mar 2012 18:08:34 +0000 (18:08 +0000)
ext/oci8/tests/array_bind_bdouble.phpt
ext/oci8/tests/array_bind_bfloat.phpt
ext/oci8/tests/bind_raw_2.phpt [new file with mode: 0644]
ext/oci8/tests/bug43497_92.phpt
ext/oci8/tests/drcp_privileged.phpt

index 1bb95b236534020e6185545c95beecdcdfcf6999..fb173654bff3594ebb9786133da28617dc99dda6 100644 (file)
@@ -4,6 +4,7 @@ Unsupported type: oci_bind_array_by_name() and SQLT_BDOUBLE
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
+if (!defined('SQLT_BDOUBLE')) die('skip SQLT_BDOUBLE type not available on older Oracle clients');
 ?> 
 --FILE--
 <?php
index 0b8fad6e60955830b6d8b96be85363623a3a2a14..fdd43958cd71ff193f4c38502a17e280a4ee75e3 100644 (file)
@@ -4,6 +4,7 @@ Unsupported type: oci_bind_array_by_name() and SQLT_BFLOAT
 <?php
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
+if (!defined('SQLT_BFLOAT')) die('skip SQLT_BFLOAT type not available on older Oracle clients');
 ?> 
 --FILE--
 <?php
diff --git a/ext/oci8/tests/bind_raw_2.phpt b/ext/oci8/tests/bind_raw_2.phpt
new file mode 100644 (file)
index 0000000..035c184
--- /dev/null
@@ -0,0 +1,42 @@
+--TEST--
+bind RAW field with OCI_B_BIN
+--SKIPIF--
+<?php
+$target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
+require(dirname(__FILE__).'/skipif.inc');
+?> 
+--FILE--
+<?php
+
+require dirname(__FILE__)."/connect.inc";
+
+$stmt = oci_parse($c, "create table phptestrawtable( id number(10), fileimage raw(1000))");
+oci_execute($stmt);
+
+$stmt = oci_parse ($c, "insert into phptestrawtable (id, fileimage) values (:id, :fileimage)");
+$i=1;
+$fileimage = file_get_contents( dirname(__FILE__)."/test.gif");
+$fileimage = substr($fileimage, 0, 300);
+
+oci_bind_by_name( $stmt, ":id", $i, -1);
+oci_bind_by_name( $stmt, ":fileimage", $fileimage, -1, OCI_B_BIN);
+oci_execute($stmt, OCI_DEFAULT);
+oci_commit($c);
+
+$stmt = oci_parse($c, "SELECT fileimage FROM phptestrawtable");
+oci_execute($stmt);
+
+$row = oci_fetch_row($stmt);
+var_dump(md5($row[0]));
+var_dump(strlen($row[0]));
+
+$stmt = oci_parse($c, "drop table phptestrawtable");
+oci_execute($stmt);
+
+echo "Done\n";
+
+?>
+--EXPECT--
+string(32) "88b274d7a257ac6f70435b83abd4e26e"
+int(300)
+Done
index d4201257c43bd5d6bf946812a1f80ad72d1a9335..cc2a96318c53d446a20ea7da6e199703ad6ea74a 100644 (file)
@@ -5,8 +5,12 @@ Bug #43497 (OCI8 XML/getClobVal aka temporary LOBs leak UGA memory)
 $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
 require(dirname(__FILE__).'/skipif.inc');
 if (getenv('SKIP_SLOW_TESTS')) die('skip slow tests excluded by request');
-if (preg_match('/Unknown/', oci_client_version()) != 1) {
-    die("skip expected output only valid with Oracle 9gR2 clients");
+ob_start();
+phpinfo(INFO_MODULES);
+$phpinfo = ob_get_clean();
+$iv = preg_match('/Oracle .*Version => (9\.2)/', $phpinfo);
+if ($iv != 1) {
+    die ("skip tests a feature that works only with Oracle 9iR2 client");
 }
 ?>
 --FILE--
index 45b5ee4bdb642ef697fd9a54eef763b85a625efe..da8702e3c920418b68cee2be2871916243f03401 100644 (file)
@@ -3,11 +3,14 @@ DRCP: privileged connect
 --SKIPIF--
 <?php
 if (!extension_loaded('oci8')) die("skip no oci8 extension");
-if (strcasecmp($user, "system") && strcasecmp($user, "sys")) die("skip needs to be run as a DBA user");
 require(dirname(__FILE__)."/details.inc");
+if (strcasecmp($user, "system") && strcasecmp($user, "sys")) die("skip needs to be run as a DBA user");
+ob_start();
+phpinfo(INFO_MODULES);
+$phpinfo = ob_get_clean();
 if (preg_match('/Compile-time ORACLE_HOME/', $phpinfo) !== 1) {
     // Assume building PHP with an ORACLE_HOME means the tested DB is on the same machine as PHP
-    die("skip this test is unlikely to work with remote Oracle - unless an Oracle password file has been created");
+    die("skip this test is unlikely to work with a remote database - unless an Oracle password file has been created");
 }
 ?>
 --INI--