uw Wed Oct 10 10:17:38 2007 UTC Added files: (Branch: PHP_5_3) /php-src/ext/mysqli/tests mysqli_master_query.phpt mysqli_max_links.phpt mysqli_more_results.phpt mysqli_multi_query.phpt mysqli_mysqli_result_invalid_mode.phpt mysqli_next_result.phpt mysqli_no_reconnect.phpt mysqli_num_fields.phpt mysqli_num_rows.phpt mysqli_options_init_command.phpt mysqli_options_openbasedir.phpt mysqli_options.phpt mysqli_pconn_disabled.phpt mysqli_pconnect.phpt mysqli_pconn_kill.phpt mysqli_pconn_limits.phpt mysqli_pconn_max_links.phpt mysqli_pconn_reuse.phpt mysqli_phpinfo.phpt mysqli_ping.phpt mysqli_prepare_no_object.phpt mysqli_prepare.phpt Log: Adding new tests: mysqli_m*.phpt mysqli_n*.phpt mysqli_o*.phpt mysqli_p*.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_master_query.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_master_query.phpt +++ php-src/ext/mysqli/tests/mysqli_master_query.phpt --TEST-- mysqli_master_query() --SKIPIF-- <?php require_once('skipif.inc'); require_once('skipifemb.inc'); require_once('skipifconnectfailure.inc'); if (!function_exists('mysqli_master_query')) { die("skip mysqli_master_query() not available"); } require_once('connect.inc'); if (!$TEST_EXPERIMENTAL) die("skip - experimental (= unsupported) feature"); ?> --FILE-- <?php /* NOTE: tests is a stub, but function is deprecated, as long as it does not crash when invoking it... */ include "connect.inc";
$tmp = NULL; $link = NULL; if (NULL !== ($tmp = @mysqli_master_query())) printf("[001] Expecting NULL/NULL, got %s/%s\n", gettype($tmp), $tmp); if (NULL !== ($tmp = @mysqli_master_query($link))) printf("[002] Expecting NULL/NULL, got %s/%s\n", gettype($tmp), $tmp); if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) { printf("[003] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket); } if (!is_bool($tmp = mysqli_master_query($link, 'SELECT 1'))) printf("[004] Expecting boolean/[true|false] value, got %s/%s\n", gettype($tmp), $tmp); mysqli_close($link); if (NULL !== ($tmp = mysqli_master_query($link))) printf("[005] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); print "done!"; ?> --EXPECTF-- Warning: mysqli_master_query(): Couldn't fetch mysqli in %s on line %d done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_max_links.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_max_links.phpt +++ php-src/ext/mysqli/tests/mysqli_max_links.phpt http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_more_results.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_more_results.phpt +++ php-src/ext/mysqli/tests/mysqli_more_results.phpt --TEST-- mysqli_more_results() --SKIPIF-- <?php require_once('skipif.inc'); require_once('skipifemb.inc'); ?> --FILE-- <?php include "connect.inc"; $strict_on = false; if (defined('E_STRICT')) { error_reporting(((int)ini_get('error_reporting')) | E_STRICT ); $strict_on = true; } $tmp = NULL; $link = NULL; if (!is_null($tmp = @mysqli_more_results())) printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); if (!is_null($tmp = @mysqli_more_results($link))) printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); require('table.inc'); print "[004]\n"; var_dump(mysqli_more_results($link)); if (!mysqli_multi_query($link, "SELECT 1 AS a; SELECT 1 AS a, 2 AS b; SELECT id FROM test ORDER BY id LIMIT 3")) printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); print "[006]\n"; $i = 1; if ($strict_on) ob_start(); if (mysqli_get_server_version($link) > 41000 && !($ret = mysqli_more_results($link))) printf("[007] Expecting boolean/true, got %s/%s\n", gettype($ret), $ret); do { $res = mysqli_store_result($link); mysqli_free_result($res); if (mysqli_more_results($link)) printf("%d\n", $i++); } while (mysqli_next_result($link)); if ($strict_on) { $tmp = ob_get_contents(); ob_end_clean(); if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result [EMAIL PROTECTED]', $tmp)) { printf("[008] Strict Standards warning missing\n"); } else { $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line [EMAIL PROTECTED]', '', $tmp)); } print trim($tmp) . "\n"; } if (!mysqli_multi_query($link, "SELECT 1 AS a; SELECT 1 AS a, 2 AS b; SELECT id FROM test ORDER BY id LIMIT 3")) printf("[009] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); print "[010]\n"; $i = 1; if (mysqli_get_server_version($link) > 41000 && !($ret = mysqli_more_results($link))) printf("[011] Expecting boolean/true, got %s/%s\n", gettype($ret), $ret); if ($strict_on) ob_start(); do { $res = mysqli_use_result($link); // NOTE: if you use mysqli_use_result() with mysqli_more_results() or any other info function, // you must fetch all rows before you can loop to the next result set! // See also the MySQL Reference Manual: mysql_use_result() while ($row = mysqli_fetch_array($res)) ; mysqli_free_result($res); if (mysqli_more_results($link)) printf("%d\n", $i++); } while (mysqli_next_result($link)); if ($strict_on) { $tmp = ob_get_contents(); ob_end_clean(); if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result [EMAIL PROTECTED]', $tmp)) { printf("[008] Strict Standards warning missing\n"); } else { $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line [EMAIL PROTECTED]', '', $tmp)); } print trim($tmp) . "\n"; } mysqli_close($link); var_dump(mysqli_more_results($link)); print "done!"; ?> --EXPECTF-- [004] bool(false) [006] 1 2 [010] 1 2 Warning: mysqli_more_results(): Couldn't fetch mysqli in %s on line %d NULL done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_multi_query.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_multi_query.phpt +++ php-src/ext/mysqli/tests/mysqli_multi_query.phpt --TEST-- mysqli_multi_query() --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php include "connect.inc"; $strict_on = false; if (defined('E_STRICT')) { error_reporting(((int)ini_get('error_reporting')) | E_STRICT ); $strict_on = true; } $tmp = NULL; $link = NULL; if (!is_null($tmp = @mysqli_multi_query())) printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); if (!is_null($tmp = @mysqli_multi_query($link))) printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); require('table.inc'); if (false !== ($tmp = mysqli_multi_query($link, ""))) printf("[003] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp); if (!mysqli_multi_query($link, "SELECT 1 AS a; SELECT 1 AS a, 2 AS b; SELECT id FROM test ORDER BY id LIMIT 3")) printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); if ($strict_on) ob_start(); $i = 0; do { $res = mysqli_store_result($link); while ($row = mysqli_fetch_array($res)) ; mysqli_free_result($res); $i++; } while (mysqli_next_result($link)); if ($strict_on) { $tmp = ob_get_contents(); ob_end_clean(); if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result [EMAIL PROTECTED]', $tmp)) { printf("[005a] Strict Standards warning missing\n"); } else { $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line [EMAIL PROTECTED]', '', $tmp)); } print trim($tmp) . "\n"; } printf("[006] %d\n", $i); if (!mysqli_multi_query($link, "ALTER TABLE test MODIFY id INT AUTO_INCREMENT; INSERT INTO test(label) VALUES ('a'); SELECT id, label FROM test ORDER BY id")) printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $i = 0; while (mysqli_next_result($link) && ($res = mysqli_store_result($link))) { while ($row = mysqli_fetch_array($res)) ; mysqli_free_result($res); printf("%d/%d\n", $i, mysqli_insert_id($link)); $i++; } printf("[008] %d\n", $i); if (!mysqli_multi_query($link, "SELECT id, label FROM test")) printf("[009] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); if ($strict_on) ob_start(); $i = 0; while (mysqli_next_result($link) && ($res = mysqli_store_result($link))) { while ($row = mysqli_fetch_array($res)) $i++; mysqli_free_result($res); } if ($strict_on) { $tmp = ob_get_contents(); ob_end_clean(); if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result [EMAIL PROTECTED]', $tmp)) { printf("[009a] Strict Standards warning missing\n"); } else { $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line [EMAIL PROTECTED]', '', $tmp)); } print trim($tmp) . "\n"; } printf("[010] %d\n", $i); if (!mysqli_multi_query($link, "SELECT 1 AS num, 'a' AS somechar; SELECT 2 AS num, 'a' AS somechar; SELECT 3 AS num, 'a' AS somechar")) printf("[011] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $res_num = 1; do { if (!$res = mysqli_store_result($link)) { printf("[012 - %d] [%d] %s\n", $res_num, mysqli_errno($link), mysqli_error($link)); continue; } $num_rows = 0; while ($row = mysqli_fetch_array($res)) { $num_rows++; if ($row['num'] != $res_num) printf("[013 - %d] Expecting %s got %s\n", $res_num, $res_num, $row['num']); if ($row['somechar'] != "a") printf("[014 - %d] Expecting a got %s\n", $res_num, $row['somechar']); if (1 == $num_rows) { /* simple metadata check */ if (!($lengths = mysqli_fetch_lengths($res))) printf("[015 - %d] [%d] %s\n", $res_num, mysqli_errno($link), mysqli_error($link)); if (count($lengths) != 2) printf("[016 - %d] Expecting 2 column lengths got %d [%d] %s\n", $res_num, count($lengths)); foreach ($lengths as $k => $length) if ($length <= 0) printf("[017 - %d] Strange column lengths for column %d, got %d expecting any > 0\n", $res_num, $k, $length); } } if ($num_rows != 1) printf("[018 - %d] Expecting 1 row, got %d rows\n", $num_rows); $res_num++; mysqli_free_result($res); } while (@mysqli_next_result($link)); if ($res_num != 4) printf("[015] Expecting 3 result sets got %d result set[s]\n", $res_num); mysqli_close($link); var_dump(mysqli_multi_query($link, "SELECT id, label FROM test")); print "done!"; ?> --EXPECTF-- [006] 3 [008] 0 [009] [2014] Commands out of sync; you can't run this command now [010] 7 Warning: mysqli_multi_query(): Couldn't fetch mysqli in %s on line %d NULL done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_mysqli_result_invalid_mode.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_mysqli_result_invalid_mode.phpt +++ php-src/ext/mysqli/tests/mysqli_mysqli_result_invalid_mode.phpt --TEST-- mysqli_result(), invalid mode --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php require('connect.inc'); require('table.inc'); $valid = array(MYSQLI_STORE_RESULT, MYSQLI_USE_RESULT); do { $mode = mt_rand(-1000, 1000); } while (in_array($mode, $valid)); if (!is_object($res = new mysqli_result($link, $mode))) printf("[001] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); print "done!"; ?> --EXPECTF-- Warning: mysqli_result::mysqli_result(): Invalid value for resultmode in %s on line %d done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_next_result.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_next_result.phpt +++ php-src/ext/mysqli/tests/mysqli_next_result.phpt --TEST-- mysqli_next_result() --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php include "connect.inc"; $strict_on = false; if (defined('E_STRICT')) { error_reporting(((int)ini_get('error_reporting')) | E_STRICT ); $strict_on = true; } $tmp = NULL; $link = NULL; if (!is_null($tmp = @mysqli_next_result())) printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); if (!is_null($tmp = @mysqli_next_result($link))) printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); require('table.inc'); if ($strict_on) ob_start(); if (false !== ($tmp = mysqli_next_result($link))) printf("[003] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp); if ($strict_on) { $tmp = ob_get_contents(); ob_end_clean(); if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result [EMAIL PROTECTED]', $tmp)) { printf("[003a] Strict Standards warning missing\n"); } else { $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line [EMAIL PROTECTED]', '', $tmp)); } print trim($tmp) . "\n"; ob_start(); } $res = mysqli_query($link, "SELECT 1 AS res"); if (false !== ($tmp = mysqli_next_result($link))) printf("[004] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp); if ($strict_on) { $tmp = ob_get_contents(); ob_end_clean(); if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result [EMAIL PROTECTED]', $tmp)) { printf("[004a] Strict Standards warning missing\n"); } else { $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line [EMAIL PROTECTED]', '', $tmp)); } print trim($tmp) . "\n"; } mysqli_free_result($res); function func_test_mysqli_next_result($link, $query, $offset, $num_results, $strict_on) { if (!mysqli_multi_query($link, $query)) printf("[%03d] [%d] %s\n", $offset, mysqli_errno($link), mysqli_error($link)); $i = 0; if ($strict_on) ob_start(); do { if ($res = mysqli_store_result($link)) { mysqli_free_result($res); $i++; } } while (true === mysqli_next_result($link)); if ($strict_on) { $tmp = ob_get_contents(); ob_end_clean(); if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result [EMAIL PROTECTED]', $tmp)) { printf("[%03d] Strict Standards warning missing\n", $offset + 1); } else { $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line [EMAIL PROTECTED]', '', $tmp)); } print trim($tmp) . "\n"; } if ($i !== $num_results) { printf("[%03d] Expecting %d result(s), got %d result(s)\n", $offset + 2, $num_results, $i); } if (mysqli_more_results($link)) printf("[%03d] mysqli_more_results() indicates more results than expected\n", $offset + 3); if (!($res = mysqli_query($link, "SELECT 1 AS b"))) { printf("[%03d] [%d] %s\n", $offset + 4, mysqli_errno($link), mysqli_error($link)); } else { mysqli_free_result($res); } } func_test_mysqli_next_result($link, "SELECT 1 AS a; SELECT 1 AS a, 2 AS b; SELECT id FROM test ORDER BY id LIMIT 3", 5, 3, $strict_on); func_test_mysqli_next_result($link, "SELECT 1 AS a; INSERT INTO test(id, label) VALUES (100, 'y'); SELECT 1 AS a, 2 AS b", 8, 2, $strict_on); func_test_mysqli_next_result($link, "DELETE FROM test WHERE id >= 100; SELECT 1 AS a; ", 11, 1, $strict_on); mysqli_close($link); var_dump(mysqli_next_result($link)); print "done!"; ?> --EXPECTF-- Warning: mysqli_next_result(): Couldn't fetch mysqli in %s on line %d NULL done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_no_reconnect.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_no_reconnect.phpt +++ php-src/ext/mysqli/tests/mysqli_no_reconnect.phpt http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_num_fields.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_num_fields.phpt +++ php-src/ext/mysqli/tests/mysqli_num_fields.phpt --TEST-- mysqli_num_fields() --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php include "connect.inc"; $tmp = NULL; $link = NULL; if (!is_null($tmp = @mysqli_num_fields())) printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); if (!is_null($tmp = @mysqli_num_fields($link))) printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); require('table.inc'); function func_test_mysqli_num_fields($link, $query, $expected, $offset, $test_free = false) { if (!($res = mysqli_query($link, $query))) { printf("[%03d] [%d] %s\n", $offset, mysqli_errno($link), mysqli_error($link)); return; } if ($expected !== ($tmp = mysqli_num_fields($res))) printf("[%03d] Expecting %s/%d, got %s/%d\n", $offset + 1, gettype($expected), $expected, gettype($tmp), $tmp); mysqli_free_result($res); if ($test_free && (NULL !== ($tmp = mysqli_num_fields($res)))) printf("[%03d] Expecting NULL, got %s/%s\n", $offset + 2, gettype($tmp), $tmp); } func_test_mysqli_num_fields($link, "SELECT 1 AS a", 1, 5); func_test_mysqli_num_fields($link, "SELECT id, label FROM test", 2, 10); func_test_mysqli_num_fields($link, "SELECT 1 AS a, NULL AS b, 'foo' AS c", 3, 15); func_test_mysqli_num_fields($link, "SELECT id FROM test", 1, 20, true); mysqli_close($link); print "done!"; ?> --EXPECTF-- Warning: mysqli_num_fields(): Couldn't fetch mysqli_result in %s on line %d done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_num_rows.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_num_rows.phpt +++ php-src/ext/mysqli/tests/mysqli_num_rows.phpt --TEST-- mysqli_num_rows() --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php include "connect.inc"; $tmp = NULL; $link = NULL; if (!is_null($tmp = @mysqli_num_rows())) printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); if (!is_null($tmp = @mysqli_num_rows($link))) printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); require('table.inc'); function func_test_mysqli_num_rows($link, $query, $expected, $offset, $test_free = false) { if (!$res = mysqli_query($link, $query, MYSQLI_STORE_RESULT)) { printf("[%03d] [%d] %s\n", $offset, mysqli_errno($link), mysqli_error($link)); return; } if ($expected !== ($tmp = mysqli_num_rows($res))) printf("[%03d] Expecting %s/%d, got %s/%d\n", $offset + 1, gettype($expected), $expected, gettype($tmp), $tmp); mysqli_free_result($res); if ($test_free && (NULL !== ($tmp = mysqli_num_rows($res)))) printf("[%03d] Expecting NULL, got %s/%s\n", $offset + 2, gettype($tmp), $tmp); } func_test_mysqli_num_rows($link, "SELECT 1 AS a", 1, 5); func_test_mysqli_num_rows($link, "SHOW VARIABLES LIKE '%nixnutz%'", 0, 10); func_test_mysqli_num_rows($link, "INSERT INTO test(id, label) VALUES (100, 'z')", NULL, 15); func_test_mysqli_num_rows($link, "SELECT id FROM test LIMIT 2", 2, 20, true); if ($res = mysqli_query($link, 'SELECT COUNT(id) AS num FROM test')) { $row = mysqli_fetch_assoc($res); mysqli_free_result($res); func_test_mysqli_num_rows($link, "SELECT id, label FROM test", (int)$row['num'], 25); } else { printf("[030] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); } print "run_tests.php don't fool me with your 'ungreedy' expression '.+?'!\n"; if ($res = mysqli_query($link, 'SELECT id FROM test', MYSQLI_USE_RESULT)) { $row = mysqli_fetch_row($res); if (0 !== ($tmp = mysqli_num_rows($res))) printf("[031] Expecting int/0, got %s/%d\n", gettype($tmp), $tmp); mysqli_free_result($res); } else { printf("[032] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); } mysqli_close($link); print "done!"; ?> --EXPECTF-- Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in %s on line %d Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in %s on line %d Warning: mysqli_num_rows(): Couldn't fetch mysqli_result in %s on line %d run_tests.php don't fool me with your 'ungreedy' expression '.+?'! Warning: mysqli_num_rows(): Function cannot be used with MYSQL_USE_RESULT in %s on line %d done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_options_init_command.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_options_init_command.phpt +++ php-src/ext/mysqli/tests/mysqli_options_init_command.phpt --TEST-- mysqli_options() --SKIPIF-- <?php require_once('skipif.inc'); require_once('skipifemb.inc'); die("skip - STUB - TODO - this is a stub to remind me that we should also actually test the options"); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php /* see mysqli.c for details */ include "connect.inc"; print "done!"; ?> --EXPECTF-- done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_options_openbasedir.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_options_openbasedir.phpt +++ php-src/ext/mysqli/tests/mysqli_options_openbasedir.phpt http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_options.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_options.phpt +++ php-src/ext/mysqli/tests/mysqli_options.phpt --TEST-- mysqli_options() --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php include "connect.inc"; $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, MYSQLI_READ_DEFAULT_FILE, MYSQLI_OPT_CONNECT_TIMEOUT, MYSQLI_OPT_LOCAL_INFILE, MYSQLI_INIT_COMMAND, MYSQLI_SET_CHARSET_NAME); if ($IS_MYSQLND && defined('MYSQLI_OPT_INT_AND_YEARS_AS_INT')) $valid_options[] = constant('MYSQLI_OPT_INT_AND_YEARS_AS_INT'); if (defined('MYSQLI_OPT_NUMERIC_AND_DATETIME_AS_UNICODE')) $valid_options[] = constant('MYSQLI_OPT_NUMERIC_AND_DATETIME_AS_UNICODE'); $tmp = NULL; $link = NULL; if (!is_null($tmp = @mysqli_options())) printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); if (!is_null($tmp = @mysqli_options($link))) printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); $link = mysqli_init(); if (!is_null($tmp = @mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT))) printf("[003] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); if (!is_null($tmp = @mysqli_options($link, "s", 'extra_my.cnf'))) printf("[004] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); if (!is_null($tmp = @mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT=0', 'foo'))) printf("[005] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); // print "run_tests.php don't fool me with your 'ungreedy' expression '.+?'!\n"; var_dump("MYSQLI_READ_DEFAULT_GROUP", mysqli_options($link, MYSQLI_READ_DEFAULT_GROUP, 'extra_my.cnf')); var_dump("MYSQLI_READ_DEFAULT_FILE", mysqli_options($link, MYSQLI_READ_DEFAULT_FILE, 'extra_my.cnf')); var_dump("MYSQLI_OPT_CONNECT_TIMEOUT", mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 10)); var_dump("MYSQLI_OPT_LOCAL_INFILE", mysqli_options($link, MYSQLI_OPT_LOCAL_INFILE, 1)); var_dump("MYSQLI_INIT_COMMAND", mysqli_options($link, MYSQLI_INIT_COMMAND, array('SET AUTOCOMMIT=0', 'SET AUTOCOMMIT=1'))); var_dump("MYSQLI_READ_DEFAULT_GROUP", mysqli_options($link, MYSQLI_READ_DEFAULT_GROUP, 'extra_my.cnf')); var_dump("MYSQLI_READ_DEFAULT_FILE", mysqli_options($link, MYSQLI_READ_DEFAULT_FILE, 'extra_my.cnf')); var_dump("MYSQLI_OPT_CONNECT_TIMEOUT", mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 10)); var_dump("MYSQLI_OPT_LOCAL_INFILE", mysqli_options($link, MYSQLI_OPT_LOCAL_INFILE, 1)); var_dump("MYSQLI_INIT_COMMAND", mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT=0')); var_dump("MYSQLI_CLIENT_SSL", mysqli_options($link, MYSQLI_CLIENT_SSL, 'not an mysqli_option')); if ($IS_MYSQLND && defined('MYSQLI_OPT_INT_AND_YEARS_AS_INT') && !($tmp = mysqli_options($link, constant('MYSQLI_OPT_INT_AND_YEARS_AS_INT'), true))) printf("[006] Expecting boolean/true got %s/%s\n", gettype($tmp), $tmp); if (defined('MYSQLI_OPT_NUMERIC_AND_DATETIME_AS_UNICODE') && !($tmp = mysqli_options($link, constant('MYSQLI_OPT_NUMERIC_AND_DATETIME_AS_UNICODE'), true))) printf("[006] Expecting boolean/true got %s/%s\n", gettype($tmp), $tmp); for ($flag = -10000; $flag < 10000; $flag++) { if (in_array($flag, $valid_options)) continue; if (FALSE !== ($tmp = mysqli_options($link, $flag, 'definetely not an mysqli_option'))) { var_dump("SOME_FLAG", $flag, $tmp); } } mysqli_close($link); echo "Link closed"; var_dump("MYSQLI_INIT_COMMAND", mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT=1')); var_dump("SOME_RANDOM_FLAG", mysqli_options($link, $flag, 'definetly not an mysqli_option')); print "done!"; ?> --EXPECTF-- %s(25) "MYSQLI_READ_DEFAULT_GROUP" bool(true) %s(24) "MYSQLI_READ_DEFAULT_FILE" bool(true) %s(26) "MYSQLI_OPT_CONNECT_TIMEOUT" bool(true) %s(23) "MYSQLI_OPT_LOCAL_INFILE" bool(true) %s(19) "MYSQLI_INIT_COMMAND" bool(true) %s(25) "MYSQLI_READ_DEFAULT_GROUP" bool(true) %s(24) "MYSQLI_READ_DEFAULT_FILE" bool(true) %s(26) "MYSQLI_OPT_CONNECT_TIMEOUT" bool(true) %s(23) "MYSQLI_OPT_LOCAL_INFILE" bool(true) %s(19) "MYSQLI_INIT_COMMAND" bool(true) %s(17) "MYSQLI_CLIENT_SSL" bool(false) Link closed Warning: mysqli_options(): Couldn't fetch mysqli in %s line %d %s(19) "MYSQLI_INIT_COMMAND" NULL Warning: mysqli_options(): Couldn't fetch mysqli in %s line %d %s(16) "SOME_RANDOM_FLAG" NULL done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_pconn_disabled.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_pconn_disabled.phpt +++ php-src/ext/mysqli/tests/mysqli_pconn_disabled.phpt http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_pconnect.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_pconnect.phpt +++ php-src/ext/mysqli/tests/mysqli_pconnect.phpt --TEST-- mysqli_pconnect() --SKIPIF-- <?php require_once('skipif.inc'); require_once('skipifemb.inc'); if (!stristr(mysqli_get_client_info(), 'mysqlnd')) die("skip: only available in mysqlnd"); ?> --FILE-- <?php include "connect.inc"; $host = 'p:' . $host; if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) printf("[002] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket); mysqli_close($link); $num = 20; $connections = array(); for ($i = 0; $i < $num; $i++) { if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) printf("[003] Connect failed, [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); $connections[] = $link; } while (count($connections)) { do { $index = mt_rand(0, $num); } while (!isset($connections[$index])); mysqli_close($connections[$index]); unset($connections[$index]); } $connections = array(); $num = 20; for ($i = 0; $i < $num; $i++) { if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) printf("[004] Connect failed, [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); $connections[] = $link; } $left = $num; while (count($connections) && $left > 0) { do { $index = mt_rand(0, $num); } while (!isset($connections[$index]) && $left > 0); if (mt_rand(0, 1) > 0) { $left--; mysqli_close($connections[$index]); unset($connections[$index]); } else { $left--; if (!$connections[$index] = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) printf("[004] Connect failed, [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); } flush(); } while (count($connections)) { do { $index = mt_rand(0, $num); } while (!isset($connections[$index])); mysqli_close($connections[$index]); unset($connections[$index]); } print "done!"; ?> --EXPECTF-- done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_pconn_kill.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_pconn_kill.phpt +++ php-src/ext/mysqli/tests/mysqli_pconn_kill.phpt http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_pconn_limits.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_pconn_limits.phpt +++ php-src/ext/mysqli/tests/mysqli_pconn_limits.phpt http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_pconn_max_links.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_pconn_max_links.phpt +++ php-src/ext/mysqli/tests/mysqli_pconn_max_links.phpt http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_pconn_reuse.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_pconn_reuse.phpt +++ php-src/ext/mysqli/tests/mysqli_pconn_reuse.phpt http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_phpinfo.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_phpinfo.phpt +++ php-src/ext/mysqli/tests/mysqli_phpinfo.phpt --TEST-- phpinfo() mysqli section --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php include("connect.inc"); @ob_clean(); ob_start(); phpinfo(); $phpinfo = ob_get_contents(); ob_end_clean(); /* all versions should at least dump this minimum information */ if (!stristr($phpinfo, "mysqli support")) printf("[001] ext/mysqli should have exposed itself.\n"); if (!stristr($phpinfo, "client api library version")) printf("[002] ext/mysqli should have exposed the library version.\n"); if (!stristr($phpinfo, "mysqli.default_host")) printf("[003] php.ini setting mysqli.default_host not shown.\n"); if (!stristr($phpinfo, "mysqli.default_port")) printf("[004] php.ini setting mysqli.default_port not shown.\n"); if (!stristr($phpinfo, "mysqli.default_pw")) printf("[005] php.ini setting mysqli.default_pw not shown.\n"); if (!stristr($phpinfo, "mysqli.default_socket")) printf("[006] php.ini setting mysqli.default_socket not shown.\n"); if (!stristr($phpinfo, "mysqli.default_user")) printf("[007] php.ini setting mysqli.default_user not shown.\n"); if (!stristr($phpinfo, "mysqli.max_links")) printf("[008] php.ini setting mysqli.max_links not shown.\n"); if (!stristr($phpinfo, "mysqli.reconnect")) printf("[009] php.ini setting mysqli.reconnect not shown.\n"); if ($IS_MYSQLND) { $expected = array( 'client statistics', 'bytes_sent', 'bytes_received', 'packets_sent', 'packets_received', 'protocol_overhead_in', 'protocol_overhead_out', 'result_set_queries', 'non_result_set_queries', 'no_index_used', 'bad_index_used', 'buffered_sets', 'unbuffered_sets', 'ps_buffered_sets', 'ps_unbuffered_sets', 'flushed_normal_sets', 'flushed_ps_sets', 'rows_fetched_from_server', 'rows_fetched_from_client', 'rows_skipped', 'copy_on_write_saved', 'copy_on_write_performed', 'command_buffer_too_small', 'connect_success', 'connect_failure', 'connection_reused', 'explicit_close', 'implicit_close', 'disconnect_close', 'in_middle_of_command_close', 'explicit_free_result', 'implicit_free_result', 'explicit_stmt_close', 'implicit_stmt_close', 'put_hits', 'put_misses', 'get_hits', 'get_misses', 'size', 'free_items', 'references', 'mysqli.cache_size', 'mysql.allow_local_infile' ); foreach ($expected as $k => $entry) if (!stristr($phpinfo, $entry)) printf("[010] Could not find entry for '%s'\n", $entry); } print "done!"; ?> --EXPECTF-- done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_ping.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_ping.phpt +++ php-src/ext/mysqli/tests/mysqli_ping.phpt --TEST-- mysqli_ping() --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php include "connect.inc"; $tmp = NULL; $link = NULL; if (!is_null($tmp = @mysqli_ping())) printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); require('table.inc'); if (!is_null($tmp = @mysqli_ping($link, $link))) printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); var_dump(mysqli_ping($link)); // provoke an error to check if mysqli_ping resets it $res = mysqli_query($link, 'SELECT * FROM unknown_table'); if (!($errno = mysqli_errno($link))) printf("[003] Statement should have caused an error\n"); var_dump(mysqli_ping($link)); if ($errno === mysqli_errno($link)) printf("[004] Error codes should have been reset\n"); mysqli_close($link); if (!is_null($tmp = mysqli_ping($link))) printf("[005] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); print "done!"; ?> --EXPECTF-- bool(true) bool(true) Warning: mysqli_ping(): Couldn't fetch mysqli in %s on line %d done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_prepare_no_object.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_prepare_no_object.phpt +++ php-src/ext/mysqli/tests/mysqli_prepare_no_object.phpt --TEST-- mysqli_prepare() - no object on failure --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php include "connect.inc"; require('table.inc'); if (false !== ($tmp = mysqli_prepare($link, false))) printf("[001] Expecting boolean/false, got %s/%s\n", gettype($tmp), (is_object($tmp) ? var_dump($tmp, true) : $tmp)); printf("a) [%d] %s\n", mysqli_errno($link), mysqli_error($link)); if (false !== ($tmp = mysqli_prepare($link, ''))) printf("[002] Expecting boolean/false, got %s/%s\n", gettype($tmp), (is_object($tmp) ? var_dump($tmp, true) : $tmp)); printf("b) [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_close($link); if (!$mysqli = new mysqli($host, $user, $passwd, $db, $port, $socket)) printf("[003] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket); if (false !== ($tmp = $mysqli->prepare(false))) printf("[004] Expecting boolean/false, got %s/%s\n", gettype($tmp), (is_object($tmp) ? var_dump($tmp, true) : $tmp)); printf("c) [%d] %s\n", $mysqli->errno, $mysqli->error); if (false !== ($tmp = $mysqli->prepare(''))) printf("[005] Expecting boolean/false, got %s/%s\n", gettype($tmp), (is_object($tmp) ? var_dump($tmp, true) : $tmp)); printf("c) [%d] %s\n", $mysqli->errno, $mysqli->error); print "done!"; ?> --EXPECTF-- a) [1065] Query was empty b) [1065] Query was empty c) [1065] Query was empty c) [1065] Query was empty done! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_prepare.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_prepare.phpt +++ php-src/ext/mysqli/tests/mysqli_prepare.phpt --TEST-- mysqli_prepare() --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php include "connect.inc"; $tmp = NULL; $link = NULL; if (!is_null($tmp = @mysqli_prepare())) printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); if (!is_null($tmp = @mysqli_prepare($link))) printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); require('table.inc'); if (false !== ($tmp = @mysqli_prepare($link, false))) printf("[003] Expecting boolean/false, got %s\n", gettype($tmp)); if (!$res = mysqli_query($link, "SELECT id, label FROM test", MYSQLI_USE_RESULT)) printf("[004] [%d] %s, next test will fail\n", mysqli_errno($link), mysqli_error($link)); if (false !== ($tmp = mysqli_prepare($link, 'SELECT id FROM test WHERE id > ?'))) printf("[005] Expecting boolean/false, got %s, [%d] %s\n", gettype($tmp), mysqli_errno($link), mysqli_error($link)); mysqli_free_result($res); if (!is_object(($stmt = mysqli_prepare($link, 'SELECT id FROM test'))) || !mysqli_stmt_execute($stmt)) printf("[006][%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!mysqli_query($link, "DROP TABLE IF EXISTS test2")) printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); if (!is_object(($stmt = mysqli_prepare($link, 'CREATE TABLE test2(id INT) ENGINE =' . $engine))) || !mysqli_stmt_execute($stmt)) printf("[008] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'INSERT INTO test2(id) VALUES(?)')))) printf("[009] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $id = 1; if (!mysqli_bind_param($stmt, 'i', $id) || !mysqli_stmt_execute($stmt)) printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'REPLACE INTO test2(id) VALUES (?)')))) printf("[011] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $id = 2; if (!mysqli_bind_param($stmt, 'i', $id) || !mysqli_stmt_execute($stmt)) printf("[012] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'UPDATE test2 SET id = ? WHERE id = ?')))) printf("[013] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $id = 3; $where = 2; if (!mysqli_bind_param($stmt, 'ii', $id, $where) || !mysqli_stmt_execute($stmt)) printf("[014] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'DELETE FROM test2 WHERE id = ?')))) printf("[015] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $where = 3; if (!mysqli_bind_param($stmt, 'i', $where) || !mysqli_stmt_execute($stmt)) printf("[016] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'SET @testvar = ?')))) printf("[017] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $testvar = 'testvar'; if (!mysqli_bind_param($stmt, 's', $testvar) || !mysqli_stmt_execute($stmt)) printf("[018] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'DO GET_LOCK("testlock", 1)')))) printf("[019] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'SELECT id, @testvar FROM test2')))) printf("[020] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $id = $testvar = null; if (!mysqli_stmt_execute($stmt) || !mysqli_stmt_bind_result($stmt, $id, $testvar)) printf("[021] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); while (mysqli_stmt_fetch($stmt)) { if (('testvar' !== $testvar) || (1 !== $id)) printf("[022] Expecting 'testvar'/1, got %s/%s. [%d] %s\n", $testvar, $id, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); } var_dump(mysqli_stmt_prepare($stmt, 'SELECT 1; SELECT 2')); mysqli_stmt_close($stmt); if (!is_null($tmp = @mysqli_stmt_prepare($link, 'SELECT id FROM test', 'foo'))) printf("[023] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); mysqli_close($link); if (!is_null($tmp = @mysqli_stmt_prepare($link, 'SELECT id FROM test'))) printf("[024] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); print "done!"; ?> --EXPECTF-- bool(false) done!
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php