]> granicus.if.org Git - php/commitdiff
Don't rely on isql anymore, as creating databases is now supported by the API
authorArd Biesheuvel <abies@php.net>
Thu, 1 Apr 2004 16:25:51 +0000 (16:25 +0000)
committerArd Biesheuvel <abies@php.net>
Thu, 1 Apr 2004 16:25:51 +0000 (16:25 +0000)
Changed tests to include ibase_query("SET TRANSACTION ...")

ext/interbase/tests/002.phpt
ext/interbase/tests/005.phpt
ext/interbase/tests/interbase.inc
ext/interbase/tests/skipif.inc

index 6f30fb85fd3505ccd02d5971b235c206c636e6a0..ce0defa5755982a5d49b1156467e2fdb30b308a1 100644 (file)
@@ -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        
 ---
index ab2c04b66f6187af756994af66eef21275455d40..91e003a4ca5eafc3ab48c62cdde3407615cee190 100644 (file)
@@ -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);      
     
index 260ef00622a7eeb834cee176370b81e7d506ec3d..951835c146de34544cc1b97c9e56c82cb1f81d28 100755 (executable)
@@ -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;
 }
 
index 4f0395c60b4b521241aff8483722135beb2eb8ba..337abe7cfff22ee164eb37476a18ed8e0b5c6b5d 100755 (executable)
@@ -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";
 
 ?>