uw                                       Fri, 25 Sep 2009 10:56:17 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=288747

Log:
Large package to check how compression handles package queues.

Changed paths:
    A   
php/php-src/branches/PHP_5_3/ext/mysqli/tests/mysqli_fetch_array_large.phpt
    A   php/php-src/trunk/ext/mysqli/tests/mysqli_fetch_array_large.phpt

Added: 
php/php-src/branches/PHP_5_3/ext/mysqli/tests/mysqli_fetch_array_large.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqli/tests/mysqli_fetch_array_large.phpt 
                        (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/mysqli/tests/mysqli_fetch_array_large.phpt 
2009-09-25 10:56:17 UTC (rev 288747)
@@ -0,0 +1,100 @@
+--TEST--
+mysqli_fetch_array() - large packages (to test compression)
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('skipifconnectfailure.inc');
+?>
+--FILE--
+<?php
+       include "connect.inc";
+
+       function mysqli_fetch_array_large($offset, $link, $package_size) {
+
+               /* we are aiming for maximum compression to test 
MYSQLI_CLIENT_COMPRESS */
+               $random_char = str_repeat('a', 255);
+               $sql = "INSERT INTO test(label) VALUES ";
+
+               while (strlen($sql) < ($package_size - 259))
+                       $sql .= sprintf("('%s'), ", $random_char);
+
+               $sql = substr($sql, 0, -2);
+               assert(strlen($sql) < $package_size);
+
+               if (!mysqli_query($link, $sql)) {
+                       printf("[%03d + 1] [%d] %s\n", $offset, 
mysqli_errno($link), mysqli_error($link));
+                       return false;
+               }
+
+               /* buffered result set - let's hope we do not run into PHP 
memory limit... */
+               if (!$res = mysqli_query($link, "SELECT id, label FROM test")) {
+                       printf("[%03d + 2] [%d] %s\n", $offset, 
mysqli_errno($link), mysqli_error($link));
+                       return false;
+               }
+
+               while ($row = mysqli_fetch_assoc($res)) {
+                       if ($row['label'] != $random_char) {
+                               printf("[%03d + 3] Wrong results - expecting 
'%s' got '%s', [%d] %s\n",
+                                       $offset, $random_char, $row['label'], 
mysqli_errno($link), mysqli_error($link));
+                               return false;
+                       }
+               }
+               mysqli_free_result($res);
+
+               if (!$stmt = mysqli_prepare($link, "SELECT id, label FROM 
test")) {
+                       printf("[%03d + 4] [%d] %s\n", $offset, 
mysqli_errno($link), mysqli_error($link));
+                       return false;
+               }
+
+               /* unbuffered result set */
+               if (!mysqli_stmt_execute($stmt)) {
+                       printf("[%03d + 5] [%d] %s\n", $offset, 
mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
+                       return false;
+               }
+
+               $id = $label = NULL;
+               if (!mysqli_stmt_bind_result($stmt, $id, $label)) {
+                       printf("[%03d + 6] [%d] %s\n", $offset, 
mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
+                       return false;
+               }
+
+               while (mysqli_stmt_fetch($stmt)) {
+                       if ($label != $random_char) {
+                               printf("[%03d + 7] Wrong results - expecting 
'%s' got '%s', [%d] %s\n",
+                                       $offset, $random_char, $label, 
mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
+                               return false;
+                       }
+               }
+
+               mysqli_stmt_free_result($stmt);
+               mysqli_stmt_close($stmt);
+
+               return true;
+       }
+
+
+       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);
+       }
+
+       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));
+
+       $package_size = 32768;
+       $offset = 3;
+       $limit = (0 < ini_get('memory_limit')) ? pow(2, 32) : 
ini_get('memory_limit');
+       while (($package_size < $limit) && mysqli_fetch_array_large($offset++, 
$link, $package_size))
+               $package_size += $package_size;
+
+       mysqli_close($link);
+       print "done!";
+?>
+--CLEAN--
+<?php
+       require_once("clean_table.inc");
+?>
+--EXPECTF--
+[%d + 1] [1153] Got a packet bigger than 'max_allowed_packet' bytes
+done!
\ No newline at end of file

Added: php/php-src/trunk/ext/mysqli/tests/mysqli_fetch_array_large.phpt
===================================================================
--- php/php-src/trunk/ext/mysqli/tests/mysqli_fetch_array_large.phpt            
                (rev 0)
+++ php/php-src/trunk/ext/mysqli/tests/mysqli_fetch_array_large.phpt    
2009-09-25 10:56:17 UTC (rev 288747)
@@ -0,0 +1,100 @@
+--TEST--
+mysqli_fetch_array() - large packages (to test compression)
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('skipifconnectfailure.inc');
+?>
+--FILE--
+<?php
+       include "connect.inc";
+
+       function mysqli_fetch_array_large($offset, $link, $package_size) {
+
+               /* we are aiming for maximum compression to test 
MYSQLI_CLIENT_COMPRESS */
+               $random_char = str_repeat('a', 255);
+               $sql = "INSERT INTO test(label) VALUES ";
+
+               while (strlen($sql) < ($package_size - 259))
+                       $sql .= sprintf("('%s'), ", $random_char);
+
+               $sql = substr($sql, 0, -2);
+               assert(strlen($sql) < $package_size);
+
+               if (!mysqli_query($link, $sql)) {
+                       printf("[%03d + 1] [%d] %s\n", $offset, 
mysqli_errno($link), mysqli_error($link));
+                       return false;
+               }
+
+               /* buffered result set - let's hope we do not run into PHP 
memory limit... */
+               if (!$res = mysqli_query($link, "SELECT id, label FROM test")) {
+                       printf("[%03d + 2] [%d] %s\n", $offset, 
mysqli_errno($link), mysqli_error($link));
+                       return false;
+               }
+
+               while ($row = mysqli_fetch_assoc($res)) {
+                       if ($row['label'] != $random_char) {
+                               printf("[%03d + 3] Wrong results - expecting 
'%s' got '%s', [%d] %s\n",
+                                       $offset, $random_char, $row['label'], 
mysqli_errno($link), mysqli_error($link));
+                               return false;
+                       }
+               }
+               mysqli_free_result($res);
+
+               if (!$stmt = mysqli_prepare($link, "SELECT id, label FROM 
test")) {
+                       printf("[%03d + 4] [%d] %s\n", $offset, 
mysqli_errno($link), mysqli_error($link));
+                       return false;
+               }
+
+               /* unbuffered result set */
+               if (!mysqli_stmt_execute($stmt)) {
+                       printf("[%03d + 5] [%d] %s\n", $offset, 
mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
+                       return false;
+               }
+
+               $id = $label = NULL;
+               if (!mysqli_stmt_bind_result($stmt, $id, $label)) {
+                       printf("[%03d + 6] [%d] %s\n", $offset, 
mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
+                       return false;
+               }
+
+               while (mysqli_stmt_fetch($stmt)) {
+                       if ($label != $random_char) {
+                               printf("[%03d + 7] Wrong results - expecting 
'%s' got '%s', [%d] %s\n",
+                                       $offset, $random_char, $label, 
mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
+                               return false;
+                       }
+               }
+
+               mysqli_stmt_free_result($stmt);
+               mysqli_stmt_close($stmt);
+
+               return true;
+       }
+
+
+       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);
+       }
+
+       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));
+
+       $package_size = 32768;
+       $offset = 3;
+       $limit = (0 < ini_get('memory_limit')) ? pow(2, 32) : 
ini_get('memory_limit');
+       while (($package_size < $limit) && mysqli_fetch_array_large($offset++, 
$link, $package_size))
+               $package_size += $package_size;
+
+       mysqli_close($link);
+       print "done!";
+?>
+--CLEAN--
+<?php
+       require_once("clean_table.inc");
+?>
+--EXPECTF--
+[%d + 1] [1153] Got a packet bigger than 'max_allowed_packet' bytes
+done!
\ No newline at end of file

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to