Skip to content

Commit 8726ae0

Browse files
committed
Improve and fix ext/odbc tests
Some test failures are fixed, parallelization is enabled, section order is fixed.
1 parent 985511e commit 8726ae0

30 files changed

+207
-177
lines changed

ext/odbc/tests/CONFLICTS

-1
This file was deleted.

ext/odbc/tests/bug44618.phpt

+7-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@ Bug #44618 (Fetching may rely on uninitialized data)
33
--EXTENSIONS--
44
odbc
55
--SKIPIF--
6-
<?php include 'skipif.inc'; ?>
6+
<?php
7+
include 'skipif.inc';
8+
9+
if (ODBC_TYPE === "unixODBC") {
10+
die("skip Fails with unixODBC");
11+
}
12+
?>
713
--FILE--
814
<?php
915
include __DIR__ . "/config.inc";

ext/odbc/tests/bug47803.phpt

+15-17
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ odbc
99

1010
include __DIR__ . "/config.inc";
1111

12-
$create_table = "CREATE TABLE FOO(
12+
$create_table = "CREATE TABLE bug47803(
1313
[PAR_ID] [int] NOT NULL,
1414
[PAR_INT] [int] NULL,
1515
[PAR_CHR] [varchar](500) NULL
1616
)";
1717

18-
$inserts = "INSERT INTO FOO
18+
$inserts = "INSERT INTO bug47803
1919
([PAR_ID]
2020
,[PAR_INT]
2121
,[PAR_CHR])
@@ -37,7 +37,6 @@ date_default_timezone_set('Europe/Warsaw');
3737

3838
$link = odbc_connect($dsn, $user, $pass);
3939

40-
odbc_exec($link, 'CREATE DATABASE odbcTEST');
4140
odbc_exec($link, $create_table);
4241
odbc_exec($link, $inserts);
4342

@@ -53,7 +52,7 @@ $upd_params = array(
5352
array('id'=>7, 'name'=>'test 7'),
5453
array('id'=>6, 'name'=>'test 6'),
5554
);
56-
$sql = "UPDATE FOO
55+
$sql = "UPDATE bug47803
5756
SET [PAR_CHR] = ?
5857
WHERE [PAR_ID] = ?";
5958
$result = odbc_prepare($link, $sql);
@@ -69,7 +68,7 @@ foreach ($upd_params as &$k) {
6968
}
7069
odbc_free_result($result);
7170

