summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/mysqli/tests/mysqli_fetch_array_large.phpt79
1 files changed, 46 insertions, 33 deletions
diff --git a/ext/mysqli/tests/mysqli_fetch_array_large.phpt b/ext/mysqli/tests/mysqli_fetch_array_large.phpt
index 25c00baadc..ae83b3f8b1 100644
--- a/ext/mysqli/tests/mysqli_fetch_array_large.phpt
+++ b/ext/mysqli/tests/mysqli_fetch_array_large.phpt
@@ -100,49 +100,61 @@ require_once('skipifconnectfailure.inc');
}
- if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
- printf("[001] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
- $host, $user, $db, $port, $socket);
- }
+ function test_fetch($host, $user, $passwd, $db, $port, $socket, $engine, $flags = null) {
- if (!mysqli_query($link, "DROP TABLE IF EXISTS test") ||
- !mysqli_query($link, sprintf("CREATE TABLE test(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, label VARCHAR(255)) ENGINE = %s", $engine)))
- printf("[002] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+ $link = mysqli_init();
+ if (!my_mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket, $flags)) {
+ printf("[001] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
+ $host, $user, $db, $port, $socket);
+ return false;
+ }
- $package_size = 524288;
- $offset = 3;
- $limit = (ini_get('memory_limit') > 0) ? parse_memory_limit(ini_get('memory_limit')) : pow(2, 32);
+ if (!mysqli_query($link, "DROP TABLE IF EXISTS test") ||
+ !mysqli_query($link, sprintf("CREATE TABLE test(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, label VARCHAR(255)) ENGINE = %s", $engine))) {
+ printf("[002] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+ return false;
+ }
- /* try to respect php.ini but make run time a soft limit */
- $max_runtime = (ini_get('max_execution_time') > 0) ? ini_get('max_execution_time') : 30;
- set_time_limit(0);
+ $package_size = 524288;
+ $offset = 3;
+ $limit = (ini_get('memory_limit') > 0) ? parse_memory_limit(ini_get('memory_limit')) : pow(2, 32);
- do {
- if ($package_size > $limit) {
- printf("stop: memory limit - %s vs. %s\n", $package_size, $limit);
- break;
- }
+ /* try to respect php.ini but make run time a soft limit */
+ $max_runtime = (ini_get('max_execution_time') > 0) ? ini_get('max_execution_time') : 30;
+ set_time_limit(0);
- $start = microtime(true);
- if (!mysqli_fetch_array_large($offset++, $link, $package_size)) {
- printf("stop: packet size - %d\n", $package_size);
- break;
- }
+ do {
+ if ($package_size > $limit) {
+ printf("stop: memory limit - %s vs. %s\n", $package_size, $limit);
+ break;
+ }
- $duration = microtime(true) - $start;
- $max_runtime -= $duration;
- if ($max_runtime < ($duration * 3)) {
- /* likely the next iteration will not be within max_execution_time */
- printf("stop: time limit - %2.2fs\n", $max_runtime);
- break;
- }
+ $start = microtime(true);
+ if (!mysqli_fetch_array_large($offset++, $link, $package_size)) {
+ printf("stop: packet size - %d\n", $package_size);
+ break;
+ }
+
+ $duration = microtime(true) - $start;
+ $max_runtime -= $duration;
+ if ($max_runtime < ($duration * 3)) {
+ /* likely the next iteration will not be within max_execution_time */
+ printf("stop: time limit - %2.2fs\n", $max_runtime);
+ break;
+ }
+
+ $package_size += $package_size;
- $package_size += $package_size;
+ } while (true);
- } while (true);
+ mysqli_close($link);
+ return true;
+ }
- mysqli_close($link);
+
+ test_fetch($host, $user, $passwd, $db, $port, $socket, $engine, null);
+ test_fetch($host, $user, $passwd, $db, $port, $socket, $engine, MYSQLI_CLIENT_COMPRESS);
print "done!";
?>
--CLEAN--
@@ -151,4 +163,5 @@ require_once('skipifconnectfailure.inc');
?>
--EXPECTF--
stop: %s
+stop: %s
done! \ No newline at end of file