Skip to content

Commit

Permalink
Improve and fix ext/odbc tests
Browse files Browse the repository at this point in the history
Some test failures are fixed, parallelization is enabled, section order is fixed.
  • Loading branch information
kocsismate committed Aug 23, 2023
1 parent 985511e commit 8726ae0
Show file tree
Hide file tree
Showing 30 changed files with 207 additions and 177 deletions.
1 change: 0 additions & 1 deletion ext/odbc/tests/CONFLICTS

This file was deleted.

8 changes: 7 additions & 1 deletion ext/odbc/tests/bug44618.phpt
Expand Up @@ -3,7 +3,13 @@ Bug #44618 (Fetching may rely on uninitialized data)
--EXTENSIONS--
odbc
--SKIPIF--
<?php include 'skipif.inc'; ?>
<?php
include 'skipif.inc';

if (ODBC_TYPE === "unixODBC") {
die("skip Fails with unixODBC");
}
?>
--FILE--
<?php
include __DIR__ . "/config.inc";
Expand Down
32 changes: 15 additions & 17 deletions ext/odbc/tests/bug47803.phpt
Expand Up @@ -9,13 +9,13 @@ odbc

include __DIR__ . "/config.inc";

$create_table = "CREATE TABLE FOO(
$create_table = "CREATE TABLE bug47803(
[PAR_ID] [int] NOT NULL,
[PAR_INT] [int] NULL,
[PAR_CHR] [varchar](500) NULL
)";

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

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

odbc_exec($link, 'CREATE DATABASE odbcTEST');
odbc_exec($link, $create_table);
odbc_exec($link, $inserts);

Expand All @@ -53,7 +52,7 @@ $upd_params = array(
array('id'=>7, 'name'=>'test 7'),
array('id'=>6, 'name'=>'test 6'),
);
$sql = "UPDATE FOO
$sql = "UPDATE bug47803
SET [PAR_CHR] = ?
WHERE [PAR_ID] = ?";
$result = odbc_prepare($link, $sql);
Expand All @@ -69,7 +68,7 @@ foreach ($upd_params as &$k) {
}
odbc_free_result($result);

