summaryrefslogtreecommitdiff
path: root/mysql-test/suite/sys_vars/t/wait_timeout_func.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/sys_vars/t/wait_timeout_func.test')
-rw-r--r--mysql-test/suite/sys_vars/t/wait_timeout_func.test97
1 files changed, 97 insertions, 0 deletions
diff --git a/mysql-test/suite/sys_vars/t/wait_timeout_func.test b/mysql-test/suite/sys_vars/t/wait_timeout_func.test
new file mode 100644
index 00000000000..6b7c8d016d2
--- /dev/null
+++ b/mysql-test/suite/sys_vars/t/wait_timeout_func.test
@@ -0,0 +1,97 @@
+############## mysql-test\t\wait_timeout_func.test ############################
+# #
+# Variable Name: wait_timeout #
+# Scope: GLOBAL | SESSION #
+# Access Type: Dynamic #
+# Data Type: numeric #
+# Default Value: #
+# Range: #
+# #
+# #
+# Creation Date: 2008-03-07 #
+# Author: Salman Rawala #
+# #
+# Modified: HHunger 2008-08-27 Simplified the test and replaced the sleeps. #
+# #
+# Description: Test Cases of Dynamic System Variable wait_timeout #
+# that checks the functionality of this variable #
+# #
+# Reference: #
+# http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html #
+# #
+###############################################################################
+
+--source include/not_embedded.inc
+
+SET @start_value= @@global.wait_timeout;
+
+
+--echo '#--------------------FN_DYNVARS_186_01-------------------------#'
+#######################################################################
+# 1. test of scope session
+#######################################################################
+
+SET @start_time= UNIX_TIMESTAMP();
+--echo connect (test_con1, localhost, root,,);
+connect (test_con1, localhost, root,,);
+connection test_con1;
+
+# If not explicitly changed, @@session.wait_timeout equals @@global.wait_timeout.
+SELECT @@session.wait_timeout = @@global.wait_timeout AS 'Expect 1';
+
+# Find a small value <> @@global.wait_timeout.
+let $session_value =
+`SELECT IF(@@global.wait_timeout <> 2 OR @@global.wait_timeout IS NULL, 2, 3)`;
+--replace_result $session_value <session_value>
+eval SET @@session.wait_timeout = $session_value;
+
+--echo connect (test_con2, localhost, root,,);
+connect (test_con2, localhost, root,,);
+connection test_con2;
+
+--replace_result $session_value <session_value>
+eval SET @@session.wait_timeout = $session_value - 1;
+
+--echo connection default;
+connection default;
+
+--echo wait until connections ready
+let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist;
+--source include/wait_condition.inc
+SELECT info FROM information_schema.processlist;
+
+--echo '#--------------------FN_DYNVARS_186_03-------------------------#'
+#######################################################################
+# 2. test of scope global
+#######################################################################
+
+# Find a small value <> @@global.wait_timeout.
+let $global_value = $session_value + 1;
+--replace_result $global_value <global_value>
+eval SET @@global.wait_timeout= $global_value;
+
+# Changing the @@global.wait_timeout has no influence on the
+# @@session.wait_timeout of already established sessions.
+SELECT @@session.wait_timeout = @start_value AS 'Expect 1';
+
+--echo connect (test_con3, localhost, root,,);
+connect (test_con3, localhost, root,,);
+connection test_con3;
+
+# If not explicitly changed, @@session.wait_timeout equals @@global.wait_timeout.
+SELECT @@session.wait_timeout = @@global.wait_timeout AS 'Expect 1';
+
+--echo connection default;
+connection default;
+# We can be sure that the connections test_con1 and test_con2 must be
+# established because both have already executed a SET @@session.wait_timeout.
+# This means they are or at least were visible within the processlist.
+# Therefore we can now simply wait till both disappear from the processlist.
+let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist;
+--source include/wait_condition.inc
+SELECT info FROM information_schema.processlist;
+
+--replace_result $global_value <global_value> $session_value <session_value>;
+eval SELECT UNIX_TIMESTAMP() - @start_time >= $global_value + $session_value;
+SET @@global.wait_timeout= @start_value;
+