72-
$sql = "SELECT * FROM FOO WHERE [PAR_ID] = ?";
71+
$sql = "SELECT * FROM bug47803 WHERE [PAR_ID] = ?";
7372
$result = odbc_prepare($link, $sql);
7473
if (!$result) {
7574
print ('[sql] prep: '.$sql);
@@ -89,6 +88,17 @@ out:
8988
if ($result) odbc_free_result($result);
9089
odbc_close($link);
9190

91+
?>
92+
--CLEAN--
93+
<?php
94+
include 'config.inc';
95+
96+
$conn = odbc_connect($dsn, $user, $pass);
97+
98+
odbc_exec($conn, 'DROP TABLE bug47803');
99+
100+
odbc_close($conn);
101+
92102
?>
93103
--EXPECT--
94104
array(3) {
@@ -171,15 +181,3 @@ array(3) {
171181
["PAR_CHR"]=>
172182
string(6) "test 7"
173183
}
174-
--CLEAN--
175-
<?php
176-
include 'config.inc';
177-
178-
$conn = odbc_connect($dsn, $user, $pass);
179-
180-
odbc_exec($conn, 'DROP TABLE FOO');
181-
odbc_exec($conn, 'DROP DATABASE odbcTEST');
182-
183-
odbc_close($conn);
184-
185-
?>

ext/odbc/tests/bug60616.phpt

+26-16
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,23 @@
22
odbc_exec(): Getting accurate unicode data from query
33
--EXTENSIONS--
44
odbc
5+
mbstring
56
--SKIPIF--
6-
<?php include 'skipif.inc'; ?>
77
<?php
8-
if ("unixODBC" != ODBC_TYPE) {
9-
die("skip ODBC_TYPE != unixODBC");
8+
include 'skipif.inc';
9+
if ("unixODBC" != ODBC_TYPE) {
10+
die("skip ODBC_TYPE != unixODBC");
11+
}
12+
13+
$conn = odbc_connect($dsn, $user, $pass);
14+
$result = @odbc_exec($conn, "SELECT @@Version");
15+
if ($result) {
16+
$array = odbc_fetch_array($result);
17+
$info = (string) reset($array);
18+
if (str_contains($info, "Microsoft SQL Server")) {
19+
echo "skip Doesn't work with MS SQL";
1020
}
21+
}
1122
?>
1223
--FILE--
1324
<?php
@@ -23,14 +34,12 @@ ini_set("odbc.defaultlrl", 4); // Set artificially low
2334

2435
$conn = odbc_connect($dsn, $user, $pass);
2536

26-
odbc_exec($conn, 'CREATE DATABASE odbcTEST ENCODING=\'EUC_JP\'');
37+
odbc_exec($conn, 'CREATE DATABASE bug60616Test ENCODING=\'EUC_JP\'');
38+
odbc_exec($conn, 'USE bug60616Test');
39+
odbc_exec($conn, 'CREATE TABLE bug60616 (ID INT, CHAR_COL CHAR(200), VARCHAR_COL VARCHAR(200), TEXT_COL TEXT)');
40+
odbc_exec($conn, "INSERT INTO bug60616(ID, CHAR_COL, VARCHAR_COL, TEXT_COL) VALUES (1, '$euc_jp', '$euc_jp', '$euc_jp'), (2, '$ascii', '$ascii', '$ascii')");
2741

28-
odbc_exec($conn, 'CREATE TABLE FOO (ID INT, CHAR_COL CHAR(200), VARCHAR_COL VARCHAR(200), TEXT_COL TEXT)');
29-
30-
odbc_exec($conn, "INSERT INTO FOO(ID, CHAR_COL, VARCHAR_COL, TEXT_COL) VALUES (1, '$euc_jp', '$euc_jp', '$euc_jp')");
31-
odbc_exec($conn, "INSERT INTO FOO(ID, CHAR_COL, VARCHAR_COL, TEXT_COL) VALUES (2, '$ascii', '$ascii', '$ascii')");
32-
33-
$res = odbc_exec($conn, 'SELECT * FROM FOO ORDER BY ID ASC');
42+
$res = odbc_exec($conn, 'SELECT * FROM bug60616 ORDER BY ID ASC');
3443

3544
while(odbc_fetch_row($res)) {
3645
$char_col = odbc_result($res, "CHAR_COL");
@@ -61,16 +70,17 @@ while(odbc_fetch_row($res)) {
6170
}
6271

6372
?>
64-
--EXPECT--
65-
EUC-JP matched
66-
ASCII matched
6773
--CLEAN--
6874
<?php
6975
include 'config.inc';
7076

7177
$conn = odbc_connect($dsn, $user, $pass);
7278

73-
odbc_exec($conn, 'DROP TABLE FOO');
74-
odbc_exec($conn, 'DROP DATABASE odbcTEST');
75-
79+
odbc_exec($conn, 'USE bug60616Test');
80+
odbc_exec($conn, 'DROP TABLE bug60616');
81+
odbc_exec($conn, 'DROP DATABASE bug60616Test');
7682
?>
83+
--EXPECT--
84+
EUC-JP matched
85+
ASCII matched
86+

ext/odbc/tests/bug68087.phpt

+7-11
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,11 @@ $id_2_date = '2014-09-24';
1414

1515
$conn = odbc_connect($dsn, $user, $pass);
1616

17-
@odbc_exec($conn, 'CREATE DATABASE odbcTEST');
17+
odbc_exec($conn, 'CREATE TABLE bug68087 (ID INT, VARCHAR_COL VARCHAR(100), DATE_COL DATE)');
1818

19-
odbc_exec($conn, 'CREATE TABLE FOO (ID INT, VARCHAR_COL VARCHAR(100), DATE_COL DATE)');
19+
odbc_exec($conn, "INSERT INTO bug68087(ID, VARCHAR_COL, DATE_COL) VALUES (1, 'hello', '$id_1_date'), (2, 'helloagain', '$id_2_date')");
2020

21-
odbc_exec($conn, "INSERT INTO FOO(ID, VARCHAR_COL, DATE_COL) VALUES (1, 'hello', '$id_1_date')");
22-
odbc_exec($conn, "INSERT INTO FOO(ID, VARCHAR_COL, DATE_COL) VALUES (2, 'helloagain', '$id_2_date')");
23-
24-
$res = odbc_exec($conn, 'SELECT * FROM FOO ORDER BY ID ASC');
21+
$res = odbc_exec($conn, 'SELECT * FROM bug68087 ORDER BY ID ASC');
2522

2623
while(odbc_fetch_row($res)) {
2724
$id = odbc_result($res, "ID");
@@ -44,16 +41,15 @@ while(odbc_fetch_row($res)) {
4441
}
4542

4643
?>
47-
--EXPECT--
48-
Date_1 matched
49-
Date_2 matched
5044
--CLEAN--
5145
<?php
5246
include 'config.inc';
5347

5448
$conn = odbc_connect($dsn, $user, $pass);
5549

56-
odbc_exec($conn, 'DROP TABLE FOO');
57-
odbc_exec($conn, 'DROP DATABASE odbcTEST');
50+
odbc_exec($conn, 'DROP TABLE bug68087');
5851

5952
?>
53+
--EXPECT--
54+
Date_1 matched
55+
Date_2 matched

ext/odbc/tests/bug69354.phpt

+8-11
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,11 @@ include 'config.inc';
1111

1212
$conn = odbc_connect($dsn, $user, $pass);
1313

14-
@odbc_exec($conn, 'CREATE DATABASE odbcTEST');
14+
odbc_exec($conn, 'CREATE TABLE bug69354 (ID INT, VARCHAR_COL VARCHAR(100))');
1515

16-
odbc_exec($conn, 'CREATE TABLE FOO (ID INT, VARCHAR_COL VARCHAR(100))');
16+
odbc_exec($conn, "INSERT INTO bug69354(ID, VARCHAR_COL) VALUES (1, '" . str_repeat("a", 100) . "')");
1717

18-
odbc_exec($conn, "INSERT INTO FOO(ID, VARCHAR_COL) VALUES (1, '" . str_repeat("a", 100) . "')");
19-
20-
$res = odbc_exec($conn,"select VARCHAR_COL from FOO");
18+
$res = odbc_exec($conn,"SELECT VARCHAR_COL FROM bug69354");
2119
if ($res) {
2220
if (odbc_fetch_row($res)) {
2321
$ret = odbc_result($res,'varchar_col');
@@ -27,17 +25,16 @@ if ($res) {
2725
}
2826
}
2927
?>
30-
--EXPECT--
31-
100
32-
a
33-
a
3428
--CLEAN--
3529
<?php
3630
include 'config.inc';
3731

3832
$conn = odbc_connect($dsn, $user, $pass);
3933

40-
odbc_exec($conn, 'DROP TABLE FOO');
41-
odbc_exec($conn, 'DROP DATABASE odbcTEST');
34+
odbc_exec($conn, 'DROP TABLE bug69354');
4235

4336
?>
37+
--EXPECT--
38+
100
39+
a
40+
a

ext/odbc/tests/bug69975.phpt

+10-11
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,25 @@ odbc
99
include 'config.inc';
1010

1111
$conn = odbc_connect($dsn, $user, $pass);
12-
@odbc_exec($conn, 'CREATE DATABASE odbcTEST');
13-
odbc_exec($conn, 'CREATE TABLE FOO (ID INT, VARCHAR_COL NVARCHAR(MAX))');
14-
odbc_exec($conn, "INSERT INTO FOO VALUES (1, 'foo')");
12+
odbc_exec($conn, 'CREATE TABLE bug69975 (ID INT, VARCHAR_COL NVARCHAR(MAX))');
13+
odbc_exec($conn, "INSERT INTO bug69975 VALUES (1, 'foo')");
1514

16-
$result = odbc_exec($conn, "SELECT VARCHAR_COL FROM FOO");
15+
$result = odbc_exec($conn, "SELECT VARCHAR_COL FROM bug69975");
1716
var_dump(odbc_fetch_array($result));
1817

1918
echo "ready";
2019
?>
20+
--CLEAN--
21+
<?php
22+
include 'config.inc';
23+
24+
$conn = odbc_connect($dsn, $user, $pass);
25+
odbc_exec($conn, 'DROP TABLE bug69975');
26+
?>
2127
--EXPECT--
2228
array(1) {
2329
["VARCHAR_COL"]=>
2430
string(3) "foo"
2531
}
2632
ready
27-
--CLEAN--
28-
<?php
29-
include 'config.inc';
3033

31-
$conn = odbc_connect($dsn, $user, $pass);
32-
odbc_exec($conn, 'DROP TABLE FOO');
33-
odbc_exec($conn, 'DROP DATABASE odbcTEST');
34-
?>

ext/odbc/tests/bug71171.phpt

+9-12
Original file line numberDiff line numberDiff line change
@@ -11,33 +11,30 @@ include 'config.inc';
1111

1212
$conn = odbc_connect($dsn, $user, $pass);
1313

14-
@odbc_exec($conn, 'CREATE DATABASE odbcTEST');
14+
odbc_exec($conn, 'CREATE TABLE bug71171 (ID INT, VARCHAR_COL NVARCHAR(40))');
1515

16-
odbc_exec($conn, 'CREATE TABLE FOO (ID INT, VARCHAR_COL NVARCHAR(40))');
16+
odbc_exec($conn, "INSERT INTO bug71171(ID, VARCHAR_COL) VALUES (1, '" . chr(0x81) . "')");
1717

18-
odbc_exec($conn, "INSERT INTO FOO(ID, VARCHAR_COL) VALUES (1, '" . chr(0x81) . "')");
19-
20-
$res = odbc_exec($conn,"SELECT ID FROM FOO WHERE VARCHAR_COL = '" . chr(0x81) . "'");
18+
$res = odbc_exec($conn,"SELECT ID FROM bug71171 WHERE VARCHAR_COL = '" . chr(0x81) . "'");
2119
if ($res) {
2220
while($record = odbc_fetch_array($res)) var_dump($record);
2321
}
2422

2523
odbc_close($conn);
2624
?>
27-
--EXPECT--
28-
array(1) {
29-
["ID"]=>
30-
string(1) "1"
31-
}
3225
--CLEAN--
3326
<?php
3427
include 'config.inc';
3528

3629
$conn = odbc_connect($dsn, $user, $pass);
3730

38-
odbc_exec($conn, 'DROP TABLE FOO');
39-
odbc_exec($conn, 'DROP DATABASE odbcTEST');
31+
odbc_exec($conn, 'DROP TABLE bug71171');
4032

4133
odbc_close($conn);
4234

4335
?>
36+
--EXPECT--
37+
array(1) {
38+
["ID"]=>
39+
string(1) "1"
40+
}

ext/odbc/tests/bug73448.phpt

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ Bug #73448 odbc_errormsg returns trash, always 513 bytes
44
odbc
55
--SKIPIF--
66
<?php include 'skipif.inc'; ?>
7+
--CONFLICTS--
8+
odbc
79
--FILE--
810
<?php
911

ext/odbc/tests/bug73725.phpt

+13-14
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ $conn = odbc_connect($dsn, $user, $pass);
1313

1414
odbc_do($conn, "CREATE TABLE bug73725(i int, txt varchar(max), k int)");
1515

16-
odbc_do($conn, "INSERT INTO bug73725 VALUES(101,'Any text', 33)");
17-
odbc_do($conn, "INSERT INTO bug73725 VALUES(102,'Müsliriegel', 34)");
16+
odbc_do($conn, "INSERT INTO bug73725 VALUES(101,'Any text', 33), (102,'Lorem ipsum dolor', 34)");
1817

1918
$rc = odbc_do($conn, "SELECT i, txt, k FROM bug73725");
2019

@@ -24,6 +23,17 @@ var_dump($r);
2423
$r = odbc_fetch_array($rc);
2524
var_dump($r);
2625

26+
?>
27+
--CLEAN--
28+
<?php
29+
include 'config.inc';
30+
31+
$conn = odbc_connect($dsn, $user, $pass);
32+
33+
odbc_exec($conn, 'DROP TABLE bug73725');
34+
35+
odbc_close($conn);
36+
2737
?>
2838
--EXPECT--
2939
array(3) {
@@ -38,18 +48,7 @@ array(3) {
3848
["i"]=>
3949
string(3) "102"
4050
["txt"]=>
41-
string(12) "Müsliriegel"
51+
string(17) "Lorem ipsum dolor"
4252
["k"]=>
4353
string(2) "34"
4454
}
45-
--CLEAN--
46-
<?php
47-
include 'config.inc';
48-
49-
$conn = odbc_connect($dsn, $user, $pass);
50-
51-
odbc_exec($conn, 'DROP TABLE bug73725');
52-
53-
odbc_close($conn);
54-
55-
?>

0 commit comments

Comments
 (0)