summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/perfschema/t/show_coverage.test
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 18:00:34 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 18:00:34 +0000
commit3f619478f796eddbba6e39502fe941b285dd97b1 (patch)
treee2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/suite/perfschema/t/show_coverage.test
parentInitial commit. (diff)
downloadmariadb-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.test186
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