Skip to content

Commit edda6d4

Browse files
committed
Add a test for data with fields introduced in FB4.0 (#78)
1 parent 0246df7 commit edda6d4

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed

tests/common.inc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,10 @@ function test_fields40(): void {
8585
printf("%s/%s/%d\n", $info["name"], $info["type"], $info["length"]);
8686
}
8787
}
88+
89+
function test_field_data40(): void {
90+
ibase_query(file_get_contents(__DIR__."/001-FIELDS40.sql"));
91+
ibase_commit();
92+
ibase_query("INSERT INTO FIELDS40 (ID) VALUES (1)");
93+
dump_table_rows("FIELDS40");
94+
}

tests/fb40fields_001.phpt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
--TEST--
2+
Test data for fields introduced in FB 4.0
3+
--SKIPIF--
4+
<?php
5+
include("skipif.inc");
6+
skip_if_fb_lt(4);
7+
skip_if_fbclient_lt(4);
8+
?>
9+
--FILE--
10+
<?php
11+
12+
require("interbase.inc");
13+
require("common.inc");
14+
ibase_connect($test_base);
15+
test_field_data40();
16+
17+
?>
18+
--EXPECT--
19+
array(8) {
20+
["ID"]=>
21+
int(1)
22+
["NUMERIC_4"]=>
23+
string(39) "3.1415926535897932384626433832795028841"
24+
["DECIMAL_4"]=>
25+
string(39) "3.1415926535897932384626433832795028841"
26+
["DECFLOAT_16"]=>
27+
string(17) "3.141592653589793"
28+
["DECFLOAT_34"]=>
29+
string(35) "3.141592653589793238462643383279502"
30+
["INT128_FIELD"]=>
31+
string(40) "-170141183460469231731687303715884105727"
32+
["TIME_TZ"]=>
33+
string(22) "15:45:59 Europe/Berlin"
34+
["TIMESTAMP_TZ"]=>
35+
string(33) "2025-11-06 15:45:59 Europe/Berlin"
36+
}

tests/fb40fields_002.phpt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
--TEST--
2+
Test data for fields introduced in FB 4.0, with older client
3+
--SKIPIF--
4+
<?php
5+
include("skipif.inc");
6+
skip_if_fb_lt(4);
7+
skip_if_fbclient_gte(4);
8+
?>
9+
--FILE--
10+
<?php
11+
12+
require("interbase.inc");
13+
require("common.inc");
14+
ibase_connect($test_base);
15+
test_field_data40();
16+
17+
?>
18+
--EXPECT--
19+
array(8) {
20+
["ID"]=>
21+
int(1)
22+
["NUMERIC_4"]=>
23+
string(39) "3.1415926535897932384626433832795028841"
24+
["DECIMAL_4"]=>
25+
string(39) "3.1415926535897932384626433832795028841"
26+
["DECFLOAT_16"]=>
27+
string(17) "3.141592653589793"
28+
["DECFLOAT_34"]=>
29+
string(35) "3.141592653589793238462643383279502"
30+
["INT128_FIELD"]=>
31+
string(40) "-170141183460469231731687303715884105727"
32+
["TIME_TZ"]=>
33+
string(8) "16:45:59"
34+
["TIMESTAMP_TZ"]=>
35+
string(19) "2025-11-06 16:45:59"
36+
}

0 commit comments

Comments
 (0)