diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/mysqli/tests/mysqli_get_client_stats.phpt | 77 |
1 files changed, 74 insertions, 3 deletions
diff --git a/ext/mysqli/tests/mysqli_get_client_stats.phpt b/ext/mysqli/tests/mysqli_get_client_stats.phpt index d156fd695b..ef5ef6ee69 100644 --- a/ext/mysqli/tests/mysqli_get_client_stats.phpt +++ b/ext/mysqli/tests/mysqli_get_client_stats.phpt @@ -63,14 +63,14 @@ mysqlnd.collect_memory_statistics=1 $test_counter++; if (is_array($current) && is_array($expected)) { if ($current[$field] <= $expected[$field]) { - printf("[%03d] %s Expecting %s = %s/%s, got %s/%s\n", + printf("[%03d] %s Expecting %s > %s/%s, got %s/%s\n", $test_counter, $desc, $field, $expected[$field], gettype($expected[$field]), $current[$field], gettype($current[$field])); } } else { if ($current <= $expected) { - printf("[%03d] %s Expecting %s = %s/%s, got %s/%s\n", + printf("[%03d] %s Expecting %s > %s/%s, got %s/%s\n", $test_counter, $desc, $field, $expected, gettype($expected), $current, gettype($current)); @@ -107,6 +107,7 @@ mysqlnd.collect_memory_statistics=1 } $test_counter = 6; + mysqli_get_client_stats_assert_gt('bytes_sent', $new_info, $info, $test_counter); mysqli_get_client_stats_assert_gt('bytes_received', $new_info, $info, $test_counter); mysqli_get_client_stats_assert_gt('packets_sent', $new_info, $info, $test_counter); @@ -135,6 +136,10 @@ mysqlnd.collect_memory_statistics=1 mysqli_get_client_stats_assert_eq('connect_failure', $new_info, $info, $test_counter); mysqli_get_client_stats_assert_eq('connection_reused', $new_info, $info, $test_counter); + // No data fetched so far + mysqli_get_client_stats_assert_eq('bytes_received_real_data_normal', $new_info, "0", $test_counter); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_ps', $new_info, "0", $test_counter); + require('table.inc'); if (!is_array($info = mysqli_get_client_stats()) || empty($info)) printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", @@ -154,11 +159,17 @@ mysqlnd.collect_memory_statistics=1 $expected['result_set_queries'] = (string)($expected['result_set_queries'] + 1); $expected['rows_buffered_from_client_normal'] = (string)($expected['rows_buffered_from_client_normal'] + 1); - if (!is_array($info = mysqli_get_client_stats()) || empty($info)) printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + mysqli_get_client_stats_assert_gt('bytes_sent', $info, $expected, $test_counter); + mysqli_get_client_stats_assert_gt('bytes_received', $info, $expected, $test_counter); + + // real_data_* get incremeneted after mysqli_*fetch*() + mysqli_get_client_stats_assert_eq('bytes_received_real_data_normal', $info, "0", $test_counter); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_ps', $info, "0", $test_counter); + mysqli_get_client_stats_assert_eq('rows_fetched_from_server_normal', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_client_normal_buffered', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('buffered_sets', $info, $expected, $test_counter); @@ -176,6 +187,11 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + // fetch will increment + mysqli_get_client_stats_assert_gt('bytes_received_real_data_normal', $info, $expected, $test_counter); + $expected['bytes_received_real_data_normal'] = $info['bytes_received_real_data_normal']; + mysqli_get_client_stats_assert_eq('bytes_received_real_data_ps', $info, "0", $test_counter); + mysqli_get_client_stats_assert_eq('rows_fetched_from_server_normal', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_client_normal_buffered', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_buffered_from_client_normal', $info, $expected, $test_counter); @@ -188,17 +204,21 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] SELECT id, label FROM test failed, [%d] %s\n", ++$test_counter, mysqli_errno($link), mysqli_error($link)); + assert(mysqli_num_rows($res) == $num_rows); if (!is_array($info = mysqli_get_client_stats()) || empty($info)) printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + $expected['rows_fetched_from_server_normal'] = (string)($expected['rows_fetched_from_server_normal'] + $num_rows); $expected['rows_buffered_from_client_normal'] = (string)($expected['rows_buffered_from_client_normal'] + $num_rows); $expected['buffered_sets'] = (string)($expected['buffered_sets'] + 1); $expected['result_set_queries'] = (string)($expected['result_set_queries'] + 1); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_normal', $info, $expected, $test_counter); + mysqli_get_client_stats_assert_eq('rows_fetched_from_server_normal', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_client_normal_buffered', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('buffered_sets', $info, $expected, $test_counter); @@ -213,6 +233,8 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + + mysqli_get_client_stats_assert_eq('bytes_received_real_data_normal', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_server_normal', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_client_normal_buffered', $info, $expected, $test_counter); @@ -221,9 +243,13 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] SELECT id, label FROM test failed, [%d] %s\n", ++$test_counter, mysqli_errno($link), mysqli_error($link)); + if (!is_array($info = mysqli_get_client_stats()) || empty($info)) + printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", + ++$test_counter, gettype($info), $info); mysqli_get_client_stats_assert_eq('rows_fetched_from_server_normal', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_client_normal_unbuffered', $info, $expected, $test_counter); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_normal', $info, $expected, $test_counter); while ($row = mysqli_fetch_assoc($res)) ; @@ -238,6 +264,9 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + mysqli_get_client_stats_assert_gt('bytes_received_real_data_normal', $info, $expected, $test_counter); + $expected['bytes_received_real_data_normal'] = $info['bytes_received_real_data_normal']; + mysqli_get_client_stats_assert_eq('rows_fetched_from_server_normal', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_client_normal_unbuffered', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('unbuffered_sets', $info, $expected, $test_counter); @@ -260,6 +289,9 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + mysqli_get_client_stats_assert_gt('bytes_received_real_data_normal', $info, $expected, $test_counter); + $expected['bytes_received_real_data_normal'] = $info['bytes_received_real_data_normal']; + mysqli_get_client_stats_assert_eq('rows_fetched_from_server_normal', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_client_normal_unbuffered', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('unbuffered_sets', $info, $expected, $test_counter); @@ -278,6 +310,8 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_normal', $info, $expected, $test_counter); + mysqli_get_client_stats_assert_eq('rows_fetched_from_server_normal', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_client_normal_unbuffered', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_skipped_normal', $info, $expected, $test_counter); @@ -302,6 +336,9 @@ mysqlnd.collect_memory_statistics=1 ++$test_counter, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); mysqli_stmt_free_result($stmt); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_ps', $info, "0", $test_counter); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_normal', $info, $expected, $test_counter); + $expected['rows_fetched_from_server_ps'] = (string)($expected['rows_fetched_from_server_ps'] + $num_rows); $expected['result_set_queries'] = (string)($expected['result_set_queries'] + 1); $expected['ps_buffered_sets'] = (string)($expected['ps_buffered_sets'] + 1); @@ -318,6 +355,8 @@ mysqlnd.collect_memory_statistics=1 mysqli_get_client_stats_assert_eq('ps_buffered_sets', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_buffered_from_client_ps', $info, $expected, $test_counter); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_ps', $info, "0", $test_counter); + print "Testing buffered Prepared Statements... - fetching all\n"; if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test') || @@ -347,6 +386,10 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + + mysqli_get_client_stats_assert_gt('bytes_received_real_data_ps', $info, $expected, $test_counter); + $expected['bytes_received_real_data_ps'] = $info['bytes_received_real_data_ps']; + mysqli_get_client_stats_assert_eq('rows_fetched_from_server_ps', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_client_ps_buffered', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('result_set_queries', $info, $expected, $test_counter); @@ -384,6 +427,9 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + mysqli_get_client_stats_assert_gt('bytes_received_real_data_ps', $info, $expected, $test_counter); + $expected['bytes_received_real_data_ps'] = $info['bytes_received_real_data_ps']; + mysqli_get_client_stats_assert_eq('rows_fetched_from_server_ps', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_client_ps_buffered', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('result_set_queries', $info, $expected, $test_counter); @@ -426,6 +472,9 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + mysqli_get_client_stats_assert_gt('bytes_received_real_data_ps', $info, $expected, $test_counter); + $expected['bytes_received_real_data_ps'] = $info['bytes_received_real_data_ps']; + mysqli_get_client_stats_assert_eq('rows_fetched_from_server_ps', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_client_ps_unbuffered', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('result_set_queries', $info, $expected, $test_counter); @@ -458,6 +507,9 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + mysqli_get_client_stats_assert_gt('bytes_received_real_data_ps', $info, $expected, $test_counter); + $expected['bytes_received_real_data_ps'] = $info['bytes_received_real_data_ps']; + mysqli_get_client_stats_assert_eq('rows_fetched_from_server_ps', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_client_ps_unbuffered', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('result_set_queries', $info, $expected, $test_counter); @@ -473,6 +525,8 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_ps', $info, $expected, $test_counter); + mysqli_get_client_stats_assert_eq('rows_skipped_ps', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('flushed_ps_sets', $info, $expected, $test_counter); mysqli_get_client_stats_assert_eq('rows_fetched_from_server_ps', $info, $expected, $test_counter); @@ -489,6 +543,9 @@ mysqlnd.collect_memory_statistics=1 printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($info), $info); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_normal', $info, $expected, $test_counter); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_ps', $info, $expected, $test_counter); + // // result_set_queries statistics // @@ -518,6 +575,9 @@ mysqlnd.collect_memory_statistics=1 mysqli_get_client_stats_assert_eq('result_set_queries', $new_info, (string)($info['result_set_queries'] + 1), $test_counter); $info = $new_info; + mysqli_get_client_stats_assert_gt('bytes_received_real_data_normal', $info, $expected, $test_counter); + $expected['bytes_received_real_data_normal'] = $info['bytes_received_real_data_normal']; + // // non_result_set_queries - DDL // @@ -673,6 +733,7 @@ mysqlnd.collect_memory_statistics=1 if (!is_array($new_info = mysqli_get_client_stats()) || empty($new_info)) printf("[%03d] Expecting array/any_non_empty, got %s/%s\n", ++$test_counter, gettype($new_info), $new_info); + mysqli_get_client_stats_assert_eq('non_result_set_queries', $new_info, (string)($info['non_result_set_queries'] + 1), $test_counter, 'CREATE SERVER'); $info = $new_info; @@ -697,6 +758,9 @@ mysqlnd.collect_memory_statistics=1 $info = $new_info; } + mysqli_get_client_stats_assert_eq('bytes_received_real_data_normal', $info, $expected, $test_counter); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_ps', $info, $expected, $test_counter); + /* We don't test the NDB ones. 13.1. Data Definition Statements @@ -778,6 +842,7 @@ mysqlnd.collect_memory_statistics=1 mysqli_get_client_stats_assert_eq('non_result_set_queries', $new_info, (string)($info['non_result_set_queries'] + 1), $test_counter, 'TRUNCATE'); $info = $new_info; + $file = tempnam(sys_get_temp_dir(), 'mysqli_test'); if ($fp = fopen($file, 'w')) { @fwrite($fp, '1;"a"'); @@ -794,6 +859,9 @@ mysqlnd.collect_memory_statistics=1 unlink($file); } + mysqli_get_client_stats_assert_eq('bytes_received_real_data_normal', $info, $expected, $test_counter); + mysqli_get_client_stats_assert_eq('bytes_received_real_data_ps', $info, $expected, $test_counter); + /* We skip those: 13.2. Data Manipulation Statements @@ -842,6 +910,9 @@ mysqlnd.collect_memory_statistics=1 mysqli_close($link); + mysqli_get_client_stats_assert_gt('bytes_received_real_data_normal', $info, $expected, $test_counter); + $expected['bytes_received_real_data_normal'] = $info['bytes_received_real_data_normal']; + mysqli_get_client_stats_assert_eq('bytes_received_real_data_ps', $info, $expected, $test_counter); /* no_index_used |