Skip to content

Commit 6313db4

Browse files
committed
Add some tests
1 parent 27265a5 commit 6313db4

File tree

4 files changed

+163
-0
lines changed

4 files changed

+163
-0
lines changed

tests/001-table.sql

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
RECREATE TABLE TEST_001
2+
(
3+
ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL PRIMARY KEY,
4+
BLOB_0 BLOB DEFAULT 'BLOB_0',
5+
BLOB_1 BLOB SUB_TYPE 1 DEFAULT 'BLOB_1',
6+
BOOL_1 BOOLEAN DEFAULT TRUE,
7+
DATE_1 DATE DEFAULT '2025-11-06',
8+
TIME_1 TIME WITHOUT TIME ZONE DEFAULT '15:45:59',
9+
DECFLOAT_16 DECFLOAT(16) DEFAULT 3.141592653589793, -- MAX 9.999999999999999E+384
10+
DECFLOAT_34 DECFLOAT(34) DEFAULT 3.141592653589793238462643383279502, -- MAX 9.999999999999999999999999999999999E+6144
11+
INT_NOT_NULL INTEGER DEFAULT 1 NOT NULL,
12+
DOUBLE_PRECISION_1 DOUBLE PRECISION DEFAULT 3.141592653589793,
13+
FLOAT_1 FLOAT DEFAULT 3.141592653589793,
14+
INT_1 INTEGER DEFAULT 1,
15+
INT_128 INT128 DEFAULT 170141183460469231731687303715884105727,
16+
VARCHAR_1 VARCHAR(100) DEFAULT 'VARCHAR_1',
17+
SMALLINT_1 SMALLINT DEFAULT 1,
18+
TIME_TZ TIME WITH TIME ZONE DEFAULT '15:45:59 Europe/Riga',
19+
TIMESTAMP_TZ TIMESTAMP WITH TIME ZONE DEFAULT '2025-11-06 15:45:59 Europe/Riga'
20+
);

tests/datatype_001.phpt

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
--TEST--
2+
Check for data types using old clients
3+
--SKIPIF--
4+
<?php
5+
include("skipif.inc");
6+
print "skip: custom test for @mlazdans";
7+
?>
8+
--FILE--
9+
<?php
10+
11+
require("interbase.inc");
12+
13+
(function(){
14+
// ibase_connect("127.0.0.1/3052:E:\\dbf50\\test\\TEST.FDB", "sysdba", "masterkey", "utf8");
15+
ibase_connect("127.0.0.1/3052:/opt/db/test.fdb", "sysdba", "masterkey", "utf8");
16+
ibase_query("DELETE FROM TEST_001");
17+
ibase_query("ALTER TABLE TEST_001 ALTER COLUMN ID RESTART WITH 1");
18+
ibase_query("INSERT INTO TEST_001 (ID) VALUES (DEFAULT)");
19+
// dump_table_rows("TEST_001", null, IBASE_FETCH_BLOBS | IBASE_UNIXTIME);
20+
dump_table_rows("TEST_001", null, IBASE_FETCH_BLOBS);
21+
})();
22+
23+
?>
24+
--EXPECT--
25+
array(17) {
26+
["ID"]=>
27+
int(1)
28+
["BLOB_0"]=>
29+
string(6) "BLOB_0"
30+
["BLOB_1"]=>
31+
string(6) "BLOB_1"
32+
["BOOL_1"]=>
33+
bool(true)
34+
["DATE_1"]=>
35+
string(10) "2025-11-06"
36+
["TIME_1"]=>
37+
string(8) "15:45:59"
38+
["DECFLOAT_16"]=>
39+
string(17) "3.141592653589793"
40+
["DECFLOAT_34"]=>
41+
string(35) "3.141592653589793238462643383279502"
42+
["INT_NOT_NULL"]=>
43+
int(1)
44+
["DOUBLE_PRECISION_1"]=>
45+
float(3.141592653589793)
46+
["FLOAT_1"]=>
47+
float(3.1415927410125732)
48+
["INT_1"]=>
49+
int(1)
50+
["INT_128"]=>
51+
string(39) "170141183460469231731687303715884105727"
52+
["VARCHAR_1"]=>
53+
string(9) "VARCHAR_1"
54+
["SMALLINT_1"]=>
55+
int(1)
56+
["TIME_TZ"]=>
57+
string(20) "15:45:59 Europe/Riga"
58+
["TIMESTAMP_TZ"]=>
59+
string(31) "2025-11-06 15:45:59 Europe/Riga"
60+
}

tests/time_001.phpt

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
--TEST--
2+
Test unixtimestamp
3+
--SKIPIF--
4+
<?php
5+
include("skipif.inc");
6+
?>
7+
--FILE--
8+
<?php
9+
10+
require("interbase.inc");
11+
12+
(function(){
13+
ibase_query("CREATE TABLE TTEST (
14+
ID INTEGER,
15+
T1 TIME DEFAULT '15:45:59',
16+
T2 TIMESTAMP DEFAULT '2025-11-06 15:45:59'
17+
)");
18+
ibase_commit();
19+
ibase_query("INSERT INTO TTEST (ID) VALUES (1)");
20+
dump_table_rows("TTEST");
21+
dump_table_rows("TTEST", null, IBASE_UNIXTIME);
22+
})();
23+
24+
?>
25+
--EXPECTF--
26+
array(3) {
27+
["ID"]=>
28+
int(1)
29+
["T1"]=>
30+
string(8) "15:45:59"
31+
["T2"]=>
32+
string(19) "2025-11-06 15:45:59"
33+
}
34+
array(3) {
35+
["ID"]=>
36+
int(1)
37+
["T1"]=>
38+
int(-%d)
39+
["T2"]=>
40+
int(1762436759)
41+
}

tests/time_002.phpt

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
--TEST--
2+
Test unixtimestamp
3+
--SKIPIF--
4+
<?php
5+
include("skipif.inc");
6+
skip_if_fb_lt(4) || skip_if_fbclient_lt(4);
7+
?>
8+
--FILE--
9+
<?php
10+
11+
require("interbase.inc");
12+
13+
(function(){
14+
ibase_query("CREATE TABLE TTEST (
15+
ID INTEGER,
16+
T1 TIME WITH TIME ZONE DEFAULT '15:45:59 Europe/Riga',
17+
T2 TIMESTAMP WITH TIME ZONE DEFAULT '2025-11-06 15:45:59 Europe/Riga'
18+
)");
19+
ibase_commit();
20+
ibase_query("INSERT INTO TTEST (ID) VALUES (1)");
21+
dump_table_rows("TTEST");
22+
dump_table_rows("TTEST", null, IBASE_UNIXTIME);
23+
})();
24+
25+
?>
26+
--EXPECTF--
27+
array(3) {
28+
["ID"]=>
29+
int(1)
30+
["T1"]=>
31+
string(20) "15:45:59 Europe/Riga"
32+
["T2"]=>
33+
string(31) "2025-11-06 15:45:59 Europe/Riga"
34+
}
35+
array(3) {
36+
["ID"]=>
37+
int(1)
38+
["T1"]=>
39+
int(-%d)
40+
["T2"]=>
41+
int(1762436759)
42+
}

0 commit comments

Comments
 (0)