From: Christopher Jones Date: Tue, 16 Mar 2010 23:13:50 +0000 (+0000) Subject: Update oci_commit tests X-Git-Tag: php-5.3.3RC1~385 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=825d1abdfe0cfa41d020a4de166d8e72164d775e;p=php Update oci_commit tests --- diff --git a/ext/oci8/tests/commit.phpt b/ext/oci8/tests/commit_001.phpt similarity index 100% rename from ext/oci8/tests/commit.phpt rename to ext/oci8/tests/commit_001.phpt diff --git a/ext/oci8/tests/commit_002.phpt b/ext/oci8/tests/commit_002.phpt new file mode 100644 index 0000000000..510c7decda --- /dev/null +++ b/ext/oci8/tests/commit_002.phpt @@ -0,0 +1,90 @@ +--TEST-- +Test oci_commit failure +--SKIPIF-- + +--FILE-- + 0 ) deferrable initially immediate, + y int constraint commit_002_tab_check_y check ( y > 0 ) deferrable initially deferred)" +); + +foreach ($stmtarray as $stmt) { + $s = oci_parse($c, $stmt); + $r = @oci_execute($s); + if (!$r) { + $m = oci_error($s); + if (!in_array($m['code'], array( // ignore expected errors + 942 // table or view does not exist + , 2289 // sequence does not exist + , 4080 // trigger does not exist + , 38802 // edition does not exist + ))) { + echo $stmt . PHP_EOL . $m['message'] . PHP_EOL; + } + } +} + +// Run Test + +echo "First Insert\n"; +$s = oci_parse($c, "insert into commit_002_tab values (-1, 1)"); +$r = @oci_execute($s, OCI_DEFAULT); +if (!$r) { + $m = oci_error($s); + echo 'Could not execute: '. $m['message'] . "\n"; +} +$r = oci_commit($c); +if (!$r) { + $m = oci_error($c); + echo 'Could not commit: '. $m['message'] . "\n"; +} + + +echo "Second Insert\n"; +$s = oci_parse($c, "insert into commit_002_tab values (1, -1)"); +$r = @oci_execute($s, OCI_NO_AUTO_COMMIT); +if (!$r) { + $m = oci_error($s); + echo 'Could not execute: '. $m['message'] . "\n"; +} +$r = oci_commit($c); +if (!$r) { + $m = oci_error($c); + echo 'Could not commit: '. $m['message'] . "\n"; +} + + +// Clean up + +$stmtarray = array( + "drop table commit_002_tab" +); + +foreach ($stmtarray as $stmt) { + $s = oci_parse($c, $stmt); + oci_execute($s); +} + +oci_close($c); + +?> +===DONE=== + +--EXPECTF-- +First Insert +Could not execute: ORA-02290: check constraint (SYSTEM.COMMIT_002_TAB_CHECK_X) violated +Second Insert + +Warning: oci_commit(): ORA-02091: transaction rolled back +ORA-02290: %s (SYSTEM.COMMIT_002_TAB_CHECK_Y) %s in %scommit_002.php on line %d +Could not commit: ORA-02091: transaction rolled back +ORA-02290: %s (SYSTEM.COMMIT_002_TAB_CHECK_Y) %s +===DONE===