diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
commit | 3f619478f796eddbba6e39502fe941b285dd97b1 (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/suite/perfschema/t/show_coverage.test | |
parent | Initial commit. (diff) | |
download | mariadb-upstream.tar.xz mariadb-upstream.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/suite/perfschema/t/show_coverage.test')
-rw-r--r-- | mysql-test/suite/perfschema/t/show_coverage.test | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/mysql-test/suite/perfschema/t/show_coverage.test b/mysql-test/suite/perfschema/t/show_coverage.test new file mode 100644 index 00000000..6a8d90d6 --- /dev/null +++ b/mysql-test/suite/perfschema/t/show_coverage.test @@ -0,0 +1,186 @@ +################### suite/perfschema/t/show_coverage.test ###################### +# # +# Testcases to increase DGCOV coverage of the status and system variable # +# implementation in the Performance Schema. # +# # +################################################################################ +--source include/have_perfschema.inc +--source include/not_embedded.inc +--source include/no_protocol.inc +--source include/count_sessions.inc + +--echo # +--echo # TEST 1 +--echo # Handling of SHOW STATUS/VARIABLES ... WHERE +--echo # +SHOW STATUS WHERE VARIABLE_NAME LIKE "foo"; +--echo # +SHOW GLOBAL STATUS WHERE VARIABLE_NAME LIKE "foo"; +--echo # +SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo"; +--echo # +SHOW VARIABLES WHERE VARIABLE_NAME LIKE "foo"; +--echo # +SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME LIKE "foo"; +--echo # +SHOW SESSION VARIABLES WHERE VARIABLE_NAME LIKE "foo"; + +--echo # +--echo # TEST 2 +--echo # CREATE..SELECT -- Expect correct ER_WARN_DEPRECATED_SYNTAX +--echo # +USE test; +CREATE TABLE t0 SELECT * FROM information_schema.global_status WHERE variable_name = 'COM_SELECT'; +DROP TABLE t0; + +--echo # +--echo # TEST 3 +--echo # Select status and system variable tables using ORDER BY to exercise the +--echo # rnd_pos() method +--echo # +use performance_schema; +--disable_result_log +select * from global_variables order by variable_name; +select * from variables_by_thread order by variable_name; +select * from session_variables order by variable_name; +select * from global_status order by variable_name; +select * from session_status order by variable_name; +select * from status_by_thread order by variable_name; +select * from status_by_user order by variable_name; +select * from status_by_host order by variable_name; +select * from status_by_account order by variable_name; +--enable_result_log + +--echo # +--echo # TEST 4 +--echo # Handling of SHOW STATUS/VARIABLES ... WHERE +--echo # +SHOW STATUS WHERE VARIABLE_NAME LIKE "foo"; +--echo # +SHOW GLOBAL STATUS WHERE VARIABLE_NAME LIKE "foo"; +--echo # +SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo"; +--echo # +SHOW VARIABLES WHERE VARIABLE_NAME LIKE "foo"; +--echo # +SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME LIKE "foo"; +--echo # +SHOW SESSION VARIABLES WHERE VARIABLE_NAME LIKE "foo"; + +--echo # +--echo # TEST 5 +--echo # Confirm FLUSH STATUS resets counters for all threads. +--echo # +--echo # +--echo # Create a new connection +--connect(con1, localhost, root,,) +--echo # +--echo # Record thread id +let $thread_id= `SELECT THREAD_ID FROM performance_schema.threads WHERE PROCESSLIST_ID = CONNECTION_ID()`; +--echo # +--echo # Increase bytes_received for new connection +USE test; +SHOW TABLES; +--connection default +USE performance_schema; +--disable_query_log +eval SELECT $thread_id INTO @thread_id; +--enable_query_log + +--echo # +--echo # Record bytes_received for other connection +SELECT variable_value FROM status_by_thread + WHERE variable_name = "bytes_received" and thread_id = @thread_id INTO @bytes_before; +--echo # +--echo # Reset status counters +FLUSH STATUS; +--echo # +--echo # Record bytes_received after reset +SELECT variable_value FROM status_by_thread + WHERE variable_name = "bytes_received" and thread_id = @thread_id INTO @bytes_after; +--echo # +--echo # Expect bytes_before > bytes_after +SELECT @bytes_before > @bytes_after AS 'Expect 1'; +--echo # +--echo # Expect bytes_after is zero +SELECT @bytes_after AS 'Expect 0'; + +disconnect con1; +--source include/wait_until_count_sessions.inc + + +--echo # +--echo # TEST 6 +--echo # +--echo # Bug#28291258 FLUSH STATUS ADDS TWICE TO GLOBAL VALUES +--echo # + +--echo # +--echo # Default connection +--let $initial_global_value = query_get_value(SHOW GLOBAL STATUS LIKE 'Slow_queries', Value, 1) + +--source include/count_sessions.inc + +--echo # +--echo # First connection +--connect (con1, localhost, root,,) + +## Global value requested from the first session must not change +--let $current_global_value = query_get_value(SHOW GLOBAL STATUS LIKE 'Slow_queries', Value, 1) +--let $assert_cond = $current_global_value - $initial_global_value = 0 +--let $assert_text = Global value requested from the first session must not change +--source include/assert.inc + +--echo # +--echo # Generate a slow query +--echo # +SET long_query_time = 2; +SELECT SLEEP(4); +SET long_query_time = @@global.long_query_time; +--echo # + +## Global value requested from the first session after SLEEP() must increase by 1 +--let $current_global_value = query_get_value(SHOW GLOBAL STATUS LIKE 'Slow_queries', Value, 1) +--let $first_session_value = query_get_value(SHOW SESSION STATUS LIKE 'Slow_queries', Value, 1) +--let $assert_cond = $current_global_value - $initial_global_value = 1 +--let $assert_text = Global value requested from the first session after SLEEP() must increase by 1 +--source include/assert.inc +--let $assert_cond = $first_session_value = 1 +--let $assert_text = First session value must increase by 1 +--source include/assert.inc + +--connection default +--disconnect con1 +--source include/wait_until_count_sessions.inc + +--echo # +--echo # Default connection +--connection default + +## Global value requested from the default session after DISCONNECT must remain the same +--let $current_global_value = query_get_value(SHOW GLOBAL STATUS LIKE 'Slow_queries', Value, 1) +--let $default_session_value = query_get_value(SHOW SESSION STATUS LIKE 'Slow_queries', Value, 1) +--let $assert_cond = $current_global_value - $initial_global_value = 1 +--let $assert_text = Global value requested from the default session after DISCONNECT must remain the same +--source include/assert.inc + +## Default session value must remain zero +--let $assert_cond = $default_session_value = 0 +--let $assert_text = Default session value must remain zero +--source include/assert.inc + +--echo # +FLUSH STATUS; +--echo # + +## Global value requested from the default session after FLUSH must remain the same +--let $current_global_value = query_get_value(SHOW GLOBAL STATUS LIKE 'Slow_queries', Value, 1) +--let $default_session_value = query_get_value(SHOW SESSION STATUS LIKE 'Slow_queries', Value, 1) +--let $assert_cond = $current_global_value - $initial_global_value = 1 +--let $assert_text = Global value requested from the default session after FLUSH must remain the same +--source include/assert.inc + +## Default session value after FLUSH must remain zero +--let $assert_cond = $default_session_value = 0 +--let $assert_text = Default session value after FLUSH must remain zero +--source include/assert.inc |