summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/perfschema/t/dml_setup_instruments.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/perfschema/t/dml_setup_instruments.test')
-rw-r--r--mysql-test/suite/perfschema/t/dml_setup_instruments.test103
1 files changed, 103 insertions, 0 deletions
diff --git a/mysql-test/suite/perfschema/t/dml_setup_instruments.test b/mysql-test/suite/perfschema/t/dml_setup_instruments.test
new file mode 100644
index 00000000..9d178ef2
--- /dev/null
+++ b/mysql-test/suite/perfschema/t/dml_setup_instruments.test
@@ -0,0 +1,103 @@
+# Tests for PERFORMANCE_SCHEMA
+
+--source include/not_embedded.inc
+--source include/have_perfschema.inc
+
+# The query result are not re producible,
+# due to variations in platforms and plugins
+# We still execute the select statement, for:
+# - code coverage
+# - make sure it does not crash
+# - valgrind coverage
+
+--disable_result_log
+select * from performance_schema.setup_instruments;
+--enable_result_log
+
+# DEBUG_SYNC::mutex is dependent on the build (DEBUG only)
+
+select * from performance_schema.setup_instruments
+ where name like 'Wait/Synch/Mutex/sql/%'
+ and name not in ('wait/synch/mutex/sql/DEBUG_SYNC::mutex')
+ order by name limit 10;
+
+# CRYPTO_dynlock_value::lock is dependent on the build (SSL)
+# LOCK_named_pipe_full_access_group is dependent on the build (Windows)
+
+select * from performance_schema.setup_instruments
+ where name like 'Wait/Synch/Rwlock/sql/%'
+ and name not in (
+ 'wait/synch/rwlock/sql/CRYPTO_dynlock_value::lock',
+ 'wait/synch/rwlock/sql/LOCK_named_pipe_full_access_group')
+ order by name limit 10;
+
+# COND_handler_count is dependent on the build (Windows only)
+# DEBUG_SYNC::cond is dependent on the build (DEBUG only)
+# COND_main_thread_in_use is dependent on the build (non Windows)
+# COND_start_signal_handler is dependent on the build (non Windows)
+
+select * from performance_schema.setup_instruments
+ where name like 'Wait/Synch/Cond/sql/%'
+ and name not in (
+ 'wait/synch/cond/sql/COND_open',
+ 'wait/synch/cond/sql/COND_handler_count',
+ 'wait/synch/cond/sql/DEBUG_SYNC::cond',
+ 'wait/synch/cond/sql/COND_socket_listener_active',
+ 'wait/synch/cond/sql/COND_start_signal_handler')
+ order by name limit 10;
+
+--disable_result_log
+select * from performance_schema.setup_instruments
+ where name='Wait';
+--enable_result_log
+
+--disable_result_log
+select * from performance_schema.setup_instruments
+ where enabled='YES';
+--enable_result_log
+
+--error ER_TABLEACCESS_DENIED_ERROR
+insert into performance_schema.setup_instruments
+ set name='FOO', enabled='YES', timed='YES';
+
+--error ER_WRONG_PERFSCHEMA_USAGE
+update performance_schema.setup_instruments
+ set name='FOO';
+
+update performance_schema.setup_instruments
+ set enabled='NO';
+
+update performance_schema.setup_instruments
+ set timed='NO';
+
+--disable_result_log
+select * from performance_schema.setup_instruments;
+--enable_result_log
+
+update performance_schema.setup_instruments
+ set enabled='YES', timed='YES';
+
+--error ER_TABLEACCESS_DENIED_ERROR
+delete from performance_schema.setup_instruments;
+
+--error ER_TABLEACCESS_DENIED_ERROR
+delete from performance_schema.setup_instruments
+ where name like 'Wait/Synch/%';
+
+LOCK TABLES performance_schema.setup_instruments READ;
+UNLOCK TABLES;
+
+LOCK TABLES performance_schema.setup_instruments WRITE;
+UNLOCK TABLES;
+
+--echo #
+--echo # Bug#13813193 ASSERTION `TABLE->READ_SET ==
+--echo # &TABLE->DEF_READ_SET' FAILED / MYSQL_UPDATE
+--echo #
+UPDATE performance_schema.setup_instruments SET timed='NO'
+ORDER BY RAND();
+
+# Test cleanup
+
+update performance_schema.setup_instruments
+ set enabled='YES', TIMED='YES';