summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArd Biesheuvel <abies@php.net>2004-04-01 16:25:51 +0000
committerArd Biesheuvel <abies@php.net>2004-04-01 16:25:51 +0000
commit563e9dd664c755c25c9b63e0d7e72f93d235e41b (patch)
treee9a1f3049dd63b5fe08f8ece17db41fff5dae069
parent6a6096ec115d6fa8f581c6f0c8b8eaff35167d94 (diff)
downloadphp-git-563e9dd664c755c25c9b63e0d7e72f93d235e41b.tar.gz
Don't rely on isql anymore, as creating databases is now supported by the API
Changed tests to include ibase_query("SET TRANSACTION ...")
-rw-r--r--ext/interbase/tests/002.phpt7
-rw-r--r--ext/interbase/tests/005.phpt4
-rwxr-xr-xext/interbase/tests/interbase.inc96
-rwxr-xr-xext/interbase/tests/skipif.inc6
4 files changed, 52 insertions, 61 deletions
diff --git a/ext/interbase/tests/002.phpt b/ext/interbase/tests/002.phpt
index 6f30fb85fd..ce0defa575 100644
--- a/ext/interbase/tests/002.phpt
+++ b/ext/interbase/tests/002.phpt
@@ -17,16 +17,19 @@ InterBase: connect, close and pconnect
$pcon1 = ibase_pconnect($test_base);
$pcon2 = ibase_pconnect($test_base);
ibase_close($con);
+ unset($con);
ibase_close($pcon1);
+ unset($pcon1);
out_table("test1");
ibase_close($pcon2);
+ unset($pcon2);
?>
--EXPECT--
--- test1 ---
-1 test table created with isql
+1 test table not created with isql
---
--- test1 ---
-1 test table created with isql
+1 test table not created with isql
---
diff --git a/ext/interbase/tests/005.phpt b/ext/interbase/tests/005.phpt
index ab2c04b66f..91e003a4ca 100644
--- a/ext/interbase/tests/005.phpt
+++ b/ext/interbase/tests/005.phpt
@@ -113,8 +113,8 @@ three transaction on default link
ibase_free_result($res);
- $tr_1 = ibase_trans(); /* this default transaction also */
- $tr_2 = ibase_trans(IBASE_READ);
+ $tr_1 = ibase_query("SET TRANSACTION");
+ $tr_2 = ibase_query("SET TRANSACTION READ ONLY");
$tr_3 = ibase_trans(IBASE_READ+IBASE_COMMITTED+IBASE_REC_VERSION+IBASE_WAIT);
$tr_4 = ibase_trans(IBASE_READ+IBASE_COMMITTED+IBASE_REC_NO_VERSION+IBASE_NOWAIT);
diff --git a/ext/interbase/tests/interbase.inc b/ext/interbase/tests/interbase.inc
index 260ef00622..951835c146 100755
--- a/ext/interbase/tests/interbase.inc
+++ b/ext/interbase/tests/interbase.inc
@@ -1,46 +1,40 @@
-<?php
-
-/* $Id$ */
-/* used in tests */
+<?php /* $Id$ */
srand((double)microtime()*1000000);
-$test_base = dirname(__FILE__)."/ibase_test.tmp";
-@unlink($test_base);
+/* we need just the generated name, not the file itself */
+unlink($test_base = tempnam('/tmp',"php_ibase_test"));
-$name = tempnam(dirname(__FILE__), "CREATEDB");
-$ftmp = fopen($name,"w");
-fwrite($ftmp,
-"
- create database \"$test_base\";
- create table test1 (i integer, c varchar(100));
- commit;
- insert into test1(i, c) values(1, 'test table created with isql');
- exit;
-"
-);
-fclose($ftmp);
+function init_db()
+{
+ global $test_base;
-/* set the correct binary */
-if (is_executable('isql')) {
- $cmd = 'isql';
-} else {
- $cmd = '/opt/interbase/bin/isql';
+ $test_db = ibase_query("CREATE DATABASE \"$test_base\"");
+ $tr = ibase_trans($test_db);
+ ibase_query($tr,"create table test1 (i integer, c varchar(100))");
+ ibase_commit_ret($tr);
+ ibase_query($tr,"insert into test1(i, c) values(1, 'test table not created with isql')");
+ ibase_commit($tr);
+ ibase_close($test_db);
}
-exec("$cmd -i $name 2>&1");
-@unlink($name);
+function cleanup_db()
+{
+ global $test_base;
+
+ $r = ibase_connect($test_base);
+ ibase_drop_db($r);
+}
+register_shutdown_function('cleanup_db');
+init_db();
function out_table($table_name)
{
echo "--- $table_name ---\n";
$res = ibase_query("select * from $table_name");
- $f = ibase_num_fields($res);
- while ($r = ibase_fetch_row($res)){
- for($i = 0; $i < $f; $i++)
- echo "$r[$i]\t";
- echo "\n";
+ while ($r = ibase_fetch_row($res)) {
+ echo join("\t",$r)."\t\n";
}
ibase_free_result($res);
echo "---\n";
@@ -49,34 +43,28 @@ function out_table($table_name)
function out_result($result, $table_name = "")
{
echo "--- $table_name ---\n";
- $f = ibase_num_fields($result);
- while ($r = ibase_fetch_row($result)){
- for($i = 0; $i < $f; $i++)
- echo "$r[$i]\t";
- echo "\n";
+ while ($r = ibase_fetch_row($result)) {
+ echo join("\t",$r)."\t\n";
}
echo "---\n";
}
function out_result_trap_error($result, $table_name = "")
-{
+{
echo "--- $table_name ---\n";
- while ($r = @ibase_fetch_assoc($result)){
- while (list($k, $v) = each($r) ){
- echo "$r[$k]\t";
- }
- echo "\n";
+ while ($r = ibase_fetch_row($result)) {
+ echo join("\t",$r)."\t\n";
}
echo "errmsg [" . ibase_errmsg() . "]\t\n";
echo "---\n";
-}
+}
/* M/D/Y H:M:S */
function rand_datetime()
{
return sprintf("%02d/%02d/%4d %02d:%02d:%02d",
- rand()%12+1, rand()%28+1, rand()%100+1910,
- rand()%24, rand()%60, rand()%60);
+ rand()%12+1, rand()%28+1, rand()%100+1910,
+ rand()%24, rand()%60, rand()%60);
}
/* random binary string */
@@ -84,8 +72,9 @@ function rand_binstr($max_len)
{
$len = rand() % $max_len;
$s = "";
- while($len--)
+ while($len--) {
$s .= sprintf("%c", rand() % 256);
+ }
return $s;
}
@@ -93,25 +82,28 @@ function rand_str($max_len)
{
$len = rand() % $max_len;
$s = "";
- while($len--)
- $s .= sprintf("%c", rand() % 26 + 65);;
+ while ($len--) {
+ $s .= sprintf("%c", rand() % 26 + 65);
+ }
return $s;
}
function rand_number($len , $prec = -1, $sign = 1)
{
- if($prec == -1){
+ if ($prec == -1) {
$n = substr(rand() . rand(), 0, rand() % $len + 1);
- if(strlen($n) < $len)
+ if (strlen($n) < $len) {
$n .= "." . substr(rand(), 0, rand() % ($len - strlen($n)) + 1);
- }elseif ($prec == 0){
+ }
+ } else if ($prec == 0) {
$n = substr(rand() . rand(), 0, rand() % $len + 1);
- }else{
+ } else {
$n = substr(rand() . rand(), 0, rand() % ($len - $prec) + 1);
$n .= "." . substr(rand(), 0, $prec);
}
- if($sign && (rand() % 3 == 0))
+ if ($sign && (rand() % 3 == 0)) {
$n = "-" .$n;
+ }
return $n;
}
diff --git a/ext/interbase/tests/skipif.inc b/ext/interbase/tests/skipif.inc
index 4f0395c60b..337abe7cff 100755
--- a/ext/interbase/tests/skipif.inc
+++ b/ext/interbase/tests/skipif.inc
@@ -1,9 +1,5 @@
-<?php
-
-/* $Id$ */
-/* used in tests */
+<?php /* $Id$ */
if (!extension_loaded("interbase")) print "skip";
-if (!is_executable("isql") && !is_executable("/opt/interbase/bin/isql")) print "skip";
?>