]> granicus.if.org Git - php/commitdiff
Really fix test pdo_mysql_class_constants.phpt
authorRemi Collet <remi@php.net>
Wed, 12 Dec 2012 15:53:18 +0000 (16:53 +0100)
committerRemi Collet <remi@php.net>
Wed, 12 Dec 2012 15:53:18 +0000 (16:53 +0100)
- 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"

ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt

index e52e4b54e7cbac4ba79bb4c842c4bb62d509f3fd..ee0f12358d0ba92a5da8bc400e41da69ebf43f98 100644 (file)
@@ -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. */