summaryrefslogtreecommitdiff
path: root/ext/pdo_mysql/tests
diff options
context:
space:
mode:
authorRemi Collet <remi@php.net>2012-12-12 16:53:18 +0100
committerRemi Collet <remi@php.net>2012-12-12 16:53:18 +0100
commit6e4cfa18f768c385e1945fcb4776cf6ad0cecdfc (patch)
tree5ebc033d08b05577a012dc3709093cd212e2fd10 /ext/pdo_mysql/tests
parent9c96fe52d95a6674f90dc8efd4e2c054818c96ad (diff)
downloadphp-git-6e4cfa18f768c385e1945fcb4776cf6ad0cecdfc.tar.gz
Really fix test pdo_mysql_class_constants.phpt
- with mysqlnd, constant always present - with mysqli, check client library version - without mysqlnd and without mysqli skip the test if no connection use connection to check client library Note : MySQLPDOTest::getClientVersion() is broken with mysqlnd as PDO::ATTR_CLIENT_VERSION return "mysqlnd 5.0.11-dev - 20120503..." so, getClientVersion() return "11"
Diffstat (limited to 'ext/pdo_mysql/tests')
-rw-r--r--ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt15
1 files changed, 12 insertions, 3 deletions
diff --git a/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt b/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt
index e52e4b54e7..ee0f12358d 100644
--- a/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt
@@ -3,6 +3,11 @@ PDO MySQL specific class constants
--SKIPIF--
<?php
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
+if (!extension_loaded('mysqli') && !extension_loaded('mysqlnd')) {
+ /* Need connection to detect library version */
+ require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
+ MySQLPDOTest::skip();
+}
?>
--FILE--
<?php
@@ -29,9 +34,13 @@ require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
$expected['MYSQL_ATTR_READ_DEFAULT_GROUP'] = true;
}
- if (extension_loaded('mysqli')
- && (stristr(mysqli_get_client_info(), "mysqlnd") || mysqli_get_client_version() > 50605)
- || MySQLPDOTest::getClientVersion(MySQLPDOTest::factory()) > 50605) {
+ if (extension_loaded('mysqlnd')) {
+ $expected['MYSQL_ATTR_SERVER_PUBLIC_KEY'] = true;
+ } else if (extension_loaded('mysqli')) {
+ if (mysqli_get_client_version() > 50605) {
+ $expected['MYSQL_ATTR_SERVER_PUBLIC_KEY'] = true;
+ }
+ } else if (MySQLPDOTest::getClientVersion(MySQLPDOTest::factory()) > 50605) {
/* XXX the MySQL client library version isn't exposed with any
constants, the single possibility is to use the PDO::getAttribute().
This however will fail with no connection. */