1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 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 GLOBAL 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 GLOBAL 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
|