diff options
Diffstat (limited to 'mysql-test/include')
| -rw-r--r-- | mysql-test/include/galera_cluster.inc | 23 | ||||
| -rw-r--r-- | mysql-test/include/wsrep_wait_condition.inc | 23 | ||||
| -rw-r--r-- | mysql-test/include/wsrep_wait_disconnect.inc | 20 | ||||
| -rw-r--r-- | mysql-test/include/wsrep_wait_membership.inc | 10 |
4 files changed, 52 insertions, 24 deletions
diff --git a/mysql-test/include/galera_cluster.inc b/mysql-test/include/galera_cluster.inc index 7f76ea59c7f..48b5bc631db 100644 --- a/mysql-test/include/galera_cluster.inc +++ b/mysql-test/include/galera_cluster.inc @@ -3,16 +3,29 @@ # # Description # ----------- -# Configure galera cluster with 2 nodes. +# Configure galera cluster with $galera_cluster_size (default: 2) nodes. # ---let $galera_cluster_size = 2 +if (!$galera_cluster_size) +{ +# --die ERROR IN TEST: $galera_cluster_size variable must be set + --let $galera_cluster_size = 2 +} + --source include/galera_init.inc --source include/have_innodb.inc --source include/galera_wait_ready.inc ---connection node_2 ---source include/galera_wait_ready.inc ---source include/have_innodb.inc + +--let $_galera_node= $galera_cluster_size + +while ($_galera_node != 1) +{ + --connection node_$_galera_node + --source include/galera_wait_ready.inc + --source include/have_innodb.inc + + --dec $_galera_node +} --connection node_1 diff --git a/mysql-test/include/wsrep_wait_condition.inc b/mysql-test/include/wsrep_wait_condition.inc new file mode 100644 index 00000000000..89b310475eb --- /dev/null +++ b/mysql-test/include/wsrep_wait_condition.inc @@ -0,0 +1,23 @@ +# Helper script to allow to wait for condition on a node that may become +# non-primary. It attempts to preserve wsrep_sync_wait and wsrep_on session +# variables. +# +# We are forced to restore a global value for the session wsrep_sync_wait +# here because we can not always issue a SELECT query to obtain the original +# value and then restore it + +disable_query_log; +SET SESSION wsrep_sync_wait = 8; +let $restore_wsrep_sync_wait = `SELECT @@GLOBAL.wsrep_sync_wait`; +let $restore_wsrep_on = `SELECT @@wsrep_on`; +SET SESSION wsrep_on = OFF; + +--source include/wait_condition.inc + +if ($restore_wsrep_on == 1) +{ + --eval SET SESSION wsrep_on = ON +} +--eval SET SESSION wsrep_sync_wait = $restore_wsrep_sync_wait + +enable_query_log; diff --git a/mysql-test/include/wsrep_wait_disconnect.inc b/mysql-test/include/wsrep_wait_disconnect.inc index 740fc0d9426..504e8069cba 100644 --- a/mysql-test/include/wsrep_wait_disconnect.inc +++ b/mysql-test/include/wsrep_wait_disconnect.inc @@ -1,20 +1,2 @@ let $wait_condition = SELECT 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready' AND VARIABLE_VALUE = 'OFF'; -# since this is called until AFTER provider disconnects,we need to allow -# queries in non-prim -# -# We are also forced to use a hard-coded value for wsrep_sync_wait here because -# we can not issue a SELECT query to obtain the original value and then restore -# it -disable_query_log; -SET SESSION wsrep_sync_wait = 7; ---let $restore_wsrep_on = `SHOW VARIABLES WHERE Variable_name = 'wsrep_on' AND Value = 'ON'` -SET SESSION wsrep_on = OFF; - ---source include/wait_condition.inc - -if ($restore_wsrep_on != "") -{ - --eval SET SESSION wsrep_on = ON -} -SET SESSION wsrep_sync_wait = 15; -enable_query_log; +--source include/wsrep_wait_condition.inc diff --git a/mysql-test/include/wsrep_wait_membership.inc b/mysql-test/include/wsrep_wait_membership.inc new file mode 100644 index 00000000000..8bc1920ddfb --- /dev/null +++ b/mysql-test/include/wsrep_wait_membership.inc @@ -0,0 +1,10 @@ +# Waits for N members in the cluster +# +# Usage: +# --let $members=1 +# --source wsrep_wait_membership.inc +# + +let $wait_condition = SELECT VARIABLE_VALUE = $members FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; + +--source include/wsrep_wait_condition.inc |
