summaryrefslogtreecommitdiff
path: root/ext/interbase/tests/interbase.inc
diff options
context:
space:
mode:
Diffstat (limited to 'ext/interbase/tests/interbase.inc')
-rw-r--r--ext/interbase/tests/interbase.inc120
1 files changed, 120 insertions, 0 deletions
diff --git a/ext/interbase/tests/interbase.inc b/ext/interbase/tests/interbase.inc
new file mode 100644
index 0000000..42eb6e5
--- /dev/null
+++ b/ext/interbase/tests/interbase.inc
@@ -0,0 +1,120 @@
+<?php /* $Id$ */
+
+srand((double)microtime()*1000000);
+
+$user = 'SYSDBA';
+$password = 'masterkey';
+ini_set('ibase.default_user',$user);
+ini_set('ibase.default_password',$password);
+
+/* we need just the generated name, not the file itself */
+unlink($test_base = tempnam('/tmp',"php_ibase_test"));
+
+function init_db()
+{
+ global $test_base, $user, $password;
+
+ $test_db = ibase_query(IBASE_CREATE,
+ sprintf("CREATE SCHEMA '%s' USER '%s' PASSWORD '%s' DEFAULT CHARACTER SET %s",$test_base,
+ $user, $password, ($charset = ini_get('ibase.default_charset')) ? $charset : 'NONE'));
+ $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);
+}
+
+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");
+ while ($r = ibase_fetch_row($res)) {
+ echo join("\t",$r)."\t\n";
+ }
+ ibase_free_result($res);
+ echo "---\n";
+}
+
+function out_result($result, $table_name = "")
+{
+ echo "--- $table_name ---\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_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);
+}
+
+/* random binary string */
+function rand_binstr($max_len)
+{
+ $len = rand() % $max_len;
+ $s = "";
+ while($len--) {
+ $s .= sprintf("%c", rand() % 256);
+ }
+ return $s;
+}
+
+function rand_str($max_len)
+{
+ $len = rand() % $max_len;
+ $s = "";
+ while ($len--) {
+ $s .= sprintf("%c", rand() % 26 + 65);
+ }
+ return $s;
+}
+
+function rand_number($len , $prec = -1, $sign = 1)
+{
+ if ($prec == -1) {
+ $n = substr(rand() . rand(), 0, rand() % $len + 1);
+ if (strlen($n) < $len) {
+ $n .= "." . substr(rand(), 0, rand() % ($len - strlen($n)) + 1);
+ }
+ } else if ($prec == 0) {
+ $n = substr(rand() . rand(), 0, rand() % $len + 1);
+ } else if (($prec - $len) == 0) {
+ $n = substr(rand() . rand(), 0, 1);
+ $n .= "." . substr(rand(), 0, $prec);
+ } else {
+ $n = substr(rand() . rand(), 0, rand() % ($len - $prec) + 1);
+ $n .= "." . substr(rand(), 0, $prec);
+ }
+ if ($sign && (rand() % 3 == 0)) {
+ $n = "-" .$n;
+ }
+ return $n;
+}
+
+?>