diff options
author | Christopher Jones <sixd@php.net> | 2008-05-13 00:05:09 +0000 |
---|---|---|
committer | Christopher Jones <sixd@php.net> | 2008-05-13 00:05:09 +0000 |
commit | 4e12fa4a25a42b4a8da39c1c9b8849f15193bc39 (patch) | |
tree | 6260c8c6824f477652ebab4684e39473d252c86e /ext/oci8 | |
parent | 16b4d8e0e1108564fa042520171d9091af708d83 (diff) | |
download | php-git-4e12fa4a25a42b4a8da39c1c9b8849f15193bc39.tar.gz |
MFH: New/updated tests
Diffstat (limited to 'ext/oci8')
-rw-r--r-- | ext/oci8/tests/connect_scope1.phpt | 93 | ||||
-rw-r--r-- | ext/oci8/tests/connect_scope2.phpt | 93 | ||||
-rw-r--r-- | ext/oci8/tests/connect_scope_try1.phpt | 100 | ||||
-rw-r--r-- | ext/oci8/tests/connect_scope_try2.phpt | 100 | ||||
-rw-r--r-- | ext/oci8/tests/connect_scope_try3.phpt | 100 | ||||
-rw-r--r-- | ext/oci8/tests/connect_scope_try4.phpt | 100 | ||||
-rw-r--r-- | ext/oci8/tests/connect_scope_try5.phpt | 100 | ||||
-rw-r--r-- | ext/oci8/tests/connect_scope_try6.phpt | 100 | ||||
-rw-r--r-- | ext/oci8/tests/drcp_scope4.phpt | 13 | ||||
-rw-r--r-- | ext/oci8/tests/minfo.phpt | 19 |
10 files changed, 814 insertions, 4 deletions
diff --git a/ext/oci8/tests/connect_scope1.phpt b/ext/oci8/tests/connect_scope1.phpt new file mode 100644 index 0000000000..d6d16f17ee --- /dev/null +++ b/ext/oci8/tests/connect_scope1.phpt @@ -0,0 +1,93 @@ +--TEST-- +Test oci_connect end-of-scope when statement returned +--SKIPIF-- +<?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?> +--FILE-- +<?php + +require(dirname(__FILE__).'/details.inc'); + +// Initialization + +$stmtarray = array( + "drop table connect_scope1_tab", + "create table connect_scope1_tab (c1 number)", +); + +if (!empty($dbase)) + $c1 = oci_new_connect($user,$password,$dbase); +else + $c1 = oci_new_connect($user,$password); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + @oci_execute($s1); +} + +// Run Test + +echo "Test 1 - oci_connect\n"; + +function f() +{ + global $user, $password, $dbase; + + if (!empty($dbase)) + $c = oci_connect($user,$password,$dbase); + else + $c = oci_connect($user,$password); + $s = oci_parse($c, "insert into connect_scope1_tab values (1)"); + oci_execute($s, OCI_DEFAULT); // no commit + return($s); // this keeps the connection refcount positive so the connection isn't closed +} + +$s2 = f(); + +// Check nothing committed yet + +$s1 = oci_parse($c1, "select * from connect_scope1_tab"); +oci_execute($s1, OCI_DEFAULT); +oci_fetch_all($s1, $r); +var_dump($r); + +// insert 2nd row on returned statement, committing both rows +oci_execute($s2); + +// Verify data was committed + +$s1 = oci_parse($c1, "select * from connect_scope1_tab"); +oci_execute($s1); +oci_fetch_all($s1, $r); +var_dump($r); + +// Cleanup + +$stmtarray = array( + "drop table connect_scope1_tab" +); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + oci_execute($s1); +} + +echo "Done\n"; + +?> +--EXPECTF-- +Test 1 - oci_connect +array(1) { + ["C1"]=> + array(0) { + } +} +array(1) { + ["C1"]=> + array(2) { + [0]=> + string(1) "1" + [1]=> + string(1) "1" + } +} +Done diff --git a/ext/oci8/tests/connect_scope2.phpt b/ext/oci8/tests/connect_scope2.phpt new file mode 100644 index 0000000000..7017493f5a --- /dev/null +++ b/ext/oci8/tests/connect_scope2.phpt @@ -0,0 +1,93 @@ +--TEST-- +Test oci_pconnect end-of-scope when statement returned +--SKIPIF-- +<?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?> +--FILE-- +<?php + +require(dirname(__FILE__).'/details.inc'); + +// Initialization + +$stmtarray = array( + "drop table connect_scope2_tab", + "create table connect_scope2_tab (c1 number)", +); + +if (!empty($dbase)) + $c1 = oci_new_connect($user,$password,$dbase); +else + $c1 = oci_new_connect($user,$password); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + @oci_execute($s1); +} + +// Run Test + +echo "Test 1 - oci_pconnect\n"; + +function f() +{ + global $user, $password, $dbase; + + if (!empty($dbase)) + $c = oci_pconnect($user,$password,$dbase); + else + $c = oci_pconnect($user,$password); + $s = oci_parse($c, "insert into connect_scope2_tab values (1)"); + oci_execute($s, OCI_DEFAULT); // no commit + return($s); // this keeps the connection refcount positive so the connection isn't closed +} + +$s2 = f(); + +// Check nothing committed yet + +$s1 = oci_parse($c1, "select * from connect_scope2_tab"); +oci_execute($s1, OCI_DEFAULT); +oci_fetch_all($s1, $r); +var_dump($r); + +// insert 2nd row on returned statement, committing both rows +oci_execute($s2); + +// Verify data was committed + +$s1 = oci_parse($c1, "select * from connect_scope2_tab"); +oci_execute($s1); +oci_fetch_all($s1, $r); +var_dump($r); + +// Cleanup + +$stmtarray = array( + "drop table connect_scope2_tab" +); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + oci_execute($s1); +} + +echo "Done\n"; + +?> +--EXPECTF-- +Test 1 - oci_pconnect +array(1) { + ["C1"]=> + array(0) { + } +} +array(1) { + ["C1"]=> + array(2) { + [0]=> + string(1) "1" + [1]=> + string(1) "1" + } +} +Done diff --git a/ext/oci8/tests/connect_scope_try1.phpt b/ext/oci8/tests/connect_scope_try1.phpt new file mode 100644 index 0000000000..a881ea6ead --- /dev/null +++ b/ext/oci8/tests/connect_scope_try1.phpt @@ -0,0 +1,100 @@ +--TEST-- +Check oci_connect try/catch end-of-scope with 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__).'/details.inc'); + +// Initialization + +$stmtarray = array( + "drop table scope_try1_tab", + "create table scope_try1_tab (c1 number)" +); + +if (!empty($dbase)) + $c1 = oci_new_connect($user,$password,$dbase); +else + $c1 = oci_new_connect($user,$password); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + @oci_execute($s1); +} + +// Run Test + +echo "Test 1\n"; + +// Make errors throw exceptions + +set_error_handler(create_function('$x, $y', 'throw new Exception($y, $x);')); + +try +{ + if (!empty($dbase)) + $c = oci_connect($user,$password,$dbase); + else + $c = oci_connect($user,$password); + $s = oci_parse($c, "insert into scope_try1_tab values (1)"); + oci_execute($s, OCI_DEFAULT); // no commit + $s = oci_parse($c, "insert into scope_try1_tab values (ABC)"); // syntax error -> throws exception + oci_execute($s, OCI_DEFAULT); // no commit +} +catch (Exception $e) +{ + echo "Caught Exception: ". $e->getMessage(), "\n"; + var_dump($c); + + // Verify data is not yet committed + $s1 = oci_parse($c1, "select * from scope_try1_tab"); + oci_execute($s1); + oci_fetch_all($s1, $r); + var_dump($r); + + // Now commit + oci_commit($c); +} + +// Verify data was committed in the Catch block + +$s1 = oci_parse($c1, "select * from scope_try1_tab"); +oci_execute($s1); +oci_fetch_all($s1, $r); +var_dump($r); + +// Cleanup + +$stmtarray = array( + "drop table scope_try1_tab" +); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + oci_execute($s1); +} + +echo "Done\n"; + +?> +--EXPECTF-- +Test 1 +Caught Exception: oci_execute(): ORA-00984: %s +resource(%d) of type (oci8 connection) +array(1) { + ["C1"]=> + array(0) { + } +} +array(1) { + ["C1"]=> + array(1) { + [0]=> + string(1) "1" + } +} +Done diff --git a/ext/oci8/tests/connect_scope_try2.phpt b/ext/oci8/tests/connect_scope_try2.phpt new file mode 100644 index 0000000000..9e6b5ce2e0 --- /dev/null +++ b/ext/oci8/tests/connect_scope_try2.phpt @@ -0,0 +1,100 @@ +--TEST-- +Check oci_connect try/catch end-of-scope with 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__).'/details.inc'); + +// Initialization + +$stmtarray = array( + "drop table scope_try2_tab", + "create table scope_try2_tab (c1 number)" +); + +if (!empty($dbase)) + $c1 = oci_new_connect($user,$password,$dbase); +else + $c1 = oci_new_connect($user,$password); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + @oci_execute($s1); +} + +// Run Test + +echo "Test 1\n"; + +// Make errors throw exceptions + +set_error_handler(create_function('$x, $y', 'throw new Exception($y, $x);')); + +try +{ + if (!empty($dbase)) + $c = oci_connect($user,$password,$dbase); + else + $c = oci_connect($user,$password); + $s = oci_parse($c, "insert into scope_try2_tab values (1)"); + oci_execute($s, OCI_DEFAULT); // no commit + $s = oci_parse($c, "insert into scope_try2_tab values (ABC)"); // syntax error -> throws exception + oci_execute($s, OCI_DEFAULT); // no commit +} +catch (Exception $e) +{ + echo "Caught Exception: ". $e->getMessage(), "\n"; + var_dump($c); + + // Verify data is not yet committed + $s1 = oci_parse($c1, "select * from scope_try2_tab"); + oci_execute($s1); + oci_fetch_all($s1, $r); + var_dump($r); + + // Now commit + oci_commit($c); +} + +// Verify data was committed in the Catch block + +$s1 = oci_parse($c1, "select * from scope_try2_tab"); +oci_execute($s1); +oci_fetch_all($s1, $r); +var_dump($r); + +// Cleanup + +$stmtarray = array( + "drop table scope_try2_tab" +); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + oci_execute($s1); +} + +echo "Done\n"; + +?> +--EXPECTF-- +Test 1 +Caught Exception: oci_execute(): ORA-00984: %s +resource(%d) of type (oci8 connection) +array(1) { + ["C1"]=> + array(0) { + } +} +array(1) { + ["C1"]=> + array(1) { + [0]=> + string(1) "1" + } +} +Done diff --git a/ext/oci8/tests/connect_scope_try3.phpt b/ext/oci8/tests/connect_scope_try3.phpt new file mode 100644 index 0000000000..1cd44b0218 --- /dev/null +++ b/ext/oci8/tests/connect_scope_try3.phpt @@ -0,0 +1,100 @@ +--TEST-- +Check oci_new_connect try/catch end-of-scope with 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__).'/details.inc'); + +// Initialization + +$stmtarray = array( + "drop table scope_try3_tab", + "create table scope_try3_tab (c1 number)" +); + +if (!empty($dbase)) + $c1 = oci_new_connect($user,$password,$dbase); +else + $c1 = oci_new_connect($user,$password); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + @oci_execute($s1); +} + +// Run Test + +echo "Test 1\n"; + +// Make errors throw exceptions + +set_error_handler(create_function('$x, $y', 'throw new Exception($y, $x);')); + +try +{ + if (!empty($dbase)) + $c = oci_new_connect($user,$password,$dbase); + else + $c = oci_new_connect($user,$password); + $s = oci_parse($c, "insert into scope_try3_tab values (1)"); + oci_execute($s, OCI_DEFAULT); // no commit + $s = oci_parse($c, "insert into scope_try3_tab values (ABC)"); // syntax error -> throws exception + oci_execute($s, OCI_DEFAULT); // no commit +} +catch (Exception $e) +{ + echo "Caught Exception: ". $e->getMessage(), "\n"; + var_dump($c); + + // Verify data is not yet committed + $s1 = oci_parse($c1, "select * from scope_try3_tab"); + oci_execute($s1); + oci_fetch_all($s1, $r); + var_dump($r); + + // Now commit + oci_commit($c); +} + +// Verify data was committed in the Catch block + +$s1 = oci_parse($c1, "select * from scope_try3_tab"); +oci_execute($s1); +oci_fetch_all($s1, $r); +var_dump($r); + +// Cleanup + +$stmtarray = array( + "drop table scope_try3_tab" +); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + oci_execute($s1); +} + +echo "Done\n"; + +?> +--EXPECTF-- +Test 1 +Caught Exception: oci_execute(): ORA-00984: %s +resource(%d) of type (oci8 connection) +array(1) { + ["C1"]=> + array(0) { + } +} +array(1) { + ["C1"]=> + array(1) { + [0]=> + string(1) "1" + } +} +Done diff --git a/ext/oci8/tests/connect_scope_try4.phpt b/ext/oci8/tests/connect_scope_try4.phpt new file mode 100644 index 0000000000..9b4cd1f278 --- /dev/null +++ b/ext/oci8/tests/connect_scope_try4.phpt @@ -0,0 +1,100 @@ +--TEST-- +Check oci_new_connect try/catch end-of-scope with 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__).'/details.inc'); + +// Initialization + +$stmtarray = array( + "drop table scope_try4_tab", + "create table scope_try4_tab (c1 number)" +); + +if (!empty($dbase)) + $c1 = oci_new_connect($user,$password,$dbase); +else + $c1 = oci_new_connect($user,$password); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + @oci_execute($s1); +} + +// Run Test + +echo "Test 1\n"; + +// Make errors throw exceptions + +set_error_handler(create_function('$x, $y', 'throw new Exception($y, $x);')); + +try +{ + if (!empty($dbase)) + $c = oci_new_connect($user,$password,$dbase); + else + $c = oci_new_connect($user,$password); + $s = oci_parse($c, "insert into scope_try4_tab values (1)"); + oci_execute($s, OCI_DEFAULT); // no commit + $s = oci_parse($c, "insert into scope_try4_tab values (ABC)"); // syntax error -> throws exception + oci_execute($s, OCI_DEFAULT); // no commit +} +catch (Exception $e) +{ + echo "Caught Exception: ". $e->getMessage(), "\n"; + var_dump($c); + + // Verify data is not yet committed + $s1 = oci_parse($c1, "select * from scope_try4_tab"); + oci_execute($s1); + oci_fetch_all($s1, $r); + var_dump($r); + + // Now commit + oci_commit($c); +} + +// Verify data was committed in the Catch block + +$s1 = oci_parse($c1, "select * from scope_try4_tab"); +oci_execute($s1); +oci_fetch_all($s1, $r); +var_dump($r); + +// Cleanup + +$stmtarray = array( + "drop table scope_try4_tab" +); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + oci_execute($s1); +} + +echo "Done\n"; + +?> +--EXPECTF-- +Test 1 +Caught Exception: oci_execute(): ORA-00984: %s +resource(%d) of type (oci8 connection) +array(1) { + ["C1"]=> + array(0) { + } +} +array(1) { + ["C1"]=> + array(1) { + [0]=> + string(1) "1" + } +} +Done diff --git a/ext/oci8/tests/connect_scope_try5.phpt b/ext/oci8/tests/connect_scope_try5.phpt new file mode 100644 index 0000000000..121fb33dc5 --- /dev/null +++ b/ext/oci8/tests/connect_scope_try5.phpt @@ -0,0 +1,100 @@ +--TEST-- +Check oci_pconnect try/catch end-of-scope with 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__).'/details.inc'); + +// Initialization + +$stmtarray = array( + "drop table scope_try5_tab", + "create table scope_try5_tab (c1 number)" +); + +if (!empty($dbase)) + $c1 = oci_new_connect($user,$password,$dbase); +else + $c1 = oci_new_connect($user,$password); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + @oci_execute($s1); +} + +// Run Test + +echo "Test 1\n"; + +// Make errors throw exceptions + +set_error_handler(create_function('$x, $y', 'throw new Exception($y, $x);')); + +try +{ + if (!empty($dbase)) + $c = oci_pconnect($user,$password,$dbase); + else + $c = oci_pconnect($user,$password); + $s = oci_parse($c, "insert into scope_try5_tab values (1)"); + oci_execute($s, OCI_DEFAULT); // no commit + $s = oci_parse($c, "insert into scope_try5_tab values (ABC)"); // syntax error -> throws exception + oci_execute($s, OCI_DEFAULT); // no commit +} +catch (Exception $e) +{ + echo "Caught Exception: ". $e->getMessage(), "\n"; + var_dump($c); + + // Verify data is not yet committed + $s1 = oci_parse($c1, "select * from scope_try5_tab"); + oci_execute($s1); + oci_fetch_all($s1, $r); + var_dump($r); + + // Now commit + oci_commit($c); +} + +// Verify data was committed in the Catch block + +$s1 = oci_parse($c1, "select * from scope_try5_tab"); +oci_execute($s1); +oci_fetch_all($s1, $r); +var_dump($r); + +// Cleanup + +$stmtarray = array( + "drop table scope_try5_tab" +); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + oci_execute($s1); +} + +echo "Done\n"; + +?> +--EXPECTF-- +Test 1 +Caught Exception: oci_execute(): ORA-00984: %s +resource(%d) of type (oci8 persistent connection) +array(1) { + ["C1"]=> + array(0) { + } +} +array(1) { + ["C1"]=> + array(1) { + [0]=> + string(1) "1" + } +} +Done diff --git a/ext/oci8/tests/connect_scope_try6.phpt b/ext/oci8/tests/connect_scope_try6.phpt new file mode 100644 index 0000000000..3347543ab8 --- /dev/null +++ b/ext/oci8/tests/connect_scope_try6.phpt @@ -0,0 +1,100 @@ +--TEST-- +Check oci_pconnect try/catch end-of-scope with 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__).'/details.inc'); + +// Initialization + +$stmtarray = array( + "drop table scope_try6_tab", + "create table scope_try6_tab (c1 number)" +); + +if (!empty($dbase)) + $c1 = oci_new_connect($user,$password,$dbase); +else + $c1 = oci_new_connect($user,$password); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + @oci_execute($s1); +} + +// Run Test + +echo "Test 1\n"; + +// Make errors throw exceptions + +set_error_handler(create_function('$x, $y', 'throw new Exception($y, $x);')); + +try +{ + if (!empty($dbase)) + $c = oci_pconnect($user,$password,$dbase); + else + $c = oci_pconnect($user,$password); + $s = oci_parse($c, "insert into scope_try6_tab values (1)"); + oci_execute($s, OCI_DEFAULT); // no commit + $s = oci_parse($c, "insert into scope_try6_tab values (ABC)"); // syntax error -> throws exception + oci_execute($s, OCI_DEFAULT); // no commit +} +catch (Exception $e) +{ + echo "Caught Exception: ". $e->getMessage(), "\n"; + var_dump($c); + + // Verify data is not yet committed + $s1 = oci_parse($c1, "select * from scope_try6_tab"); + oci_execute($s1); + oci_fetch_all($s1, $r); + var_dump($r); + + // Now commit + oci_commit($c); +} + +// Verify data was committed in the Catch block + +$s1 = oci_parse($c1, "select * from scope_try6_tab"); +oci_execute($s1); +oci_fetch_all($s1, $r); +var_dump($r); + +// Cleanup + +$stmtarray = array( + "drop table scope_try6_tab" +); + +foreach ($stmtarray as $stmt) { + $s1 = oci_parse($c1, $stmt); + oci_execute($s1); +} + +echo "Done\n"; + +?> +--EXPECTF-- +Test 1 +Caught Exception: oci_execute(): ORA-00984: %s +resource(%d) of type (oci8 persistent connection) +array(1) { + ["C1"]=> + array(0) { + } +} +array(1) { + ["C1"]=> + array(1) { + [0]=> + string(1) "1" + } +} +Done diff --git a/ext/oci8/tests/drcp_scope4.phpt b/ext/oci8/tests/drcp_scope4.phpt index 07110bca0e..87eaf0cbe6 100644 --- a/ext/oci8/tests/drcp_scope4.phpt +++ b/ext/oci8/tests/drcp_scope4.phpt @@ -10,10 +10,15 @@ oci8.old_oci_close_semantics=0 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 +// The default expected behavior of this test is different between PHP +// 5.2 and PHP 5.3 +// +// In PHP 5.3, 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. Use oci8.old_oci_close_semantics=1 to +// get old behavior // Create the table $c = oci_new_connect($user,$password,$dbase); diff --git a/ext/oci8/tests/minfo.phpt b/ext/oci8/tests/minfo.phpt new file mode 100644 index 0000000000..f6b95ff296 --- /dev/null +++ b/ext/oci8/tests/minfo.phpt @@ -0,0 +1,19 @@ +--TEST-- +Code coverage for PHP_MINFO_FUNCTION(oci) +--SKIPIF-- +<?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?> +--FILE-- +<?php + +ob_start(); +phpinfo(INFO_MODULES); +$v = ob_get_clean(); +$r = strpos($v, 'OCI8 Support => enabled'); +var_dump($r); + +echo "Done\n"; + +?> +--EXPECTF-- +int(%d) +Done |