MFH - Adding XFAIL for some tests which expect the zval cache of mysqlnd to be on. It has been disabled for the PHP 5.3.0 release. Adding INI sections to ensure that statistics are collected. Adding tests that check if statistics collection can be disabled

This commit is contained in:
Ulf Wendel 2009-07-01 12:52:58 +00:00
parent d9061f95fa
commit b5455f7a7d
7 changed files with 139 additions and 9 deletions

View File

@ -1,5 +1,10 @@
--TEST--
mysqli_get_cache_stats()
--XFAIL--
zval caching has been temporarily disabled for the 5.3.0 release
--INI--
mysqlnd.collect_statistics="1"
mysqlnd.collect_memory_statistics="1"
--SKIPIF--
<?PHP
require_once('skipif.inc');
@ -22,9 +27,9 @@ if (!function_exists('mysqli_get_cache_stats')) {
var_dump($info);
if ($info['size'] !== $info['free_items'])
if ($info["size"] !== $info['free_items'])
printf("[003] Unused cache should have size (%d) == free_items (%d)\n",
$info['size'], $info['free_items']);
$info["size"], $info['free_items']);
require_once('table.inc');

View File

@ -1,5 +1,10 @@
--TEST--
mysqli_get_cache_stats() - freeing for buffered result sets
--XFAIL--
zval caching has been temporarily disabled for the 5.3.0 release
--INI--
mysqlnd.collect_statistics="1"
mysqlnd.collect_memory_statistics="1"
--SKIPIF--
<?PHP
require_once('skipif.inc');

View File

@ -0,0 +1,55 @@
--TEST--
mysqli_get_cache_stats() - disabled via php.ini
--INI--
mysqlnd.collect_statistics="0"
mysqlnd.collect_memory_statistics="0"
--SKIPIF--
<?PHP
require_once('skipif.inc');
require_once('skipifemb.inc');
require_once('skipifconnectfailure.inc');
if (!function_exists('mysqli_get_cache_stats')) {
die("skip only available with mysqlnd");
}
?>
--FILE--
<?php
$before = mysqli_get_cache_stats();
if (!is_array($before) || empty($before)) {
printf("[001] Expecting non-empty array, got %s.\n", gettype($before));
var_dump($before);
}
require_once('table.inc');
if (!$res = mysqli_query($link, "SELECT id, label FROM test")) {
printf("[002] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
while ($row = mysqli_fetch_assoc($res))
;
if (!$res = mysqli_query($link, "SELECT id, label FROM test")) {
printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
while ($row = mysqli_fetch_assoc($res))
;
$after = mysqli_get_cache_stats();
if ($before !== $after) {
printf("[004] Statistics have changed\n");
var_dump($before);
var_dump($after);
}
$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);
}
}
mysqli_close($link);
print "done!";
?>
--EXPECTF--
done!

View File

@ -15,19 +15,25 @@ mysqlnd.collect_memory_statistics=0
--FILE--
<?php
$before = mysqli_get_client_stats();
// connect and table inc connect to mysql and create tables
require_once('connect.inc');
require_once('table.inc');
$after = mysqli_get_client_stats();
if (!is_array($before) || empty($before)) {
printf("[001] Expecting non-empty array, got %s.\n", gettype($before));
var_dump($before);
}
// connect and table inc connect to mysql and create tables
require_once('connect.inc');
require_once('table.inc');
$after = mysqli_get_client_stats();
if ($before !== $after) {
printf("[002] Statistics have changed\n");
var_dump($before);
var_dump($after);
}
foreach ($after as $k => $v)
if ($v != 0) {
printf("[002] Field %s should not have any other value but 0, got %s.\n",
printf("[003] Field %s should not have any other value but 0, got %s.\n",
$k, $v);
}

View File

@ -1,5 +1,8 @@
--TEST--
mysqli_get_client_stats() - skipped rows
--INI--
mysqlnd.collect_statistics="1"
mysqlnd.collect_memory_statistics="1"
--SKIPIF--
<?PHP
require_once('skipif.inc');

View File

@ -1,5 +1,8 @@
--TEST--
mysqli_get_connection_stats()
--INI--
mysqlnd.collect_statistics="1"
mysqlnd.collect_memory_statistics="1"
--SKIPIF--
<?PHP
require_once('skipif.inc');
@ -39,7 +42,7 @@ if (!function_exists('mysqli_get_connection_stats')) {
}
if ($info !== $info2) {
printf("[005] The hashes should be identical\n");
printf("[005] The hashes should be identical except of the memory related fields\n");
var_dump($info);
var_dump($info2);
}

View File

@ -0,0 +1,53 @@
--TEST--
mysqli_get_connection_stats() - disable via php.ini
--INI--
mysqlnd.collect_statistics="0"
mysqlnd.collect_memory_statistics="0"
--SKIPIF--
<?PHP
require_once('skipif.inc');
require_once('skipifemb.inc');
require_once('skipifconnectfailure.inc');
if (!function_exists('mysqli_get_connection_stats')) {
die("skip only available with mysqlnd");
}
?>
--FILE--
<?php
// connect and table inc connect to mysql and create tables
require_once('connect.inc');
if (!$link = 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);
}
$before = mysqli_get_connection_stats($link);
if (!is_array($before) || empty($before)) {
printf("[002] Expecting non-empty array, got %s.\n", gettype($before));
var_dump($before);
}
mysqli_close($link);
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);
}
$after = mysqli_get_connection_stats($link);
if ($before !== $after) {
printf("[004] Statistics differ!");
var_dump($before);
var_dump($after);
}
foreach ($after as $k => $v)
if ($v != 0) {
printf("[004] Field %s should not have any other value but 0, got %s.\n",
$k, $v);
}
mysqli_close($link);
print "done!";
?>
--EXPECTF--
done!