summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDharman <tekiela246@gmail.com>2020-12-10 23:50:02 +0000
committerNikita Popov <nikita.ppv@gmail.com>2020-12-11 09:53:20 +0100
commit54a63d91b892653260c93b3604f100db448cfbde (patch)
treed15f87ff1138e8592ba2f09f06e6b3b19479a818
parent9e3ba775b7de7d7647c488beb9e302d03690f955 (diff)
downloadphp-git-54a63d91b892653260c93b3604f100db448cfbde.tar.gz
Fix test cases for MariaDB
And remove unnecessary try-catch. Closes GH-6505.
-rw-r--r--ext/pdo_mysql/tests/pdo_mysql_attr_oracle_nulls.phpt2
-rw-r--r--ext/pdo_mysql/tests/pdo_mysql_exec_load_data.phpt65
-rw-r--r--ext/pdo_mysql/tests/pdo_mysql_prepare_load_data.phpt75
3 files changed, 57 insertions, 85 deletions
diff --git a/ext/pdo_mysql/tests/pdo_mysql_attr_oracle_nulls.phpt b/ext/pdo_mysql/tests/pdo_mysql_attr_oracle_nulls.phpt
index 6e98c85bdf..1b6941c583 100644
--- a/ext/pdo_mysql/tests/pdo_mysql_attr_oracle_nulls.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql_attr_oracle_nulls.phpt
@@ -40,7 +40,7 @@ MySQLPDOTest::skip();
$db->setAttribute(PDO::ATTR_ORACLE_NULLS, 1);
$stmt = $db->query('SELECT VERSION() as _version');
$row = $stmt->fetch(PDO::FETCH_ASSOC);
- if ((int)substr($row['_version'], 0, 1) >= 5)
+ if ((int)strtok($row['_version'], '.') >= 5)
$have_procedures = true;
else
$have_procedures = false;
diff --git a/ext/pdo_mysql/tests/pdo_mysql_exec_load_data.phpt b/ext/pdo_mysql/tests/pdo_mysql_exec_load_data.phpt
index b3069eaf00..7a0d6e36a2 100644
--- a/ext/pdo_mysql/tests/pdo_mysql_exec_load_data.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql_exec_load_data.phpt
@@ -64,50 +64,43 @@ if (($row = $stmt->fetch(PDO::FETCH_ASSOC)) && ($row['value'] != '')) {
MySQLPDOTest::createTestTable($db, MySQLPDOTest::detect_transactional_mysql_engine($db));
/* affected rows related */
- try {
- exec_and_count(2, $db, 'DROP TABLE IF EXISTS test', 0);
- exec_and_count(3, $db, sprintf('CREATE TABLE test(id INT NOT NULL PRIMARY KEY, col1 CHAR(10)) ENGINE=%s', PDO_MYSQL_TEST_ENGINE), 0);
+ exec_and_count(2, $db, 'DROP TABLE IF EXISTS test', 0);
+ exec_and_count(3, $db, sprintf('CREATE TABLE test(id INT NOT NULL PRIMARY KEY, col1 CHAR(10)) ENGINE=%s', PDO_MYSQL_TEST_ENGINE), 0);
- $stmt = $db->query("SHOW VARIABLES LIKE 'secure_file_priv'");
- if (($row = $stmt->fetch(PDO::FETCH_ASSOC)) && ($row['value'] != '')) {
- $filename = $row['value'] . DIRECTORY_SEPARATOR . "pdo_mysql_exec_load_data.csv";
- } else {
- $filename = MySQLPDOTest::getTempDir() . DIRECTORY_SEPARATOR . "pdo_mysql_exec_load_data.csv";
- }
+ $stmt = $db->query("SHOW VARIABLES LIKE 'secure_file_priv'");
+ if (($row = $stmt->fetch(PDO::FETCH_ASSOC)) && ($row['value'] != '')) {
+ $filename = $row['value'] . DIRECTORY_SEPARATOR . "pdo_mysql_exec_load_data.csv";
+ } else {
+ $filename = MySQLPDOTest::getTempDir() . DIRECTORY_SEPARATOR . "pdo_mysql_exec_load_data.csv";
+ }
- $fp = fopen($filename, "w");
- fwrite($fp, "1;foo\n");
- fwrite($fp, "2;bar");
- fclose($fp);
-
- $sql = sprintf("LOAD DATA LOCAL INFILE %s INTO TABLE test FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'", $db->quote($filename));
-
- if (exec_and_count(4, $db, $sql, 2)) {
-
- $stmt = $db->query('SELECT id, col1 FROM test ORDER BY id ASC');
- $expected = array(array("id" => 1, "col1" => "foo"), array("id" => 2, "col1" => "bar"));
- $ret = $stmt->fetchAll(PDO::FETCH_ASSOC);
- foreach ($expected as $offset => $exp) {
- foreach ($exp as $key => $value) {
- if ($ret[$offset][$key] != $value) {
- printf("Results seem wrong, check manually\n");
- var_dump($ret);
- var_dump($expected);
- break 2;
- }
+ $fp = fopen($filename, "w");
+ fwrite($fp, "1;foo\n");
+ fwrite($fp, "2;bar");
+ fclose($fp);
+
+ $sql = sprintf("LOAD DATA LOCAL INFILE %s INTO TABLE test FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'", $db->quote($filename));
+
+ if (exec_and_count(4, $db, $sql, 2)) {
+
+ $stmt = $db->query('SELECT id, col1 FROM test ORDER BY id ASC');
+ $expected = array(array("id" => 1, "col1" => "foo"), array("id" => 2, "col1" => "bar"));
+ $ret = $stmt->fetchAll(PDO::FETCH_ASSOC);
+ foreach ($expected as $offset => $exp) {
+ foreach ($exp as $key => $value) {
+ if ($ret[$offset][$key] != $value) {
+ printf("Results seem wrong, check manually\n");
+ var_dump($ret);
+ var_dump($expected);
+ break 2;
}
}
}
-
- unlink($filename);
-
- } catch (PDOException $e) {
- printf("[001] %s, [%s] %s\n",
- $e->getMessage(),
- $db->errorCode(), implode(' ', $db->errorInfo()));
}
+ unlink($filename);
+
print "done!";
?>
--CLEAN--
diff --git a/ext/pdo_mysql/tests/pdo_mysql_prepare_load_data.phpt b/ext/pdo_mysql/tests/pdo_mysql_prepare_load_data.phpt
index 62214541d7..1b40d7d7a2 100644
--- a/ext/pdo_mysql/tests/pdo_mysql_prepare_load_data.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql_prepare_load_data.phpt
@@ -65,53 +65,38 @@ if (($row = $stmt->fetch(PDO::FETCH_ASSOC)) && ($row['value'] != '')) {
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);
MySQLPDOTest::createTestTable($db, MySQLPDOTest::detect_transactional_mysql_engine($db));
- /* affected rows related */
- try {
-
- exec_and_count(2, $db, 'DROP TABLE IF EXISTS test', 0);
- exec_and_count(3, $db, sprintf('CREATE TABLE test(id INT NOT NULL PRIMARY KEY, col1 CHAR(10)) ENGINE=%s', PDO_MYSQL_TEST_ENGINE), 0);
-
- $stmt = $db->query("SHOW VARIABLES LIKE 'secure_file_priv'");
- if (($row = $stmt->fetch(PDO::FETCH_ASSOC)) && ($row['value'] != '')) {
- $filename = $row['value'] . DIRECTORY_SEPARATOR . "pdo_mysql_exec_load_data.csv";
- } else {
- $filename = MySQLPDOTest::getTempDir() . DIRECTORY_SEPARATOR . "pdo_mysql_exec_load_data.csv";
- }
-
- $fp = fopen($filename, "w");
- fwrite($fp, "1;foo\n");
- fwrite($fp, "2;bar");
- fclose($fp);
-
- // This should fail, the PS protocol should not support it.
- // mysqlnd will give 2014 as a follow-up of the fallback logic
- // libmysql will give a little more precise 2030 error code
- // However, you get an error and the big question is what happens to the line
- $stmt = $db->prepare(sprintf("LOAD DATA INFILE %s INTO TABLE test FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'", $db->quote($filename)));
- if (!$stmt->execute()) {
- printf("[004] [%d] %s\n", $stmt->errorCode(), var_export($stmt->errorInfo(), true));
- }
+ exec_and_count(2, $db, 'DROP TABLE IF EXISTS test', 0);
+ exec_and_count(3, $db, sprintf('CREATE TABLE test(id INT NOT NULL PRIMARY KEY, col1 CHAR(10)) ENGINE=%s', PDO_MYSQL_TEST_ENGINE), 0);
+
+ $stmt = $db->query("SHOW VARIABLES LIKE 'secure_file_priv'");
+ if (($row = $stmt->fetch(PDO::FETCH_ASSOC)) && ($row['value'] != '')) {
+ $filename = $row['value'] . DIRECTORY_SEPARATOR . "pdo_mysql_exec_load_data.csv";
+ } else {
+ $filename = MySQLPDOTest::getTempDir() . DIRECTORY_SEPARATOR . "pdo_mysql_exec_load_data.csv";
+ }
- // Check the line
- $stmt = $db->query("SELECT 1 as 'one'");
- if ($stmt->errorCode() != '0000') {
- printf("[005] [%d] %s\n", $stmt->errorCode(), var_export($stmt->errorInfo(), true));
- } else {
- $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
- if (!isset($rows[0]['one']) || $rows[0]['one'] != 1)
- printf("[006] [%d] %s\n", $stmt->errorCode(), var_export($stmt->errorInfo(), true));
- }
+ $fp = fopen($filename, "w");
+ fwrite($fp, "1;foo\n");
+ fwrite($fp, "2;bar");
+ fclose($fp);
- unlink($filename);
+ $stmt = $db->prepare(sprintf("LOAD DATA INFILE %s INTO TABLE test FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'", $db->quote($filename)));
+ if (!$stmt->execute()) {
+ printf("[004] [%d] %s\n", $stmt->errorCode(), var_export($stmt->errorInfo(), true));
+ }
- } catch (PDOException $e) {
- printf("[001] %s, [%s] %s (%s)\n",
- $e->getMessage(),
- $db->errorCode(),
- implode(' ', $db->errorInfo()),
- (isset($stmt)) ? implode(' ', $stmt->errorInfo()) : 'N/A');
+ // Check the line
+ $stmt = $db->query("SELECT 1 as 'one'");
+ if ($stmt->errorCode() != '0000') {
+ printf("[005] [%d] %s\n", $stmt->errorCode(), var_export($stmt->errorInfo(), true));
+ } else {
+ $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
+ if (!isset($rows[0]['one']) || $rows[0]['one'] != 1)
+ printf("[006] [%d] %s\n", $stmt->errorCode(), var_export($stmt->errorInfo(), true));
}
+ unlink($filename);
+
print "done!";
?>
--CLEAN--
@@ -120,10 +105,4 @@ require __DIR__ . '/mysql_pdo_test.inc';
MySQLPDOTest::dropTestTable();
?>
--EXPECTF--
-Warning: PDOStatement::execute(): SQLSTATE[HY000]: General error: %s in %s on line %d
-[004] [0] array (
- 0 => 'HY000',
- 1 => %d,
- 2 => %s,
-)
done!