sixd Wed May 7 15:29:28 2008 UTC
Added files: (Branch: PHP_5_2)
/php-src/ext/oci8/tests bug37220.phpt bug43497_92.phpt
connect_scope1.phpt connect_scope2.phpt
connect_scope_try1.phpt
connect_scope_try2.phpt
connect_scope_try3.phpt
connect_scope_try4.phpt
connect_scope_try5.phpt
connect_scope_try6.phpt
drcp_characterset.phpt
drcp_conn_close1.phpt drcp_conn_close2.phpt
drcp_connect1.phpt drcp_functions.inc
drcp_newconnect.phpt drcp_pconn_close1.phpt
drcp_pconn_close2.phpt drcp_privileged.phpt
drcp_scope1.phpt drcp_scope2.phpt
drcp_scope3.phpt drcp_scope4.phpt
drcp_scope5.phpt pecl_bug10194_blob_64.phpt
testping.phpt
Modified files:
/php-src/ext/oci8/tests bug43497.phpt bug44113.phpt bug44206.phpt
lob_042.phpt password.phpt password_2.phpt
password_new.phpt password_old.phpt
pecl_bug10194_blob.phpt
Log:
MFH: new tests and test cleanup
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/bug43497.phpt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/oci8/tests/bug43497.phpt
diff -u php-src/ext/oci8/tests/bug43497.phpt:1.1.2.1
php-src/ext/oci8/tests/bug43497.phpt:1.1.2.2
--- php-src/ext/oci8/tests/bug43497.phpt:1.1.2.1 Tue Jan 15 20:42:13 2008
+++ php-src/ext/oci8/tests/bug43497.phpt Wed May 7 15:29:27 2008
@@ -1,7 +1,16 @@
--TEST--
Bug #43497 (OCI8 XML/getClobVal aka temporary LOBs leak UGA memory)
--SKIPIF--
-<?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?>
+<?php
+if (!extension_loaded('oci8')) die ("skip no oci8 extension");
+ob_start();
+phpinfo(INFO_MODULES);
+$phpinfo = ob_get_clean();
+$ov = preg_match('/Oracle Version => 9/', $phpinfo);
+if ($ov === 1) {
+ die ("skip expected output only valid for Oracle clients from 10g
onwards");
+}
+?>
--FILE--
<?php
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/bug44113.phpt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/oci8/tests/bug44113.phpt
diff -u php-src/ext/oci8/tests/bug44113.phpt:1.1.2.1
php-src/ext/oci8/tests/bug44113.phpt:1.1.2.2
--- php-src/ext/oci8/tests/bug44113.phpt:1.1.2.1 Fri Feb 15 23:05:19 2008
+++ php-src/ext/oci8/tests/bug44113.phpt Wed May 7 15:29:27 2008
@@ -5,7 +5,7 @@
--FILE--
<?php
-require dirname(__FILE__).'/connect.inc';
+require(dirname(__FILE__).'/connect.inc');
// Initialization
@@ -22,8 +22,7 @@
// The test can take some time to complete and can exceed PHP's test
// timout limit on slow networks.
-for ($x = 0; $x < 70000; $x++)
-{
+for ($x = 0; $x < 70000; $x++) {
if (!($var = oci_new_collection($c, 'BUG44113_LIST_T'))) {
print "Failed new collection creation on $x\n";
break;
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/bug44206.phpt?r1=1.1.4.2&r2=1.1.4.3&diff_format=u
Index: php-src/ext/oci8/tests/bug44206.phpt
diff -u php-src/ext/oci8/tests/bug44206.phpt:1.1.4.2
php-src/ext/oci8/tests/bug44206.phpt:1.1.4.3
--- php-src/ext/oci8/tests/bug44206.phpt:1.1.4.2 Mon Feb 25 23:52:10 2008
+++ php-src/ext/oci8/tests/bug44206.phpt Wed May 7 15:29:27 2008
@@ -5,25 +5,27 @@
--FILE--
<?php
-require(dirname(__FILE__).'/connect.inc');
+require dirname(__FILE__).'/connect.inc';
// Run Test
-for ($x = 0; $x < 400; $x++) {
+for ($x = 0; $x < 400; $x++)
+{
$stmt = "select cursor (select $x from dual) a,
- cursor (select $x from dual) b
- from dual";
+ cursor (select $x from dual) b
+ from dual";
$s = oci_parse($c, $stmt);
$r = oci_execute($s);
- if (!$r) {
- echo "Exiting $x\n";
- exit;
- }
- $result = oci_fetch_array($s, OCI_ASSOC);
+ if (!$r) {
+ echo "Exiting $x\n";
+ exit;
+ }
+ $mode = OCI_ASSOC | OCI_RETURN_NULLS;
+ $result = oci_fetch_array($s, $mode);
oci_execute($result['A']);
oci_execute($result['B']);
- oci_fetch_array($result['A'], OCI_ASSOC);
- oci_fetch_array($result['B'], OCI_ASSOC);
+ oci_fetch_array($result['A'], $mode);
+ oci_fetch_array($result['B'], $mode);
oci_free_statement($result['A']);
oci_free_statement($result['B']);
oci_free_statement($s);
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/lob_042.phpt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/oci8/tests/lob_042.phpt
diff -u php-src/ext/oci8/tests/lob_042.phpt:1.1.2.1
php-src/ext/oci8/tests/lob_042.phpt:1.1.2.2
--- php-src/ext/oci8/tests/lob_042.phpt:1.1.2.1 Sat Feb 16 03:01:16 2008
+++ php-src/ext/oci8/tests/lob_042.phpt Wed May 7 15:29:27 2008
@@ -5,8 +5,6 @@
--FILE--
<?php
-// test some LOB error messages
-
require(dirname(__FILE__).'/connect.inc');
require(dirname(__FILE__).'/create_table.inc');
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/password.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/oci8/tests/password.phpt
diff -u php-src/ext/oci8/tests/password.phpt:1.1.2.3
php-src/ext/oci8/tests/password.phpt:1.1.2.3.2.1
--- php-src/ext/oci8/tests/password.phpt:1.1.2.3 Tue Dec 6 19:28:25 2005
+++ php-src/ext/oci8/tests/password.phpt Wed May 7 15:29:27 2008
@@ -1,24 +1,74 @@
--TEST--
-oci_password_change()
+oci_password_change() for non-persistent connections
--SKIPIF--
-<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
+require(dirname(__FILE__)."/details.inc");
+if (empty($dbase)) die ("skip requires database connection string be set");
+if (strcasecmp($user, "system") && strcasecmp($user, "sys")) die("skip needs
to be run as a DBA user");
+?>
--FILE--
<?php
-require dirname(__FILE__)."/connect.inc";
+require(dirname(__FILE__)."/details.inc");
-$new_password = "test";
-var_dump(oci_password_change($dbase, $user, $password, $new_password));
+// Create a user we can stuff around with and not affect subsequent tests
+$c0 = oci_connect($user, $password, $dbase);
+$stmts = array(
+ "drop user testuser",
+ "begin
+ execute immediate 'create user testuser identified by testuserpwd';
+ execute immediate 'grant connect, create session to testuser';
+ end;");
+foreach ($stmts as $sql) {
+ $s = oci_parse($c0, $sql);
+ @oci_execute($s);
+}
-if (!empty($dbase)) {
- var_dump($new_c = ocilogon($user,$new_password,$dbase));
+// Connect and change the password
+$c1 = oci_connect("testuser", "testuserpwd", $dbase);
+var_dump($c1);
+$rn1 = (int)$c1;
+
+oci_password_change($c1, "testuser", "testuserpwd", "testuserpwd2");
+
+// Second connect should return a new resource because the hash string will be
different from $c1
+$c2 = oci_connect("testuser", "testuserpwd2", $dbase);
+var_dump($c2);
+$rn2 = (int)$c2;
+
+// Despite using the old password this connect should succeed and return the
original resource
+$c3 = oci_connect("testuser", "testuserpwd", $dbase);
+var_dump($c3);
+$rn3 = (int)$c3;
+
+// Connections should differ
+if ($rn1 == $rn2) {
+ echo "First and second connections share a resource: Not OK\n";
+ var_dump($c1);
}
else {
- var_dump($new_c = ocilogon($user,$new_password));
+ echo "First and second connections are different: OK\n";
}
-var_dump(oci_password_change($dbase, $user, $new_password, $password));
+// Connections should be the same
+if ($rn1 == $rn3) {
+ echo "First and third connections share a resource: OK\n";
+}
+else {
+ echo "First and third connections are different: Not OK\n";
+ var_dump($c1);
+ var_dump($c2);
+}
+// Clean up
+oci_close($c1);
+oci_close($c2);
+oci_close($c3);
+
+// Clean up
+$s = oci_parse($c0, "drop user cascade testuser");
[EMAIL PROTECTED]($s);
echo "Done\n";
@@ -27,4 +77,6 @@
resource(%d) of type (oci8 connection)
resource(%d) of type (oci8 connection)
resource(%d) of type (oci8 connection)
+First and second connections are different: OK
+First and third connections share a resource: OK
Done
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/password_2.phpt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/oci8/tests/password_2.phpt
diff -u php-src/ext/oci8/tests/password_2.phpt:1.1.2.1
php-src/ext/oci8/tests/password_2.phpt:1.1.2.2
--- php-src/ext/oci8/tests/password_2.phpt:1.1.2.1 Fri Aug 3 01:55:15 2007
+++ php-src/ext/oci8/tests/password_2.phpt Wed May 7 15:29:27 2008
@@ -4,6 +4,7 @@
<?php
if (!extension_loaded('oci8')) die("skip no oci8 extension");
require(dirname(__FILE__)."/details.inc");
+if (empty($dbase)) die ("skip requires database connection string be set");
if (strcasecmp($user, "system") && strcasecmp($user, "sys")) die("skip needs
to be run as a DBA user");
?>
--FILE--
@@ -27,34 +28,19 @@
// Connect (persistent) and change the password
$c1 = oci_pconnect("testuser", "testuserpwd", $dbase);
var_dump($c1);
-
-ob_start();
-var_dump($c1);
-$r1 = ob_get_clean();
-preg_match("/resource\(([0-9])\) of.*/", $r1, $matches);
-$rn1 = $matches[1]; /* resource number */
+$rn1 = (int)$c1;
oci_password_change($c1, "testuser", "testuserpwd", "testuserpwd2");
// Second connect should return a new resource because the hash string will be
different from $c1
$c2 = oci_pconnect("testuser", "testuserpwd2", $dbase);
var_dump($c2);
-
-ob_start();
-var_dump($c2);
-$r2 = ob_get_clean();
-preg_match("/resource\(([0-9])\) of.*/", $r2, $matches);
-$rn2 = $matches[1]; /* resource number */
+$rn2 = (int)$c2;
// Despite using the old password this connect should succeed and return the
original resource
$c3 = oci_pconnect("testuser", "testuserpwd", $dbase);
var_dump($c3);
-
-ob_start();
-var_dump($c3);
-$r3 = ob_get_clean();
-preg_match("/resource\(([0-9])\) of.*/", $r3, $matches);
-$rn3 = $matches[1]; /* resource number */
+$rn3 = (int)$c3;
// Connections should differ
if ($rn1 == $rn2) {
@@ -76,10 +62,12 @@
}
// Clean up
-// Can't drop a user that is connected and can't close a persistent
-// connection. So this test will leave the dummy user around, but the
-// schema will not be usable..
-$s = oci_parse($c0, "revoke connect, create session from testuser");
+oci_close($c1);
+oci_close($c2);
+oci_close($c3);
+
+// Clean up
+$s = oci_parse($c0, "drop user cascade testuser");
@oci_execute($s);
echo "Done\n";
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/password_new.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/oci8/tests/password_new.phpt
diff -u php-src/ext/oci8/tests/password_new.phpt:1.1.2.3
php-src/ext/oci8/tests/password_new.phpt:1.1.2.3.2.1
--- php-src/ext/oci8/tests/password_new.phpt:1.1.2.3 Tue Dec 6 19:28:25 2005
+++ php-src/ext/oci8/tests/password_new.phpt Wed May 7 15:29:27 2008
@@ -1,7 +1,25 @@
--TEST--
oci_password_change()
--SKIPIF--
-<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
+require dirname(__FILE__)."/connect.inc";
+if (empty($dbase)) die ("skip requires database connection string be set");
+
+// This test is known to fail with Oracle 10g client libraries
+// connecting to Oracle Database 11.1.0.6 (Oracle bug 6277160)
+$sv = oci_server_version($c);
+$sv = preg_match('/11.1/', $sv, $matches);
+if ($sv === 1) {
+ ob_start();
+ phpinfo(INFO_MODULES);
+ $phpinfo = ob_get_clean();
+ $iv = preg_match('/Oracle .*Version => 10/', $phpinfo);
+ if ($iv === 1) {
+ die ("skip test known to fail using Oracle 10gR2 client libs
connecting to Oracle 11.1 (6277160)");
+ }
+}
+?>
--FILE--
<?php
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/password_old.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/oci8/tests/password_old.phpt
diff -u php-src/ext/oci8/tests/password_old.phpt:1.1.2.3
php-src/ext/oci8/tests/password_old.phpt:1.1.2.3.2.1
--- php-src/ext/oci8/tests/password_old.phpt:1.1.2.3 Tue Dec 6 19:28:25 2005
+++ php-src/ext/oci8/tests/password_old.phpt Wed May 7 15:29:27 2008
@@ -1,14 +1,32 @@
--TEST--
ocipasswordchange()
--SKIPIF--
-<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
+require dirname(__FILE__)."/connect.inc";
+if (empty($dbase)) die ("skip requires database connection string be set");
+
+// This test is known to fail with Oracle 10g client libraries
+// connecting to Oracle Database 11.1.0.6 (Oracle bug 6277160)
+$sv = oci_server_version($c);
+$sv = preg_match('/11.1/', $sv, $matches);
+if ($sv === 1) {
+ ob_start();
+ phpinfo(INFO_MODULES);
+ $phpinfo = ob_get_clean();
+ $iv = preg_match('/Oracle .*Version => 10/', $phpinfo);
+ if ($iv === 1) {
+ die ("skip test known to fail using Oracle 10gR2 client libs
connecting to Oracle 11.1 (6277160)");
+ }
+}
+?>
--FILE--
<?php
require dirname(__FILE__)."/connect.inc";
$new_password = "test";
-var_dump(ocipasswordchange($c, $user, $password, $new_password));
+var_dump(ocipasswordchange($dbase, $user, $password, $new_password));
if (!empty($dbase)) {
var_dump($new_c = ocilogon($user,$new_password,$dbase));
@@ -17,14 +35,14 @@
var_dump($new_c = ocilogon($user,$new_password));
}
-var_dump(ocipasswordchange($new_c, $user, $new_password, $password));
+var_dump(ocipasswordchange($dbase, $user, $new_password, $password));
echo "Done\n";
?>
--EXPECTF--
-bool(true)
resource(%d) of type (oci8 connection)
-bool(true)
+resource(%d) of type (oci8 connection)
+resource(%d) of type (oci8 connection)
Done
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/pecl_bug10194_blob.phpt?r1=1.1.2.3&r2=1.1.2.4&diff_format=u
Index: php-src/ext/oci8/tests/pecl_bug10194_blob.phpt
diff -u php-src/ext/oci8/tests/pecl_bug10194_blob.phpt:1.1.2.3
php-src/ext/oci8/tests/pecl_bug10194_blob.phpt:1.1.2.4
--- php-src/ext/oci8/tests/pecl_bug10194_blob.phpt:1.1.2.3 Mon May 7
12:09:14 2007
+++ php-src/ext/oci8/tests/pecl_bug10194_blob.phpt Wed May 7 15:29:27 2008
@@ -1,19 +1,22 @@
--TEST--
PECL Bug #10194 (segfault in Instant Client when memory_limit is reached
inside the callback)
--SKIPIF--
-<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
+if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platforms only");
+?>
--INI--
-memory_limit=10M
+memory_limit=3M
--FILE--
<?php
+
+// This test is dependent on the behavior of the memory manager
require dirname(__FILE__).'/connect.inc';
require dirname(__FILE__).'/create_table.inc';
-$ora_sql = "INSERT INTO
- ".$schema.$table_name." (blob)
- VALUES (empty_blob())
- ";
+$ora_sql = "INSERT INTO ".$schema.$table_name." (blob)
+ VALUES (empty_blob())";
$statement = oci_parse($c,$ora_sql);
oci_execute($statement);
@@ -32,10 +35,12 @@
oci_commit($c);
-$ora_sql = "SELECT blob FROM ".$schema.$table_name."";
+$ora_sql = "SELECT blob FROM ".$schema.$table_name;
$statement = oci_parse($c,$ora_sql);
oci_execute($statement);
+echo "Before load()\n";
+
$row = oci_fetch_assoc($statement);
var_dump(strlen($row['BLOB']->load())); /* here it should fail */
@@ -44,4 +49,6 @@
echo "Done\n";
?>
--EXPECTF--
+Before load()
+
Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d
bytes) in %s on line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/bug37220.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/bug37220.phpt
+++ php-src/ext/oci8/tests/bug37220.phpt
--TEST--
Bug #37220 (LOB Type mismatch when using windows & oci8.dll)
--SKIPIF--
<?php if (!extension_loaded("oci8")) print "skip"; ?>
--FILE--
<?php
require dirname(__FILE__).'/connect.inc';
// Initialization
$stmtarray = array(
"create table bug37220_tab( mycolumn xmltype not null)",
"insert into bug37220_tab values(xmltype('<THETAG
myID=\"1234\"></THETAG>'))"
);
foreach ($stmtarray as $stmt) {
$s = oci_parse($c, $stmt);
@oci_execute($s);
}
// Now let's update the row where myId = 1234 and change the tag
// 'THETAG' to 'MYTAG' (mycolumn is an XMLTYPE datatype and
// bug37220_tab a normal Oracle table)
$query = "UPDATE bug37220_tab
SET bug37220_tab.mycolumn =
updateXML(bug37220_tab.mycolumn,'/THETAG',xmltype.createXML(:data))
WHERE existsNode(bug37220_tab.mycolumn,'/[EMAIL
PROTECTED]"1234\"]') = 1";
$stmt = oci_parse ($c, $query);
$clob = oci_new_descriptor($c, OCI_D_LOB);
oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
$clob->writetemporary("<MYTAG/>", OCI_TEMP_CLOB);
$success = oci_execute($stmt, OCI_COMMIT_ON_SUCCESS);
oci_free_statement($stmt);
$clob->close();
// Query back the change
$query = "select * from bug37220_tab";
$stmt = oci_parse ($c, $query);
oci_execute($stmt);
while ($row = oci_fetch_array($stmt, OCI_ASSOC+OCI_RETURN_NULLS)) {
foreach ($row as $item) {
echo $item."\n";
}
echo "\n";
}
// Cleanup
$stmtarray = array(
"drop table bug37220_tab"
);
foreach ($stmtarray as $stmt) {
$s = oci_parse($c, $stmt);
oci_execute($s);
}
echo "Done\n";
?>
--EXPECT--
<MYTAG/>
Done
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/bug43497_92.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/bug43497_92.phpt
+++ php-src/ext/oci8/tests/bug43497_92.phpt
--TEST--
Bug #43497 (OCI8 XML/getClobVal aka temporary LOBs leak UGA memory)
--SKIPIF--
<?php
if (!extension_loaded('oci8')) die ("skip no oci8 extension");
ob_start();
phpinfo(INFO_MODULES);
$phpinfo = ob_get_clean();
$ov = preg_match('/Oracle Version => 9.2/', $phpinfo);
if ($ov !== 1) {
die ("skip expected output only valid for Oracle 9.2 clients");
}
?>
--FILE--
<?php
require dirname(__FILE__).'/connect.inc';
function sessionid($c) // determines and returns current session ID
{
$query = "select sid from v\$session where audsid = userenv('sessionid')";
$stmt = oci_parse($c, $query);
if (oci_execute($stmt, OCI_DEFAULT)) {
$row = oci_fetch($stmt);
return oci_result($stmt, 1);
}
return null;
}
function templobs($c, $sid) // returns number of temporary LOBs
{
$query = "select abstract_lobs from v\$temporary_lobs where sid = " . $sid;
$stmt = oci_parse($c, $query);
if (oci_execute($stmt, OCI_DEFAULT)) {
$row = oci_fetch($stmt);
$val = oci_result($stmt, 1);
oci_free_statement($stmt);
return $val;
}
return null;
}
// Read all XML data using explicit LOB locator
function readxmltab_ex($c)
{
$stmt = oci_parse($c, "select extract(xml, '/').getclobval() from
bug43497_tab");
$cntchk = 0;
if (oci_execute($stmt)) {
while ($result = oci_fetch_array($stmt, OCI_NUM)) {
$result[0]->free(); // cleanup properly
++$cntchk;
}
}
echo "Loop count check = $cntchk\n";
}
// Read all XML data using explicit LOB locator but without freeing the temp
lobs
function readxmltab_ex_nofree($c)
{
$stmt = oci_parse($c, "select extract(xml, '/').getclobval() from
bug43497_tab");
$cntchk = 0;
if (oci_execute($stmt)) {
while ($result = oci_fetch_array($stmt, OCI_NUM)) {
++$cntchk;
}
}
echo "Loop count check = $cntchk\n";
}
// Read all XML data using implicit LOB locator
function readxmltab_im($c)
{
$stmt = oci_parse($c, "select extract(xml, '/').getclobval() from
bug43497_tab");
$cntchk = 0;
if (oci_execute($stmt)) {
while ($result = oci_fetch_array($stmt,
OCI_NUM+OCI_RETURN_LOBS)) {
++$cntchk;
}
}
echo "Loop count check = $cntchk\n";
}
function createxmltab($c) // create table w/ field of XML type
{
@dropxmltab($c);
$stmt = oci_parse($c, "create table bug43497_tab (id number primary key,
xml xmltype)");
oci_execute($stmt);
}
function dropxmltab($c) // delete table
{
$stmt = oci_parse($c, "drop table bug43497_tab");
oci_execute($stmt);
}
function fillxmltab($c)
{
for ($id = 1; $id <= 100; $id++) {
// create an XML element string with random data
$s = "<data>";
for ($j = 0; $j < 128; $j++) {
$s .= rand();
}
$s .= "</data>\n";
for ($j = 0; $j < 4; $j++) {
$s .= $s;
}
$data = "<?xml version=\"1.0\"?><records>" . $s . "</records>";
// insert XML data into database
$stmt = oci_parse($c, "insert into bug43497_tab(id, xml) values
(:id, sys.xmltype.createxml(:xml))");
oci_bind_by_name($stmt, ":id", $id);
$clob = oci_new_descriptor($c, OCI_D_LOB);
oci_bind_by_name($stmt, ":xml", $clob, -1, OCI_B_CLOB);
$clob->writetemporary($data);
oci_execute($stmt);
$clob->close();
$clob->free();
}
}
// Initialize
createxmltab($c);
fillxmltab($c);
// Run Test
$sid = sessionid($c);
echo "Explicit LOB use\n";
for ($i = 1; $i <= 10; $i++) {
echo "\nRun = " . $i . "\n";
echo "Temporary LOBs = " . templobs($c, $sid) . "\n";
readxmltab_ex($c);
}
echo "\nImplicit LOB use\n";
for ($i = 1; $i <= 10; $i++) {
echo "\nRun = " . $i . "\n";
echo "Temporary LOBs = " . templobs($c, $sid) . "\n";
readxmltab_im($c);
}
echo "\nExplicit LOB with no free (i.e. a temp lob leak)\n";
for ($i = 1; $i <= 10; $i++) {
echo "\nRun = " . $i . "\n";
echo "Temporary LOBs = " . templobs($c, $sid) . "\n";
readxmltab_ex_nofree($c);
}
// Cleanup
dropxmltab($c);
oci_close($c);
echo "Done\n";
?>
--EXPECT--
Explicit LOB use
Run = 1
Temporary LOBs = 0
Loop count check = 100
Run = 2
Temporary LOBs = 100
Loop count check = 100
Run = 3
Temporary LOBs = 200
Loop count check = 100
Run = 4
Temporary LOBs = 300
Loop count check = 100
Run = 5
Temporary LOBs = 400
Loop count check = 100
Run = 6
Temporary LOBs = 500
Loop count check = 100
Run = 7
Temporary LOBs = 600
Loop count check = 100
Run = 8
Temporary LOBs = 700
Loop count check = 100
Run = 9
Temporary LOBs = 800
Loop count check = 100
Run = 10
Temporary LOBs = 900
Loop count check = 100
Implicit LOB use
Run = 1
Temporary LOBs = 1000
Loop count check = 100
Run = 2
Temporary LOBs = 1100
Loop count check = 100
Run = 3
Temporary LOBs = 1200
Loop count check = 100
Run = 4
Temporary LOBs = 1300
Loop count check = 100
Run = 5
Temporary LOBs = 1400
Loop count check = 100
Run = 6
Temporary LOBs = 1500
Loop count check = 100
Run = 7
Temporary LOBs = 1600
Loop count check = 100
Run = 8
Temporary LOBs = 1700
Loop count check = 100
Run = 9
Temporary LOBs = 1800
Loop count check = 100
Run = 10
Temporary LOBs = 1900
Loop count check = 100
Explicit LOB with no free (i.e. a temp lob leak)
Run = 1
Temporary LOBs = 2000
Loop count check = 100
Run = 2
Temporary LOBs = 2100
Loop count check = 100
Run = 3
Temporary LOBs = 2200
Loop count check = 100
Run = 4
Temporary LOBs = 2300
Loop count check = 100
Run = 5
Temporary LOBs = 2400
Loop count check = 100
Run = 6
Temporary LOBs = 2500
Loop count check = 100
Run = 7
Temporary LOBs = 2600
Loop count check = 100
Run = 8
Temporary LOBs = 2700
Loop count check = 100
Run = 9
Temporary LOBs = 2800
Loop count check = 100
Run = 10
Temporary LOBs = 2900
Loop count check = 100
Done
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/connect_scope1.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/connect_scope1.phpt
+++ php-src/ext/oci8/tests/connect_scope1.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/connect_scope2.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/connect_scope2.phpt
+++ php-src/ext/oci8/tests/connect_scope2.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/connect_scope_try1.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/connect_scope_try1.phpt
+++ php-src/ext/oci8/tests/connect_scope_try1.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/connect_scope_try2.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/connect_scope_try2.phpt
+++ php-src/ext/oci8/tests/connect_scope_try2.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/connect_scope_try3.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/connect_scope_try3.phpt
+++ php-src/ext/oci8/tests/connect_scope_try3.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/connect_scope_try4.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/connect_scope_try4.phpt
+++ php-src/ext/oci8/tests/connect_scope_try4.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/connect_scope_try5.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/connect_scope_try5.phpt
+++ php-src/ext/oci8/tests/connect_scope_try5.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/connect_scope_try6.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/connect_scope_try6.phpt
+++ php-src/ext/oci8/tests/connect_scope_try6.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_characterset.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_characterset.phpt
+++ php-src/ext/oci8/tests/drcp_characterset.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_conn_close1.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_conn_close1.phpt
+++ php-src/ext/oci8/tests/drcp_conn_close1.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_conn_close2.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_conn_close2.phpt
+++ php-src/ext/oci8/tests/drcp_conn_close2.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_connect1.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_connect1.phpt
+++ php-src/ext/oci8/tests/drcp_connect1.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_functions.inc?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_functions.inc
+++ php-src/ext/oci8/tests/drcp_functions.inc
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_newconnect.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_newconnect.phpt
+++ php-src/ext/oci8/tests/drcp_newconnect.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_pconn_close1.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_pconn_close1.phpt
+++ php-src/ext/oci8/tests/drcp_pconn_close1.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_pconn_close2.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_pconn_close2.phpt
+++ php-src/ext/oci8/tests/drcp_pconn_close2.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_privileged.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_privileged.phpt
+++ php-src/ext/oci8/tests/drcp_privileged.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_scope1.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_scope1.phpt
+++ php-src/ext/oci8/tests/drcp_scope1.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_scope2.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_scope2.phpt
+++ php-src/ext/oci8/tests/drcp_scope2.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_scope3.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_scope3.phpt
+++ php-src/ext/oci8/tests/drcp_scope3.phpt
--TEST--
DRCP: oci_pconnect() with scope end when oci8.old_oci_close_semantics ON
--SKIPIF--
<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
--INI--
oci8.old_oci_close_semantics=1
--FILE--
<?php
require dirname(__FILE__)."/drcp_functions.inc";
require dirname(__FILE__)."/details.inc";
// The test opens a connection within function1 and updates a table
// (without committing). Another connection is opened from function
// 2, and the table queried. When function1 ends, the connection from
// function1 is not closed, so the updated value will be seen in
// function2. Also the table can't be dropped because an uncommitted
// transaction exists.
// Create the table
$c = oci_new_connect($user,$password,$dbase);
@drcp_drop_table($c);
drcp_create_table($c);
echo "This is with a OCI_PCONNECT\n";
function1($user,$password,$dbase);
// Should return the OLD value
function2($user,$password,$dbase);
// This is the first scope for the script
function function1($user,$password,$dbase)
{
var_dump($c = oci_pconnect($user,$password,$dbase));
drcp_update_table($c);
}
// This is the second scope
function function2($user,$password,$dbase)
{
var_dump($c = oci_pconnect($user,$password,$dbase));
drcp_select_value($c);
}
drcp_drop_table($c);
oci_close($c);
echo "Done\n";
?>
--EXPECTF--
This is with a OCI_PCONNECT
resource(%d) of type (oci8 persistent connection)
Update done-- DEPT value has been set to NEWDEPT
resource(%d) of type (oci8 persistent connection)
The value of DEPT for id 105 is NEWDEPT
Warning: oci_execute(): ORA-00054: %s
Done
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_scope4.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_scope4.phpt
+++ php-src/ext/oci8/tests/drcp_scope4.phpt
--TEST--
DRCP: oci_pconnect() with scope end when oci8.old_oci_close_semantics OFF
--SKIPIF--
<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
--INI--
oci8.old_oci_close_semantics=0
--FILE--
<?php
require dirname(__FILE__)."/drcp_functions.inc";
require dirname(__FILE__)."/details.inc";
// The test opens a connection within function1 and updates a table
// (without committing). Another connection is opened from function
// 2, and the table queried. When function1 ends, the txn is rolled
// back and hence the updated value will not be reflected in function2
// Create the table
$c = oci_new_connect($user,$password,$dbase);
@drcp_drop_table($c);
drcp_create_table($c);
echo "This is with a OCI_PCONNECT\n";
function1($user,$password,$dbase);
// Should return the OLD value
function2($user,$password,$dbase);
// This is the first scope for the script
function function1($user,$password,$dbase)
{
var_dump($c = oci_pconnect($user,$password,$dbase));
drcp_update_table($c);
}
// This is the second scope
function function2($user,$password,$dbase)
{
var_dump($c = oci_pconnect($user,$password,$dbase));
drcp_select_value($c);
}
drcp_drop_table($c);
oci_close($c);
echo "Done\n";
?>
--EXPECTF--
This is with a OCI_PCONNECT
resource(%d) of type (oci8 persistent connection)
Update done-- DEPT value has been set to NEWDEPT
resource(%d) of type (oci8 persistent connection)
The value of DEPT for id 105 is HR
Done
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/drcp_scope5.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/drcp_scope5.phpt
+++ php-src/ext/oci8/tests/drcp_scope5.phpt
--TEST--
DRCP: oci_pconnect() with scope end when oci8.old_oci_close_semantics ON
--SKIPIF--
<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
--INI--
oci8.old_oci_close_semantics=1
--FILE--
<?php
require dirname(__FILE__)."/drcp_functions.inc";
require dirname(__FILE__)."/details.inc";
// Similar to drcp_scope3.phpt but does a commit before end of
// function2, allowing the table to be dropped cleanly at the end.
// The test opens a connection within function1 and updates a table
// (without committing). Another connection is opened from function
// 2, and the table queried. When function1 ends, the connection from
// function1 is not closed, so the updated value will be seen in
// function2. Also the table can't be dropped because an uncommitted
// transaction exists.
// Create the table
$c = oci_new_connect($user,$password,$dbase);
@drcp_drop_table($c);
drcp_create_table($c);
echo "This is with a OCI_PCONNECT\n";
function1($user,$password,$dbase);
// Should return the OLD value
function2($user,$password,$dbase);
// This is the first scope for the script
function function1($user,$password,$dbase)
{
var_dump($c = oci_pconnect($user,$password,$dbase));
drcp_update_table($c);
}
// This is the second scope
function function2($user,$password,$dbase)
{
var_dump($c = oci_pconnect($user,$password,$dbase));
drcp_select_value($c);
oci_commit($c);
}
drcp_drop_table($c);
oci_close($c);
echo "Done\n";
?>
--EXPECTF--
This is with a OCI_PCONNECT
resource(%d) of type (oci8 persistent connection)
Update done-- DEPT value has been set to NEWDEPT
resource(%d) of type (oci8 persistent connection)
The value of DEPT for id 105 is NEWDEPT
Done
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/pecl_bug10194_blob_64.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/pecl_bug10194_blob_64.phpt
+++ php-src/ext/oci8/tests/pecl_bug10194_blob_64.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/testping.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/testping.phpt
+++ php-src/ext/oci8/tests/testping.phpt
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php