1--TEST--
2mysqli_get_connection_stats()
3--INI--
4mysqlnd.collect_statistics="1"
5mysqlnd.collect_memory_statistics="1"
6--SKIPIF--
7<?PHP
8require_once('skipif.inc');
9require_once('skipifemb.inc');
10require_once('skipifconnectfailure.inc');
11if (!function_exists('mysqli_get_connection_stats')) {
12	die("skip only available with mysqlnd");
13}
14?>
15--FILE--
16<?php
17	$tmp = $link = null;
18	if (!is_null($tmp = @mysqli_get_connection_stats()))
19		printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
20
21	if (!is_null($tmp = @mysqli_get_connection_stats($link)))
22		printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
23
24	require("table.inc");
25
26	if (!is_array($info = mysqli_get_connection_stats($link)) || empty($info))
27		printf("[003] Expecting array/any_non_empty, got %s/%s\n", gettype($info), $info);
28
29	if (!is_array($info2 = mysqli_get_client_stats()) || empty($info2))
30		printf("[004] Expecting array/any_non_empty, got %s/%s\n", gettype($info2), $info2);
31
32	foreach ($info as $k => &$v) {
33		if (strpos($k, "mem_") === 0) {
34			$v = 0;
35		}
36	}
37	foreach ($info2 as $k => &$v) {
38		if (strpos($k, "mem_") === 0) {
39			$v = 0;
40		}
41	}
42
43	if ($info !== $info2) {
44		printf("[005] The hashes should be identical except of the memory related fields\n");
45		var_dump($info);
46		var_dump($info2);
47	}
48
49	if (!is_array($info = $link->get_connection_stats()) || empty($info))
50		printf("[006] Expecting array/any_non_empty, got %s/%s\n", gettype($info), $info);
51
52	foreach ($info as $k => &$v) {
53		if (strpos($k, "mem_") === 0) {
54			$v = 0;
55		}
56	}
57
58	if ($info !== $info2) {
59		printf("[007] The hashes should be identical except of the memory related fields\n");
60		var_dump($info);
61		var_dump($info2);
62	}
63
64	mysqli_close($link);
65	require("table.inc");
66
67	if (!is_array($info = mysqli_get_connection_stats($link)) || empty($info))
68		printf("[008] Expecting array/any_non_empty, got %s/%s\n", gettype($info), $info);
69
70	if (!is_array($info2 = mysqli_get_client_stats()) || empty($info2))
71		printf("[009] Expecting array/any_non_empty, got %s/%s\n", gettype($info2), $info2);
72
73	// assuming the test is run in a plain-vanilla CLI environment
74	if ($info === $info2) {
75		printf("[010] The hashes should not be identical\n");
76		var_dump($info);
77		var_dump($info2);
78	}
79
80	print "done!";
81?>
82--CLEAN--
83<?php
84	require_once("clean_table.inc");
85?>
86--EXPECTF--
87done!
88