]> granicus.if.org Git - php/commitdiff
Test updates
authorChristopher Jones <sixd@php.net>
Mon, 7 Apr 2008 21:55:53 +0000 (21:55 +0000)
committerChristopher Jones <sixd@php.net>
Mon, 7 Apr 2008 21:55:53 +0000 (21:55 +0000)
ext/oci8/tests/pecl_bug10194_blob.phpt
ext/oci8/tests/pecl_bug10194_blob_64.phpt [new file with mode: 0644]
ext/oci8/tests/testping.phpt [new file with mode: 0644]

index 05c653bd0c0cb60cb780bc55430638a94dd21745..092f7d085b1489b6bb08957c02abd083f2fe5bd8 100644 (file)
@@ -1,7 +1,10 @@
 --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 platform only");
+?>
 --INI--
 memory_limit=3M
 --FILE--
diff --git a/ext/oci8/tests/pecl_bug10194_blob_64.phpt b/ext/oci8/tests/pecl_bug10194_blob_64.phpt
new file mode 100644 (file)
index 0000000..9b98989
--- /dev/null
@@ -0,0 +1,54 @@
+--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"); 
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--INI--
+memory_limit=6M
+--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())";
+
+$statement = oci_parse($c,$ora_sql);
+oci_execute($statement);
+
+$ora_sql = "SELECT blob FROM ".$schema.$table_name." FOR UPDATE";
+$statement = oci_parse($c,$ora_sql);
+oci_execute($statement, OCI_DEFAULT);
+
+$row = oci_fetch_assoc($statement);
+
+$string = str_repeat("test", 32768*4*4);
+
+for ($i = 0; $i < 8; $i++) {
+    $row['BLOB']->write($string);
+}
+
+oci_commit($c);
+
+$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 */
+
+require dirname(__FILE__).'/drop_table.inc';
+
+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
diff --git a/ext/oci8/tests/testping.phpt b/ext/oci8/tests/testping.phpt
new file mode 100644 (file)
index 0000000..1556d81
--- /dev/null
@@ -0,0 +1,25 @@
+--TEST--
+Exercise OCIPing functionality on reconnect (code coverage test)
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?>
+--INI--
+oci8.ping_interval=0
+--FILE--
+<?php
+
+require(__DIR__.'/details.inc');
+
+for ($i = 0; $i < 2; $i++) {
+       if (!empty($dbase)) {
+               $c = oci_pconnect($user,$password,$dbase);
+       }
+       else {
+               $c = oci_pconnect($user,$password);
+       }
+}
+
+echo "Done\n";
+
+?>
+--EXPECTF--
+Done