diff options
| author | Ulf Wendel <uw@php.net> | 2009-07-06 15:43:59 +0000 |
|---|---|---|
| committer | Ulf Wendel <uw@php.net> | 2009-07-06 15:43:59 +0000 |
| commit | 4df1f0d912ca25281b58a108bab8acf42afc1fd5 (patch) | |
| tree | 80f008e302e4d6756347dfc5b1663c3b55075566 | |
| parent | ec603a0c417ddc6b6303c9ea6f77b088832782e0 (diff) | |
| download | php-git-4df1f0d912ca25281b58a108bab8acf42afc1fd5.tar.gz | |
Fixing mysqlnd version test to run some four previously skipped tests. There is no proper way to check the mysqlnd version. The best one can do is adapt the tests to what PHP 5.3 and PHP 6.0 return today.
7 files changed, 80 insertions, 14 deletions
diff --git a/ext/mysqli/tests/connect.inc b/ext/mysqli/tests/connect.inc index 9bb9836b72..f8cd71c2b7 100644 --- a/ext/mysqli/tests/connect.inc +++ b/ext/mysqli/tests/connect.inc @@ -26,9 +26,28 @@ if (!$IS_MYSQLND) { $MYSQLND_VERSION = NULL; } else { + /* + The formatting of the version reported by mysqli_get_client_info() + has changed significantly in the past. To get tests working properly + with PHP 5.3.0 and up, we set everything that looks like prior to + PHP 5.3.0 to version 5.0.4 = 5 * 10000 + 0 * 100 + 4 = 50004. + PHP 5.3.0 reports mysqlnd 5.0.5 dev (= 5 * 10000 + 0 * 100 + 5 = 50005. + */ if (preg_match('@Revision:\s+(\d+)\s*\$@ism', mysqli_get_client_info(), $matches)) { - $MYSQLND_VERSION = (int)$matches[1]; + /* something prior to PHP 5.3.0 */ + $MYSQLND_VERSION = 50004; + } else if (preg_match('@^mysqlnd (\d+)\.(\d+)\.(\d+).*@ism', mysqli_get_client_info(), $matches)) { + /* formatting schema used by PHP 5.3.0 */ + $MYSQLND_VERSION = (int)$matches[1] * 10000 + (int)$matches[2] * 100 + (int)$matches[3]; + } else if (preg_match('@^mysqlnd/PHP 6.0.0-dev@ism', mysqli_get_client_info(), $matches)) { + /* + PHP 6.0 at the time of the first PHP 5.3.0 release. + HEAD and 5.3 have been in sync when 5.3.0 was released. + It is at least 5.0.5-dev. + */ + $MYSQLND_VERSION = 50005; } else { + /* unknown */ $MYSQLND_VERSION = -1; } } diff --git a/ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt b/ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt index 8a59549e50..9141469967 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt @@ -15,8 +15,8 @@ Those tests go into the details and are aimed to be a development tool, no more. */ if (!$IS_MYSQLND) die("skip Test has been written for the latest version of mysqlnd only"); -if ($MYSQLND_VERSION < 576) - die("skip Test requires mysqlnd Revision 576 or newer"); +if ($MYSQLND_VERSION < 50005) + die("skip Test requires mysqlnd Revision 5.0.4 or newer"); ?> --FILE-- <?php diff --git a/ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt b/ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt index 51dc05ed5a..802e524337 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt @@ -15,8 +15,8 @@ Those tests go into the details and are aimed to be a development tool, no more. */ if (!$IS_MYSQLND) die("skip Test has been written for the latest version of mysqlnd only"); -if ($MYSQLND_VERSION < 576) - die("skip Test requires mysqlnd Revision 576 or newer"); +if ($MYSQLND_VERSION < 50004) + die("skip Test requires mysqlnd Revision 5.0.4 or newer"); ?> --FILE-- @@ -423,6 +423,22 @@ Modifiers: 256 Number of Parameters: 0 Number of Required Parameters: 0 +Inspecting method 'poll' +isFinal: no +isAbstract: no +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isConstructor: no +isDestructor: no +isInternal: yes +isUserDefined: no +returnsReference: no +Modifiers: 256 +Number of Parameters: 0 +Number of Required Parameters: 0 + Inspecting method 'prepare' isFinal: no isAbstract: no @@ -503,6 +519,38 @@ Modifiers: 256 Number of Parameters: 0 Number of Required Parameters: 0 +Inspecting method 'reap_async_query' +isFinal: no +isAbstract: no +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isConstructor: no +isDestructor: no +isInternal: yes +isUserDefined: no +returnsReference: no +Modifiers: 256 +Number of Parameters: 0 +Number of Required Parameters: 0 + +Inspecting method 'refresh' +isFinal: no +isAbstract: no +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isConstructor: no +isDestructor: no +isInternal: yes +isUserDefined: no +returnsReference: no +Modifiers: 256 +Number of Parameters: 0 +Number of Required Parameters: 0 + Inspecting method 'rollback' isFinal: no isAbstract: no @@ -799,5 +847,4 @@ Default property 'server_version' Default property 'sqlstate' Default property 'thread_id' Default property 'warning_count' -done! - +done!
\ No newline at end of file diff --git a/ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt b/ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt index 5f26d1eb5d..cf59732497 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt @@ -17,8 +17,8 @@ Those tests go into the details and are aimed to be a development tool, no more. */ if (!$IS_MYSQLND) die("skip Test has been written for the latest version of mysqlnd only"); -if ($MYSQLND_VERSION < 576) - die("skip Test requires mysqlnd Revision 576 or newer"); +if ($MYSQLND_VERSION < 50004) + die("skip Test requires mysqlnd Revision 5.0.4 or newer"); ?> --FILE-- <?php diff --git a/ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt b/ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt index 2b6343c436..45cc38a704 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt @@ -187,5 +187,5 @@ stmt->unknown = '13' Prepare using the constructor: -Warning: mysqli_stmt::__construct() expects parameter 2 to be string, object given in %s on line %d +Warning: mysqli_stmt::__construct() expects parameter 2 to be %binary_string_optional%, object given in %s on line %d done!
\ No newline at end of file diff --git a/ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt b/ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt index cb690437ae..dc0c14e6e8 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt @@ -16,8 +16,8 @@ Those tests go into the details and are aimed to be a development tool, no more. */ if (!$IS_MYSQLND) die("skip Test has been written for the latest version of mysqlnd only"); -if ($MYSQLND_VERSION < 576) - die("skip Test requires mysqlnd Revision 576 or newer"); +if ($MYSQLND_VERSION < 50004) + die("skip Test requires mysqlnd Revision 5.0.4 or newer"); ?> --FILE-- <?php diff --git a/ext/mysqli/tests/mysqli_debug_ini.phpt b/ext/mysqli/tests/mysqli_debug_ini.phpt index 7581385a9f..859a44c32f 100644 --- a/ext/mysqli/tests/mysqli_debug_ini.phpt +++ b/ext/mysqli/tests/mysqli_debug_ini.phpt @@ -15,8 +15,8 @@ if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED) die("skip: debug functionality not enabled"); require_once('connect.inc'); -if (!$IS_MYSQLND || ($MYSQLND_VERSION < 940)) - die("skip needs mysqlnd version/revision 940+"); +if (!$IS_MYSQLND || ($MYSQLND_VERSION < 50004)) + die("skip needs mysqlnd version/revision 5.0.4"); if (!$fp = @fopen('/tmp/mysqli_debug_phpt.trace', 'w')) die("skip PHP cannot create a file in /tmp/mysqli_debug_phpt"); |
