]> granicus.if.org Git - php/commitdiff
Test fixes and updates to work with a wider range of MySQL server configs
authorUlf Wendel <uw@php.net>
Thu, 27 May 2010 12:09:39 +0000 (12:09 +0000)
committerUlf Wendel <uw@php.net>
Thu, 27 May 2010 12:09:39 +0000 (12:09 +0000)
ext/mysqli/tests/bug51647.phpt
ext/mysqli/tests/mysqli_get_cache_stats_off.phpt
ext/mysqli/tests/mysqli_get_client_stats_off.phpt
ext/mysqli/tests/mysqli_insert_packet_overflow.phpt
ext/mysqli/tests/mysqli_stmt_bind_param_many_columns.phpt

index 6726b4e4e4b0b5d32d9a9e47967f18824ecf31df..b222aa5f014e58f3e6d45a8938ea189bb79f0b15 100644 (file)
@@ -23,6 +23,6 @@ array(2) {
   ["Variable_name"]=>
   string(10) "Ssl_cipher"
   ["Value"]=>
-  string(%d) "%s"
+  string(%d) "%S"
 }
 done!
index 4b0bab2406b0751778231478e56bbd5edf100986..bbfe503b2b327c46579138f0013ff8924a224126 100644 (file)
@@ -15,8 +15,14 @@ if (!function_exists('mysqli_get_cache_stats')) {
 --FILE--
 <?php
        $before = mysqli_get_cache_stats();
-       if (!is_array($before) || empty($before)) {
-               printf("[001] Expecting non-empty array, got %s.\n", gettype($before));
+       /*
+       NOTE: the function belongs to the mysqnd zval cache. The
+       mysqlnd zval cache was part of PHP from PHP 5.3.0(-dev) to
+       PHP 5.3.0RC3 or something. And it was turned off by default.
+       The function never returned anything meaningful in any released version of PHP.
+       */
+       if (!is_array($before)) {
+               printf("[001] Expecting array, got %s.\n", gettype($before));
                var_dump($before);
        }
 
@@ -33,25 +39,11 @@ if (!function_exists('mysqli_get_cache_stats')) {
                ;
 
        $after = mysqli_get_cache_stats();
-       /* references has to be maintained - it is used for memory management */
-       $ignore = array('references' => true);
-       foreach ($before as $k => $v) {
-               if (isset($ignore[$k]))
-                       continue;
-
-               if ($before[$k] != $after[$k])
-                       printf("[004] Statistics have changed - %s: %s => %s\n", $
-                               $k, $before[$k], $after[$k]);
-       }
-
-       $ignore = array("size" => true, "free_items" => true, "references" => true);
-       foreach ($after as $k => $v) {
-               if ($v != 0 && !isset($ignore[$k])) {
-                       printf("[005] Field %s should not have any other value but 0, got %s.\n",
-                               $k, $v);
-               }
+        if ($before !== $after) {
+               printf("[002] Statistics have changed\n");
+               var_dump($before);
+               var_dump($after);
        }
-
        mysqli_close($link);
 
        print "done!";
@@ -61,4 +53,4 @@ if (!function_exists('mysqli_get_cache_stats')) {
        require_once("clean_table.inc");
 ?>
 --EXPECTF--
-done!
\ No newline at end of file
+done!
index e2dff9befbafd2c88d83f2ae9f094a38e00a24d9..884f426c7121ae0da822696e993cdcebc58ad2d0 100644 (file)
@@ -15,8 +15,16 @@ mysqlnd.collect_memory_statistics=0
 --FILE--
 <?php
        $before = mysqli_get_client_stats();
-       if (!is_array($before) || empty($before)) {
-               printf("[001] Expecting non-empty array, got %s.\n", gettype($before));
+
+       /*
+       NOTE: the function belongs to the mysqnd zval cache. The
+       mysqlnd zval cache was part of PHP from PHP 5.3.0(-dev) to
+       PHP 5.3.0RC3 or something. And it was turned off by default.
+       The function never returned anything meaningful in any released version of PHP.
+
+       */
+       if (!is_array($before)) {
+               printf("[001] Expecting array, got %s.\n", gettype($before));
                var_dump($before);
        }
 
@@ -31,12 +39,6 @@ mysqlnd.collect_memory_statistics=0
                var_dump($after);
        }
 
-       foreach ($after as $k => $v)
-               if ($v != 0) {
-                       printf("[003] Field %s should not have any other value but 0, got %s.\n",
-                               $k, $v);
-               }
-
        mysqli_close($link);
        print "done!";
 ?>
index 725636e146231c1e8040a8eaa51be8a8bc8607b2..35f35a5dc1771b77fb49d8b7563eb95ec8573508 100644 (file)
@@ -38,8 +38,15 @@ memory_limit=256M
 
        $max_len = pow(2, 24);
        if ($org_max_allowed_packet < $max_len) {
-               if (!mysqli_query($link, "SET GLOBAL max_allowed_packet = " . ($max_len + 100)))
-                       printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+               if (!mysqli_query($link, "SET GLOBAL max_allowed_packet = " . ($max_len + 100))) {
+                       if (1227 == mysqli_errno($link)) {
+                               /* [1227] Access denied; you need the SUPER privilege for this operation */
+                               print "done!";
+                               exit(0);
+                       } else {
+                               printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+                       }
+               }
        }
        mysqli_close($link);
        if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
@@ -94,7 +101,8 @@ memory_limit=256M
        }
 
        if (!mysqli_query($link, "SET GLOBAL max_allowed_packet = " . $org_max_allowed_packet))
-               printf("[017] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+               if (1227 != mysqli_errno($link))
+                       printf("[017] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
 
        mysqli_close($link);
 
index 2468c38b2db56d1f928a59977a3c9e38c693bb2b..29a5ee3fbd38b7882cdf6fffd069b2d070db7fe6 100644 (file)
@@ -22,14 +22,22 @@ memory_limit=256M
        require_once("connect.inc");
 
        if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
-               printf("Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
+               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);
                exit(1);
        }
 
+       $cols = 2500;
+
        list($old_max_allowed_packet) = $link->query("SELECT @@max_allowed_packet")->fetch_row();
        if (!$link->query("SET GLOBAL max_allowed_packet=(2<<29)")) {
-               printf("Failed to set max_allowed_packet the test table: [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+               if (1227 == mysqli_errno($link)) {
+                       /* [1227] Access denied; you need the SUPER privilege for this operation */
+                       $cols = 10;
+               } else {
+                       $cols = 10;
+                       printf("[002] Failed to set max_allowed_packet the test table: [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+               }
        }
        mysqli_close($link);
 
@@ -40,22 +48,21 @@ memory_limit=256M
                exit(1);
        }
 
-       if (!mysqli_query($link, 'DROP TABLE IF EXISTS ps_test')) {
+       if (!mysqli_query($link, 'DROP TABLE IF EXISTS test')) {
                printf("Failed to drop old test table: [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                exit(1);
        }
 
-       $cols = 2500;
        $str = array();
        for ($i = 1; $i <= $cols; $i++) {
                $str[] ="a$i BLOB";
        }
-       $link->query("CREATE TABLE ps_test(" . implode(" , ", $str) . ") ENGINE=MyISAM");
+       $link->query("CREATE TABLE test(" . implode(" , ", $str) . ") ENGINE=MyISAM");
        if (mysqli_errno($link)) {
                printf("Failed to create the test table: [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                die("");
        }
-       $stmt = $link->prepare("INSERT INTO ps_test VALUES(".str_repeat("?, ", $cols-1) . "?)");
+       $stmt = $link->prepare("INSERT INTO test VALUES(".str_repeat("?, ", $cols-1) . "?)");
        var_dump($stmt->id);
        $s = str_repeat("a", 2 << 12);
        $eval_str="\$stmt->bind_param(\"".str_repeat("s",$cols)."\", ";
@@ -77,7 +84,8 @@ memory_limit=256M
 
 
        if (!$link->query("SET GLOBAL max_allowed_packet=$old_max_allowed_packet")) {
-               printf("Failed to set max_allowed_packet the test table: [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+               if (1227 != mysqli_errno($link))
+                       printf("Failed to set max_allowed_packet the test table: [%d] %s\n", mysqli_errno($link), mysqli_error($link));
        }
 
        mysqli_close($link);
@@ -86,15 +94,7 @@ memory_limit=256M
 ?>
 --CLEAN--
 <?php
-       if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
-               printf("Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
-                       $host, $user, $db, $port, $socket);
-               exit(1);
-       }
-       if (!mysqli_query($link, 'DROP TABLE IF EXISTS ps_test')) {
-               printf("Failed to drop the test table: [%d] %s\n", mysqli_errno($link), mysqli_error($link));
-               exit(1);
-       }
+       require_once("clean_table.inc");
 ?>
 --EXPECTF--
 int(1)