diff options
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.test | 97 |
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; + |