$sql = "SELECT * FROM FOO WHERE [PAR_ID] = ?";
$sql = "SELECT * FROM bug47803 WHERE [PAR_ID] = ?";
$result = odbc_prepare($link, $sql);
if (!$result) {
print ('[sql] prep: '.$sql);
Expand All @@ -89,6 +88,17 @@ out:
if ($result) odbc_free_result($result);
odbc_close($link);

?>
--CLEAN--
<?php
include 'config.inc';

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

odbc_exec($conn, 'DROP TABLE bug47803');

odbc_close($conn);

?>
--EXPECT--
array(3) {
Expand Down Expand Up @@ -171,15 +181,3 @@ array(3) {
["PAR_CHR"]=>
string(6) "test 7"
}
--CLEAN--
<?php
include 'config.inc';

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

odbc_exec($conn, 'DROP TABLE FOO');
odbc_exec($conn, 'DROP DATABASE odbcTEST');

odbc_close($conn);

?>
42 changes: 26 additions & 16 deletions ext/odbc/tests/bug60616.phpt
Expand Up @@ -2,12 +2,23 @@
odbc_exec(): Getting accurate unicode data from query
--EXTENSIONS--
odbc
mbstring
--SKIPIF--
<?php include 'skipif.inc'; ?>
<?php
if ("unixODBC" != ODBC_TYPE) {
die("skip ODBC_TYPE != unixODBC");
include 'skipif.inc';
if ("unixODBC" != ODBC_TYPE) {
die("skip ODBC_TYPE != unixODBC");
}

$conn = odbc_connect($dsn, $user, $pass);
$result = @odbc_exec($conn, "SELECT @@Version");
if ($result) {
$array = odbc_fetch_array($result);
$info = (string) reset($array);
if (str_contains($info, "Microsoft SQL Server")) {
echo "skip Doesn't work with MS SQL";
}
}
?>
--FILE--
<?php
Expand All @@ -23,14 +34,12 @@ ini_set("odbc.defaultlrl", 4); // Set artificially low

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

odbc_exec($conn, 'CREATE DATABASE odbcTEST ENCODING=\'EUC_JP\'');
odbc_exec($conn, 'CREATE DATABASE bug60616Test ENCODING=\'EUC_JP\'');
odbc_exec($conn, 'USE bug60616Test');
odbc_exec($conn, 'CREATE TABLE bug60616 (ID INT, CHAR_COL CHAR(200), VARCHAR_COL VARCHAR(200), TEXT_COL TEXT)');
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')");

odbc_exec($conn, 'CREATE TABLE FOO (ID INT, CHAR_COL CHAR(200), VARCHAR_COL VARCHAR(200), TEXT_COL TEXT)');

odbc_exec($conn, "INSERT INTO FOO(ID, CHAR_COL, VARCHAR_COL, TEXT_COL) VALUES (1, '$euc_jp', '$euc_jp', '$euc_jp')");
odbc_exec($conn, "INSERT INTO FOO(ID, CHAR_COL, VARCHAR_COL, TEXT_COL) VALUES (2, '$ascii', '$ascii', '$ascii')");

$res = odbc_exec($conn, 'SELECT * FROM FOO ORDER BY ID ASC');
$res = odbc_exec($conn, 'SELECT * FROM bug60616 ORDER BY ID ASC');

while(odbc_fetch_row($res)) {
$char_col = odbc_result($res, "CHAR_COL");
Expand Down Expand Up @@ -61,16 +70,17 @@ while(odbc_fetch_row($res)) {
}

?>
--EXPECT--
EUC-JP matched
ASCII matched
--CLEAN--
<?php
include 'config.inc';

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

odbc_exec($conn, 'DROP TABLE FOO');
odbc_exec($conn, 'DROP DATABASE odbcTEST');

odbc_exec($conn, 'USE bug60616Test');
odbc_exec($conn, 'DROP TABLE bug60616');
odbc_exec($conn, 'DROP DATABASE bug60616Test');
?>
--EXPECT--
EUC-JP matched
ASCII matched

18 changes: 7 additions & 11 deletions ext/odbc/tests/bug68087.phpt
Expand Up @@ -14,14 +14,11 @@ $id_2_date = '2014-09-24';

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

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

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

odbc_exec($conn, "INSERT INTO FOO(ID, VARCHAR_COL, DATE_COL) VALUES (1, 'hello', '$id_1_date')");
odbc_exec($conn, "INSERT INTO FOO(ID, VARCHAR_COL, DATE_COL) VALUES (2, 'helloagain', '$id_2_date')");

$res = odbc_exec($conn, 'SELECT * FROM FOO ORDER BY ID ASC');
$res = odbc_exec($conn, 'SELECT * FROM bug68087 ORDER BY ID ASC');

while(odbc_fetch_row($res)) {
$id = odbc_result($res, "ID");
Expand All @@ -44,16 +41,15 @@ while(odbc_fetch_row($res)) {
}

?>
--EXPECT--
Date_1 matched
Date_2 matched
--CLEAN--
<?php
include 'config.inc';

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

odbc_exec($conn, 'DROP TABLE FOO');
odbc_exec($conn, 'DROP DATABASE odbcTEST');
odbc_exec($conn, 'DROP TABLE bug68087');

?>
--EXPECT--
Date_1 matched
Date_2 matched
19 changes: 8 additions & 11 deletions ext/odbc/tests/bug69354.phpt
Expand Up @@ -11,13 +11,11 @@ include 'config.inc';

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

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

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

odbc_exec($conn, "INSERT INTO FOO(ID, VARCHAR_COL) VALUES (1, '" . str_repeat("a", 100) . "')");

$res = odbc_exec($conn,"select VARCHAR_COL from FOO");
$res = odbc_exec($conn,"SELECT VARCHAR_COL FROM bug69354");
if ($res) {
if (odbc_fetch_row($res)) {
$ret = odbc_result($res,'varchar_col');
Expand All @@ -27,17 +25,16 @@ if ($res) {
}
}
?>
--EXPECT--
100
a
a
--CLEAN--
<?php
include 'config.inc';

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

odbc_exec($conn, 'DROP TABLE FOO');
odbc_exec($conn, 'DROP DATABASE odbcTEST');
odbc_exec($conn, 'DROP TABLE bug69354');

?>
--EXPECT--
100
a
a
21 changes: 10 additions & 11 deletions ext/odbc/tests/bug69975.phpt
Expand Up @@ -9,26 +9,25 @@ odbc
include 'config.inc';

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

$result = odbc_exec($conn, "SELECT VARCHAR_COL FROM FOO");
$result = odbc_exec($conn, "SELECT VARCHAR_COL FROM bug69975");
var_dump(odbc_fetch_array($result));

echo "ready";
?>
--CLEAN--
<?php
include 'config.inc';

$conn = odbc_connect($dsn, $user, $pass);
odbc_exec($conn, 'DROP TABLE bug69975');
?>
--EXPECT--
array(1) {
["VARCHAR_COL"]=>
string(3) "foo"
}
ready
--CLEAN--
<?php
include 'config.inc';

$conn = odbc_connect($dsn, $user, $pass);
odbc_exec($conn, 'DROP TABLE FOO');
odbc_exec($conn, 'DROP DATABASE odbcTEST');
?>
21 changes: 9 additions & 12 deletions ext/odbc/tests/bug71171.phpt
Expand Up @@ -11,33 +11,30 @@ include 'config.inc';

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

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

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

odbc_exec($conn, "INSERT INTO FOO(ID, VARCHAR_COL) VALUES (1, '" . chr(0x81) . "')");

$res = odbc_exec($conn,"SELECT ID FROM FOO WHERE VARCHAR_COL = '" . chr(0x81) . "'");
$res = odbc_exec($conn,"SELECT ID FROM bug71171 WHERE VARCHAR_COL = '" . chr(0x81) . "'");
if ($res) {
while($record = odbc_fetch_array($res)) var_dump($record);
}

odbc_close($conn);
?>
--EXPECT--
array(1) {
["ID"]=>
string(1) "1"
}
--CLEAN--
<?php
include 'config.inc';

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

odbc_exec($conn, 'DROP TABLE FOO');
odbc_exec($conn, 'DROP DATABASE odbcTEST');
odbc_exec($conn, 'DROP TABLE bug71171');

odbc_close($conn);

?>
--EXPECT--
array(1) {
["ID"]=>
string(1) "1"
}
2 changes: 2 additions & 0 deletions ext/odbc/tests/bug73448.phpt
Expand Up @@ -4,6 +4,8 @@ Bug #73448 odbc_errormsg returns trash, always 513 bytes
odbc
--SKIPIF--
<?php include 'skipif.inc'; ?>
--CONFLICTS--
odbc
--FILE--
<?php

Expand Down
27 changes: 13 additions & 14 deletions ext/odbc/tests/bug73725.phpt
Expand Up @@ -13,8 +13,7 @@ $conn = odbc_connect($dsn, $user, $pass);

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

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

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

Expand All @@ -24,6 +23,17 @@ var_dump($r);
$r = odbc_fetch_array($rc);
var_dump($r);

?>
--CLEAN--
<?php
include 'config.inc';

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

odbc_exec($conn, 'DROP TABLE bug73725');

odbc_close($conn);

?>
--EXPECT--
array(3) {
Expand All @@ -38,18 +48,7 @@ array(3) {
["i"]=>
string(3) "102"
["txt"]=>
string(12) "Müsliriegel"
string(17) "Lorem ipsum dolor"
["k"]=>
string(2) "34"
}
--CLEAN--
<?php
include 'config.inc';

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

odbc_exec($conn, 'DROP TABLE bug73725');

odbc_close($conn);

?>

0 comments on commit 8726ae0

Please sign in to comment.