################### 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