diff options
| author | Andrey Hristov <andrey@php.net> | 2008-03-18 16:58:43 +0000 |
|---|---|---|
| committer | Andrey Hristov <andrey@php.net> | 2008-03-18 16:58:43 +0000 |
| commit | e53f44b9bd98c11517f52b737ed220f4521c0871 (patch) | |
| tree | 3fc6f8172a86c2aa9fadc47112ed4b01d6c688e4 /ext/mysqli/tests | |
| parent | da591e8eca232ee7541bbb1dbf5c3be6f32ba284 (diff) | |
| download | php-git-e53f44b9bd98c11517f52b737ed220f4521c0871.tar.gz | |
MFB - Bug #44352 mysqli_connect_error() false negative for host errors
Diffstat (limited to 'ext/mysqli/tests')
23 files changed, 683 insertions, 38 deletions
diff --git a/ext/mysqli/tests/057.phpt b/ext/mysqli/tests/057.phpt index 1bb17b6961..a6a9cb6f97 100644 --- a/ext/mysqli/tests/057.phpt +++ b/ext/mysqli/tests/057.phpt @@ -62,6 +62,24 @@ require_once('skipifconnectfailure.inc'); bool(true) bool(true) object(mysqli_stmt)#%d (%d) { + ["affected_rows"]=> + int(-1) + ["insert_id"]=> + int(0) + ["num_rows"]=> + int(0) + ["param_count"]=> + int(0) + ["field_count"]=> + int(1) + ["errno"]=> + int(0) + ["error"]=> + string(0) "" + ["sqlstate"]=> + string(5) "00000" + ["id"]=> + int(3) } bool(true) bool(false) @@ -91,4 +109,4 @@ array(1) { [0]=> unicode(1) "1" } -done!
\ No newline at end of file +done! diff --git a/ext/mysqli/tests/bug34810.phpt b/ext/mysqli/tests/bug34810.phpt index 8af0790e49..99bc7b6d76 100644 --- a/ext/mysqli/tests/bug34810.phpt +++ b/ext/mysqli/tests/bug34810.phpt @@ -16,7 +16,8 @@ class DbConnection { var_dump($link); $link = mysqli_init(); - var_dump($link); + /* @ is to supress 'Property access is not allowed yet' */ + @var_dump($link); $mysql = new mysqli($host, $user, $passwd, $db, $port, $socket); $mysql->query("DROP TABLE IF EXISTS test_warnings"); @@ -33,10 +34,84 @@ $db->connect(); echo "Done\n"; ?> --EXPECTF-- -object(mysqli)#%d (0) { +object(mysqli)#%d (%d) { + ["affected_rows"]=> + int(0) + ["client_info"]=> + string(%d) "%s" + ["client_version"]=> + int(%d) + ["connect_errno"]=> + int(0) + ["connect_error"]=> + string(0) "" + ["errno"]=> + int(0) + ["error"]=> + string(0) "" + ["field_count"]=> + int(0) + ["host_info"]=> + string(42) "MySQL host info: Localhost via UNIX socket" + ["info"]=> + NULL + ["insert_id"]=> + int(0) + ["server_info"]=> + string(%d) "%s" + ["server_version"]=> + int(%d) + ["sqlstate"]=> + string(5) "00000" + ["protocol_version"]=> + int(10) + ["thread_id"]=> + int(%d) + ["warning_count"]=> + int(0) } -object(mysqli)#%d (0) { +object(mysqli)#%d (%d) { + ["affected_rows"]=> + NULL + ["client_info"]=> + string(%d) "%s" + ["client_version"]=> + int(%d) + ["connect_errno"]=> + int(0) + ["connect_error"]=> + string(0) "" + ["errno"]=> + int(0) + ["error"]=> + string(0) "" + ["field_count"]=> + NULL + ["host_info"]=> + NULL + ["info"]=> + NULL + ["insert_id"]=> + NULL + ["server_info"]=> + NULL + ["server_version"]=> + NULL + ["sqlstate"]=> + NULL + ["protocol_version"]=> + NULL + ["thread_id"]=> + NULL + ["warning_count"]=> + NULL } -object(mysqli_warning)#%d (0) { +object(mysqli_warning)#%d (%d) { + ["message"]=> + string(25) "Column 'a' cannot be null" + ["sqlstate"]=> + string(5) "HY000" + ["errno"]=> + int(1048) } Done diff --git a/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt b/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt index fb34d6ce52..d6d2b755b4 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt @@ -46,13 +46,13 @@ require_once('skipifconnectfailure.inc'); printf("ok\n"); printf("\nClass variables:\n"); - $variables = get_class_vars(get_class($driver)); + $variables = array_keys(get_class_vars(get_class($driver))); sort($variables); foreach ($variables as $k => $var) printf("%s\n", $var); printf("\nObject variables:\n"); - $variables = get_object_vars($driver); + $variables = array_keys(get_object_vars($driver)); foreach ($variables as $k => $var) printf("%s\n", $var); @@ -99,8 +99,20 @@ Methods: ok Class variables: +client_info +client_version +driver_version +embedded +reconnect +report_mode Object variables: +client_info +client_version +driver_version +embedded +reconnect +report_mode Magic, magic properties: driver->client_info = '%s' @@ -112,4 +124,4 @@ driver->reconnect = '' Access to undefined properties: driver->unknown = '' -done!
\ No newline at end of file +done! diff --git a/ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt b/ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt index 60db4a8fdf..8a59549e50 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt @@ -37,4 +37,58 @@ isIteratable: no Modifiers: '%d' Parent Class: '' Extension: 'mysqli' -done!
\ No newline at end of file + +Inspecting property 'client_info' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'client_version' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'driver_version' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'embedded' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'reconnect' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'report_mode' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 +Default property 'client_info' +Default property 'client_version' +Default property 'driver_version' +Default property 'embedded' +Default property 'reconnect' +Default property 'report_mode' +done! diff --git a/ext/mysqli/tests/mysqli_class_mysqli_interface.phpt b/ext/mysqli/tests/mysqli_class_mysqli_interface.phpt index 88a6a96dbd..c1dc6a590a 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_interface.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_interface.phpt @@ -92,13 +92,13 @@ require_once('skipifconnectfailure.inc'); printf("ok\n"); printf("\nClass variables:\n"); - $variables = get_class_vars(get_class($mysqli)); + $variables = array_keys(get_class_vars(get_class($mysqli))); sort($variables); foreach ($variables as $k => $var) printf("%s\n", $var); printf("\nObject variables:\n"); - $variables = get_object_vars($mysqli); + $variables = array_keys(get_object_vars($mysqli)); foreach ($variables as $k => $var) printf("%s\n", $var); @@ -213,8 +213,42 @@ Methods: ok Class variables: +affected_rows +client_info +client_version +connect_errno +connect_error +errno +error +field_count +host_info +info +insert_id +protocol_version +server_info +server_version +sqlstate +thread_id +warning_count Object variables: +affected_rows +client_info +client_version +connect_errno +connect_error +errno +error +field_count +host_info +info +insert_id +server_info +server_version +sqlstate +protocol_version +thread_id +warning_count Magic, magic properties: mysqli->affected_rows = '%s'/integer ('%s'/integer) @@ -250,8 +284,42 @@ Methods: ok Class variables: +affected_rows +client_info +client_version +connect_errno +connect_error +errno +error +field_count +host_info +info +insert_id +protocol_version +server_info +server_version +sqlstate +thread_id +warning_count Object variables: +affected_rows +client_info +client_version +connect_errno +connect_error +errno +error +field_count +host_info +info +insert_id +server_info +server_version +sqlstate +protocol_version +thread_id +warning_count Magic, magic properties: mysqli->affected_rows = '%s'/integer ('%s'/integer) diff --git a/ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt b/ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt index 68ae1a725f..51dc05ed5a 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt @@ -24,7 +24,7 @@ if ($MYSQLND_VERSION < 576) require_once('reflection_tools.inc'); $class = new ReflectionClass('mysqli'); inspectClass($class); - print "done!"; + print "done!\n"; ?> --EXPECTF-- Inspecting class 'mysqli' @@ -646,4 +646,158 @@ returnsReference: no Modifiers: 256 Number of Parameters: 0 Number of Required Parameters: 0 + +Inspecting property 'affected_rows' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'client_info' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'client_version' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'connect_errno' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'connect_error' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'errno' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'error' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'field_count' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'host_info' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'info' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'insert_id' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'protocol_version' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'server_info' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'server_version' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'sqlstate' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'thread_id' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'warning_count' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 +Default property 'affected_rows' +Default property 'client_info' +Default property 'client_version' +Default property 'connect_errno' +Default property 'connect_error' +Default property 'errno' +Default property 'error' +Default property 'field_count' +Default property 'host_info' +Default property 'info' +Default property 'insert_id' +Default property 'protocol_version' +Default property 'server_info' +Default property 'server_version' +Default property 'sqlstate' +Default property 'thread_id' +Default property 'warning_count' done! + diff --git a/ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt b/ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt index 10edac8f0e..cd4206510e 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt @@ -67,13 +67,13 @@ require_once('skipifconnectfailure.inc'); printf("\nClass variables:\n"); - $variables = get_class_vars(get_class($mysqli_result)); + $variables = array_keys(get_class_vars(get_class($mysqli_result))); sort($variables); foreach ($variables as $k => $var) printf("%s\n", $var); printf("\nObject variables:\n"); - $variables = get_object_vars($mysqli_result); + $variables = array_keys(get_object_vars($mysqli_result)); foreach ($variables as $k => $var) printf("%s\n", $var); @@ -162,8 +162,18 @@ Methods: ok Class variables: +current_field +field_count +lengths +num_rows +type Object variables: +current_field +field_count +lengths +num_rows +type Magic, magic properties: mysqli_result->current_field = '0'/integer ('0'/integer) @@ -189,8 +199,18 @@ Methods: ok Class variables: +current_field +field_count +lengths +num_rows +type Object variables: +current_field +field_count +lengths +num_rows +type Magic, magic properties: mysqli_result->current_field = '0'/integer ('0'/integer) @@ -207,4 +227,4 @@ Constructor: Warning: mysqli_result::mysqli_result() expects parameter 2 to be long, Unicode string given in %s on line %d Warning: mysqli_result::mysqli_result() expects parameter 1 to be mysqli, Unicode string given in %s on line %d -done!
\ No newline at end of file +done! diff --git a/ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt b/ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt index dd27e2e1d2..5f26d1eb5d 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt @@ -279,4 +279,49 @@ returnsReference: no Modifiers: %d Number of Parameters: 0 Number of Required Parameters: 0 -done!
\ No newline at end of file + +Inspecting property 'current_field' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'field_count' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'lengths' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'num_rows' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'type' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 +Default property 'current_field' +Default property 'field_count' +Default property 'lengths' +Default property 'num_rows' +Default property 'type' +done! diff --git a/ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt b/ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt index 812399de80..cc604aaef0 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt @@ -67,13 +67,13 @@ Interface of the class mysqli_stmt printf("ok\n"); printf("\nClass variables:\n"); - $variables = get_class_vars(get_class($stmt)); + $variables = array_keys(get_class_vars(get_class($stmt))); sort($variables); foreach ($variables as $k => $var) printf("%s\n", $var); printf("\nObject variables:\n"); - $variables = get_object_vars($stmt); + $variables = array_keys(get_object_vars($stmt)); foreach ($variables as $k => $var) printf("%s\n", $var); @@ -138,8 +138,26 @@ Methods: ok Class variables: +affected_rows +errno +error +field_count +id +insert_id +num_rows +param_count +sqlstate Object variables: +affected_rows +insert_id +num_rows +param_count +field_count +errno +error +sqlstate +id Magic, magic properties: @@ -176,8 +194,26 @@ Methods: ok Class variables: +affected_rows +errno +error +field_count +id +insert_id +num_rows +param_count +sqlstate Object variables: +affected_rows +insert_id +num_rows +param_count +field_count +errno +error +sqlstate +id Magic, magic properties: @@ -205,4 +241,4 @@ stmt->unknown = '13' Prepare using the constructor: Warning: mysqli_stmt::mysqli_stmt() expects parameter 2 to be binary string, object given in %s on line %d -done!
\ No newline at end of file +done! diff --git a/ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt b/ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt index 738aa46ed0..cb690437ae 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt @@ -24,7 +24,7 @@ if ($MYSQLND_VERSION < 576) require_once('reflection_tools.inc'); $class = new ReflectionClass('mysqli_warning'); inspectClass($class); - print "done!"; + print "done!\n"; ?> --EXPECTF-- Inspecting class 'mysqli_warning' @@ -86,4 +86,31 @@ returnsReference: no Modifiers: %d Number of Parameters: 0 Number of Required Parameters: 0 -done!
\ No newline at end of file + +Inspecting property 'errno' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'message' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 + +Inspecting property 'sqlstate' +isPublic: yes +isPrivate: no +isProtected: no +isStatic: no +isDefault: yes +Modifiers: 256 +Default property 'errno' +Default property 'message' +Default property 'sqlstate' +done! diff --git a/ext/mysqli/tests/mysqli_connect_oo.phpt b/ext/mysqli/tests/mysqli_connect_oo.phpt index 3c76b6788c..63660fd2b6 100644 --- a/ext/mysqli/tests/mysqli_connect_oo.phpt +++ b/ext/mysqli/tests/mysqli_connect_oo.phpt @@ -50,17 +50,32 @@ new mysqli() ini_set('mysqli.default_host', $host); if (!is_object($mysqli = new mysqli()) || (0 !== mysqli_connect_errno())) { - printf("[008] Usage of mysqli.default_host failed\n") ; + printf("[012] Failed to create mysqli object\n"); } else { - $mysqli->close(); + // There shall be NO connection! Using new mysqli(void) shall not use defaults for a connection! + // We had long discussions on this and found that the ext/mysqli API as + // such is broken. As we can't fix it, we document how it has behaved from + // the first day on. And that's: no connection. + if (NULL !== ($tmp = @$mysqli->query('SELECT 1'))) { + printf("[013] There shall be no connection!\n"); + $mysqli->close(); + } } if ($IS_MYSQLND) { ini_set('mysqli.default_host', 'p:' . $host); - if (!is_object($mysqli = new mysqli()) || (0 !== mysqli_connect_errno())) { - printf("[008b] Usage of mysqli.default_host failed\n") ; + if (!is_object($mysqli = new mysqli())) { + // Due to an API flaw this shall not connect + printf("[010] Failed to create mysqli object\n"); } else { - $mysqli->close(); + // There shall be NO connection! Using new mysqli(void) shall not use defaults for a connection! + // We had long discussions on this and found that the ext/mysqli API as + // such is broken. As we can't fix it, we document how it has behaved from + // the first day on. And that's: no connection. + if (NULL !== ($tmp = @$mysqli->query('SELECT 1'))) { + printf("[011] There shall be no connection!\n"); + $mysqli->close(); + } } } @@ -130,8 +145,6 @@ new mysqli() ?> --EXPECTF-- Warning: mysqli::mysqli(): (%d/%d): Access denied for user '%sunknown%s'@'%s' (using password: %s) in %s on line %d - -Warning: mysqli::close(): Couldn't fetch mysqli in %s on line %d ... and now Exceptions Access denied for user '%s'@'%s' (using password: %s) done!
\ No newline at end of file diff --git a/ext/mysqli/tests/mysqli_constants.phpt b/ext/mysqli/tests/mysqli_constants.phpt index 28573f71a9..6cd09c652b 100644 --- a/ext/mysqli/tests/mysqli_constants.phpt +++ b/ext/mysqli/tests/mysqli_constants.phpt @@ -93,13 +93,13 @@ require_once('skipifconnectfailure.inc'); $expected_constants['MYSQLI_OPT_NET_CMD_BUFFER_SIZE'] = true; $expected_constants['MYSQLI_OPT_NET_READ_BUFFER_SIZE'] = true; $expected_constants['MYSQLI_DEBUG_TRACE_ENABLED'] = true; - + } else { $version = mysqli_get_client_version(); } if (($version > 51122 && $version < 60000) || ($version > 60003) || $IS_MYSQLND) { - $expected_constants['MYSQLI_ON_UPDATE_NOW_FLAG'] = true; + $expected_constants['MYSQLI_ON_UPDATE_NOW_FLAG'] = true; } if ($version > 50002) { diff --git a/ext/mysqli/tests/mysqli_debug.phpt b/ext/mysqli/tests/mysqli_debug.phpt index 38e38d14d3..a95fb20972 100644 --- a/ext/mysqli/tests/mysqli_debug.phpt +++ b/ext/mysqli/tests/mysqli_debug.phpt @@ -8,6 +8,12 @@ require_once('skipifconnectfailure.inc'); if (!function_exists('mysqli_debug')) die("skip: mysqli_debug() not available"); + +if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED')) + die("skip: can't say for sure if mysqli_debug works"); + +if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED) + die("skip: debug functionality not enabled"); ?> --FILE-- <?php diff --git a/ext/mysqli/tests/mysqli_debug_append.phpt b/ext/mysqli/tests/mysqli_debug_append.phpt index 7b67d527d6..c9de3c8671 100644 --- a/ext/mysqli/tests/mysqli_debug_append.phpt +++ b/ext/mysqli/tests/mysqli_debug_append.phpt @@ -8,6 +8,12 @@ require_once('skipifconnectfailure.inc'); if (!function_exists('mysqli_debug')) die("skip: mysqli_debug() not available"); + +if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED')) + die("skip: can't say for sure if mysqli_debug works"); + +if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED) + die("skip: debug functionality not enabled"); ?> --FILE-- <?php diff --git a/ext/mysqli/tests/mysqli_debug_control_string.phpt b/ext/mysqli/tests/mysqli_debug_control_string.phpt index 5df3c6068e..13206ed4a3 100644 --- a/ext/mysqli/tests/mysqli_debug_control_string.phpt +++ b/ext/mysqli/tests/mysqli_debug_control_string.phpt @@ -8,6 +8,12 @@ require_once('skipifconnectfailure.inc'); if (!function_exists('mysqli_debug')) die("skip: mysqli_debug() not available"); + +if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED')) + die("skip: can't say for sure if mysqli_debug works"); + +if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED) + die("skip: debug functionality not enabled"); ?> --FILE-- <?php diff --git a/ext/mysqli/tests/mysqli_debug_ini.phpt b/ext/mysqli/tests/mysqli_debug_ini.phpt index 2d1bb08a8e..7a94b40226 100644 --- a/ext/mysqli/tests/mysqli_debug_ini.phpt +++ b/ext/mysqli/tests/mysqli_debug_ini.phpt @@ -8,6 +8,12 @@ require_once('skipifemb.inc'); if (!function_exists('mysqli_debug')) die("skip mysqli_debug() not available"); +if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED')) + die("skip: can't say for sure if mysqli_debug works"); + +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+"); diff --git a/ext/mysqli/tests/mysqli_debug_mysqlnd_control_string.phpt b/ext/mysqli/tests/mysqli_debug_mysqlnd_control_string.phpt index 87047a96d4..8a4d3a184e 100644 --- a/ext/mysqli/tests/mysqli_debug_mysqlnd_control_string.phpt +++ b/ext/mysqli/tests/mysqli_debug_mysqlnd_control_string.phpt @@ -8,6 +8,12 @@ require_once('skipifconnectfailure.inc'); if (!function_exists('mysqli_debug')) die("skip: mysqli_debug() not available"); + +if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED')) + die("skip: can't say for sure if mysqli_debug works"); + +if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED) + die("skip: debug functionality not enabled"); ?> --FILE-- <?php diff --git a/ext/mysqli/tests/mysqli_debug_mysqlnd_only.phpt b/ext/mysqli/tests/mysqli_debug_mysqlnd_only.phpt index 1fd5b6a6cb..34ca27be48 100644 --- a/ext/mysqli/tests/mysqli_debug_mysqlnd_only.phpt +++ b/ext/mysqli/tests/mysqli_debug_mysqlnd_only.phpt @@ -10,6 +10,12 @@ require_once('connect.inc'); if (!function_exists('mysqli_debug')) die("skip mysqli_debug() not available"); +if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED')) + die("skip: can't say for sure if mysqli_debug works"); + +if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED) + die("skip: debug functionality not enabled"); + if (!$IS_MYSQLND) die("skip mysqlnd only test"); ?> diff --git a/ext/mysqli/tests/mysqli_kill.phpt b/ext/mysqli/tests/mysqli_kill.phpt index 2987e8e50d..44a1828d4e 100644 --- a/ext/mysqli/tests/mysqli_kill.phpt +++ b/ext/mysqli/tests/mysqli_kill.phpt @@ -68,7 +68,41 @@ require_once('skipifconnectfailure.inc'); Warning: mysqli_kill(): processid should have positive value in %s on line %d string(%d) "%s" bool(false) -object(mysqli)#%d (0) { +object(mysqli)#%d (%d) { + ["affected_rows"]=> + int(-1) + ["client_info"]=> + string(%d) "%s" + ["client_version"]=> + int(%d) + ["connect_errno"]=> + int(0) + ["connect_error"]=> + string(0) "" + ["errno"]=> + int(2006) + ["error"]=> + string(26) "MySQL server has gone away" + ["field_count"]=> + int(0) + ["host_info"]=> + string(42) "MySQL host info: Localhost via UNIX socket" + ["info"]=> + string(38) "Records: 6 Duplicates: 0 Warnings: 0" + ["insert_id"]=> + int(0) + ["server_info"]=> + string(%d) "%s" + ["server_version"]=> + int(%d) + ["sqlstate"]=> + string(5) "HY000" + ["protocol_version"]=> + int(10) + ["thread_id"]=> + int(%d) + ["warning_count"]=> + int(0) } Warning: mysqli_kill(): processid should have positive value in %s on line %d @@ -93,4 +127,4 @@ array(1) { } Warning: mysqli_kill(): processid should have positive value in %s on line %d -done!
\ No newline at end of file +done! diff --git a/ext/mysqli/tests/mysqli_options.phpt b/ext/mysqli/tests/mysqli_options.phpt index 1bfa5faa3f..c15fbbec9f 100644 --- a/ext/mysqli/tests/mysqli_options.phpt +++ b/ext/mysqli/tests/mysqli_options.phpt @@ -1,14 +1,33 @@ --TEST-- mysqli_options() --SKIPIF-- -<?php +<?php require_once('skipif.inc'); -require_once('skipifemb.inc'); +require_once('skipifemb.inc'); require_once('skipifconnectfailure.inc'); ?> --FILE-- <?php include "connect.inc"; + +/* +TODO: ext/mysqli might lack support for those options which are available +with the libmysql C call mysql_options(). Not sure which of them make +sense to have in PHP and not even sure which of them might be available +already through other measures. + + MYSQL_OPT_COMPRESS (argument: not used) --> Andrey/Ulf: bug, should be added + ? MYSQL_OPT_NAMED_PIPE (argument: not used) ? + MYSQL_OPT_READ_TIMEOUT (argument type: unsigned int *) --> Andrey/Ulf: bug, should be added + MYSQL_OPT_RECONNECT (argument type: my_bool *) --> Andrey/Ulf: might be security risk to have + MYSQL_OPT_SSL_VERIFY_SERVER_CERT (argument type: my_bool *) --> Andrey/Ulf: might be security risk to have + MYSQL_OPT_WRITE_TIMEOUT (argument type: unsigned int *) --> Andrey/Ulf: bug, should be added + MYSQL_REPORT_DATA_TRUNCATION (argument type: my_bool *) --> Andrey: bug, although truncation might only happen with libmysql not with mysqlnd + MYSQL_SECURE_AUTH (argument type: my_bool *) --> Ulf: let's say deprecated, no bug + ? MYSQL_SET_CHARSET_DIR (argument type: char *) ? + MYSQL_SHARED_MEMORY_BASE_NAME (argument type: char *) +*/ + $valid_options = array( MYSQLI_READ_DEFAULT_GROUP, MYSQLI_READ_DEFAULT_FILE, MYSQLI_OPT_CONNECT_TIMEOUT, MYSQLI_OPT_LOCAL_INFILE, MYSQLI_INIT_COMMAND, MYSQLI_READ_DEFAULT_GROUP, diff --git a/ext/mysqli/tests/mysqli_real_connect.phpt b/ext/mysqli/tests/mysqli_real_connect.phpt index b8c033c723..646686c027 100644 --- a/ext/mysqli/tests/mysqli_real_connect.phpt +++ b/ext/mysqli/tests/mysqli_real_connect.phpt @@ -163,7 +163,7 @@ require_once('skipifconnectfailure.inc'); } } - var_dump($link); + @var_dump($link); if (NULL === ($tmp = mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket))) printf("[026] Expecting not NULL, got %s/%s\n", gettype($tmp), $tmp); @@ -173,5 +173,39 @@ require_once('skipifconnectfailure.inc'); --EXPECTF-- Warning: mysqli_real_connect(): (%d/%d): Access denied for user '%s'@'%s' (using password: YES) in %s on line %d object(mysqli)#%d (%d) { + ["affected_rows"]=> + NULL + ["client_info"]=> + string(%d) "%s" + ["client_version"]=> + int(%d) + ["connect_errno"]=> + int(%d) + ["connect_error"]=> + string(%d) "%s" + ["errno"]=> + int(%d) + ["error"]=> + string(%d) "%s" + ["field_count"]=> + NULL + ["host_info"]=> + NULL + ["info"]=> + NULL + ["insert_id"]=> + NULL + ["server_info"]=> + NULL + ["server_version"]=> + NULL + ["sqlstate"]=> + NULL + ["protocol_version"]=> + NULL + ["thread_id"]=> + NULL + ["warning_count"]=> + NULL } done! diff --git a/ext/mysqli/tests/mysqli_result_references.phpt b/ext/mysqli/tests/mysqli_result_references.phpt index 513d1d07b8..291c42ca3b 100644 --- a/ext/mysqli/tests/mysqli_result_references.phpt +++ b/ext/mysqli/tests/mysqli_result_references.phpt @@ -59,7 +59,7 @@ require_once('skipifconnectfailure.inc'); $references[$idx++] = &$res; mysqli_free_result($res); - debug_zval_dump($references); + @debug_zval_dump($references); if (!(mysqli_real_query($link, "SELECT id, label FROM test ORDER BY id ASC LIMIT 1")) || !($res = mysqli_use_result($link))) @@ -199,4 +199,4 @@ array(1) refcount(2){ unicode(1) "a" { 0061 } refcount(1) } } -done!
\ No newline at end of file +done! diff --git a/ext/mysqli/tests/mysqli_stmt_attr_get.phpt b/ext/mysqli/tests/mysqli_stmt_attr_get.phpt index d17e736f05..6156936f34 100644 --- a/ext/mysqli/tests/mysqli_stmt_attr_get.phpt +++ b/ext/mysqli/tests/mysqli_stmt_attr_get.phpt @@ -63,4 +63,4 @@ require_once('skipifconnectfailure.inc'); print "done!"; ?> --EXPECTF-- -done!
\ No newline at end of file +done! |
