summaryrefslogtreecommitdiff
path: root/mysql-test/suite/sys_vars/t
diff options
context:
space:
mode:
authorNirbhay Choubey <nirbhay.choubey@gmail.com>2014-09-08 13:19:20 -0400
committerNirbhay Choubey <nirbhay.choubey@gmail.com>2014-09-08 13:19:20 -0400
commit26e048ffd30e05a60a330a708341e1fff0df0a9e (patch)
tree24b2b820de9eb8e61659df21768617ef7fa7690e /mysql-test/suite/sys_vars/t
parent7c58dd80e599862f42c60186c0c913cb9f64b6b6 (diff)
downloadmariadb-git-26e048ffd30e05a60a330a708341e1fff0df0a9e.tar.gz
Merged sys_vars.wsrep_* tests from maria-10.0-galera tree.
Diffstat (limited to 'mysql-test/suite/sys_vars/t')
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_auto_increment_control_basic.test49
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_causal_reads_basic.test52
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_certify_nonpk13
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_certify_nonpk_basic.test49
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_cluster_address_basic.test92
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_cluster_name_basic.test46
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_convert_lock_to_trx_basic.test49
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_data_home_dir_basic.test77
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_dbug_option_basic.test47
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_debug_basic.test49
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_debug_option_basic.test13
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_desync_basic.test51
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_drupal_282555_workaround_basic.test49
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_forced_binlog_format_basic.test52
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_load_data_splitting_basic.test49
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_log_conflicts_basic.test49
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_max_ws_rows_basic.test53
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_max_ws_size_basic.test53
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_mysql_replication_bundle_basic.test53
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_node_address_basic.test87
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_node_incoming_address_basic.test89
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_node_name_basic.test49
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test48
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_on_basic.test52
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_osu_method_basic.test60
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_provider_basic.test42
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test47
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_recover_basic.test73
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_replicate_myisam_basic.test43
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_restart_slave_basic.test43
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_retry_autocommit_basic.test59
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_slave_threads_basic.test59
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_sst_auth_basic.test57
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_sst_donor_basic.test55
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_sst_donor_rejects_queries_basic.test49
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_sst_method_basic.test64
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test60
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_start_position_basic.test62
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_wsrep_provider_basic.test11
39 files changed, 1491 insertions, 563 deletions
diff --git a/mysql-test/suite/sys_vars/t/wsrep_auto_increment_control_basic.test b/mysql-test/suite/sys_vars/t/wsrep_auto_increment_control_basic.test
index 91d3c578a2c..5dc23cf2ad6 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_auto_increment_control_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_auto_increment_control_basic.test
@@ -1,13 +1,42 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_auto_increment_control;
+--echo #
+--echo # wsrep_auto_increment_control
+--echo #
-set @@global.wsrep_auto_increment_control=ON;
-set @@global.wsrep_auto_increment_control=OFF;
-set @@global.wsrep_auto_increment_control=1;
-set @@global.wsrep_auto_increment_control=0;
---Error 1231
-SET @@global.wsrep_auto_increment_control = -1;
+--echo # save the initial value
+SET @wsrep_auto_increment_control_global_saved = @@global.wsrep_auto_increment_control;
-set @@global.wsrep_auto_increment_control = @start_value;
+--echo # default
+SELECT @@global.wsrep_auto_increment_control;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_auto_increment_control;
+SET @@global.wsrep_auto_increment_control=OFF;
+SELECT @@global.wsrep_auto_increment_control;
+SET @@global.wsrep_auto_increment_control=ON;
+SELECT @@global.wsrep_auto_increment_control;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_auto_increment_control='OFF';
+SELECT @@global.wsrep_auto_increment_control;
+SET @@global.wsrep_auto_increment_control=ON;
+SELECT @@global.wsrep_auto_increment_control;
+SET @@global.wsrep_auto_increment_control=default;
+SELECT @@global.wsrep_auto_increment_control;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_auto_increment_control=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_auto_increment_control='junk';
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_auto_increment_control = @wsrep_auto_increment_control_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_causal_reads_basic.test b/mysql-test/suite/sys_vars/t/wsrep_causal_reads_basic.test
index 2fb597e842e..6539e5cba85 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_causal_reads_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_causal_reads_basic.test
@@ -1,13 +1,45 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_causal_reads;
+--echo #
+--echo # wsrep_causal_reads
+--echo #
-set @@global.wsrep_causal_reads=ON;
-set @@global.wsrep_causal_reads=OFF;
-set @@global.wsrep_causal_reads=1;
-set @@global.wsrep_causal_reads=0;
---Error 1231
-SET @@global.wsrep_causal_reads = -1;
+--echo # save the initial values
+SET @wsrep_causal_reads_global_saved = @@global.wsrep_causal_reads;
+SET @wsrep_causal_reads_session_saved = @@session.wsrep_causal_reads;
-set @@global.wsrep_causal_reads = @start_value;
+--echo # default
+SELECT @@global.wsrep_causal_reads;
+SELECT @@session.wsrep_causal_reads;
+
+--echo
+--echo # scope and valid values
+SET @@global.wsrep_causal_reads=OFF;
+SELECT @@global.wsrep_causal_reads;
+SET @@global.wsrep_causal_reads=ON;
+SELECT @@global.wsrep_causal_reads;
+
+SET @@session.wsrep_causal_reads=OFF;
+SELECT @@session.wsrep_causal_reads;
+SET @@session.wsrep_causal_reads=ON;
+SELECT @@session.wsrep_causal_reads;
+SET @@session.wsrep_causal_reads=default;
+SELECT @@session.wsrep_causal_reads;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_causal_reads=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_causal_reads='junk';
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@session.wsrep_causal_reads=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@session.wsrep_causal_reads='junk';
+
+--echo
+--echo # restore the initial values
+SET @@global.wsrep_causal_reads = @wsrep_causal_reads_global_saved;
+SET @@session.wsrep_causal_reads = @wsrep_causal_reads_session_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk b/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk
deleted file mode 100644
index f4512aeb5da..00000000000
--- a/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk
+++ /dev/null
@@ -1,13 +0,0 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
-
-set @start_value = @@wsrep_certify_nonpk;
-
-set @@global.wsrep_certify_nonpk=ON;
-set @@global.wsrep_certify_nonpk=OFF;
-set @@global.wsrep_certify_nonpk=1;
-set @@global.wsrep_certify_nonpk=0;
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.wsrep_certify_nonpk = -1;
-
-set @@global.wsrep_certify_nonpk = @start_value;
diff --git a/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk_basic.test b/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk_basic.test
index b623d8eb073..a2c690e5954 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk_basic.test
@@ -1,13 +1,42 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_certify_nonpk;
+--echo #
+--echo # wsrep_certify_nonpk
+--echo #
-set @@global.wsrep_certify_nonpk=ON;
-set @@global.wsrep_certify_nonpk=OFF;
-set @@global.wsrep_certify_nonpk=1;
-set @@global.wsrep_certify_nonpk=0;
---Error 1231
-SET @@global.wsrep_certify_nonpk = -1;
+--echo # save the initial value
+SET @wsrep_certify_nonpk_global_saved = @@global.wsrep_certify_nonpk;
-set @@global.wsrep_certify_nonpk = @start_value;
+--echo # default
+SELECT @@global.wsrep_certify_nonpk;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_certify_nonpk;
+SET @@global.wsrep_certify_nonpk=OFF;
+SELECT @@global.wsrep_certify_nonpk;
+SET @@global.wsrep_certify_nonpk=ON;
+SELECT @@global.wsrep_certify_nonpk;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_certify_nonpk='OFF';
+SELECT @@global.wsrep_certify_nonpk;
+SET @@global.wsrep_certify_nonpk=ON;
+SELECT @@global.wsrep_certify_nonpk;
+SET @@global.wsrep_certify_nonpk=default;
+SELECT @@global.wsrep_certify_nonpk;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_certify_nonpk=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_certify_nonpk='junk';
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_certify_nonpk = @wsrep_certify_nonpk_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_cluster_address_basic.test b/mysql-test/suite/sys_vars/t/wsrep_cluster_address_basic.test
index b61d5ea60c3..b9e00901eb6 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_cluster_address_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_cluster_address_basic.test
@@ -1,44 +1,48 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
-
-SELECT COUNT(@@GLOBAL.wsrep_cluster_address);
---echo 1 Expected
-
-SELECT COUNT(@@GLOBAL.wsrep_cluster_address);
---echo 1 Expected
-
-SELECT @@GLOBAL.wsrep_cluster_address = VARIABLE_VALUE
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='wsrep_cluster_address';
---echo 1 Expected
-
-SELECT COUNT(@@GLOBAL.wsrep_cluster_address);
---echo 1 Expected
-
-SELECT COUNT(VARIABLE_VALUE)
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='wsrep_cluster_address';
---echo 1 Expected
-
-SELECT @@wsrep_cluster_address = @@GLOBAL.wsrep_cluster_address;
---echo 1 Expected
-
-SELECT COUNT(@@wsrep_cluster_address);
---echo 1 Expected
-
---Error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SELECT COUNT(@@local.wsrep_cluster_address);
---echo Expected error 'Variable is a GLOBAL variable'
-
---Error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SELECT COUNT(@@SESSION.wsrep_cluster_address);
---echo Expected error 'Variable is a GLOBAL variable'
-
-SELECT COUNT(@@GLOBAL.wsrep_cluster_address);
---echo 1 Expected
-
---Error ER_BAD_FIELD_ERROR
-SELECT wsrep_cluster_address = @@SESSION.wsrep_cluster_address;
---echo Expected error 'Readonly variable'
-
-
+--source include/have_wsrep.inc
+
+--echo #
+--echo # wsrep_cluster_address
+--echo #
+
+call mtr.add_suppression("safe_mutex: Found wrong usage of mutex.*");
+
+--echo # save the initial value
+SET @wsrep_cluster_address_global_saved = @@global.wsrep_cluster_address;
+
+--echo # default
+SELECT @@global.wsrep_cluster_address;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_cluster_address;
+SELECT @@global.wsrep_cluster_address;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_cluster_address='127.0.0.1';
+SELECT @@global.wsrep_cluster_address;
+SET @@global.wsrep_cluster_address=AUTO;
+SELECT @@global.wsrep_cluster_address;
+SET @@global.wsrep_cluster_address=default;
+SELECT @@global.wsrep_cluster_address;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_node_address=NULL;
+SELECT @@global.wsrep_node_address;
+# The values being assigned to wsrep_node_address are not verified so the
+# following alues are currently valid too.
+SET @@global.wsrep_cluster_address=ON;
+SELECT @@global.wsrep_cluster_address;
+SET @@global.wsrep_cluster_address='OFF';
+SELECT @@global.wsrep_cluster_address;
+SET @@global.wsrep_cluster_address='junk';
+SELECT @@global.wsrep_cluster_address;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_cluster_address = @wsrep_cluster_address_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_cluster_name_basic.test b/mysql-test/suite/sys_vars/t/wsrep_cluster_name_basic.test
index 104c342bfe4..a6fc3ef7b1e 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_cluster_name_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_cluster_name_basic.test
@@ -1,12 +1,40 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_cluster_name;
+--echo #
+--echo # wsrep_cluster_name
+--echo #
-set @@global.wsrep_cluster_name='test';
---Error 1231
-set @@global.wsrep_cluster_name=NULL;
---Error 1232
-SET @@global.wsrep_cluster_name = 1;
+--echo # save the initial value
+SET @wsrep_cluster_name_global_saved = @@global.wsrep_cluster_name;
-set @@global.wsrep_cluster_name = @start_value; \ No newline at end of file
+--echo # default
+SELECT @@global.wsrep_cluster_name;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_cluster_name;
+SET @@global.wsrep_cluster_name='my_galera_cluster';
+SELECT @@global.wsrep_cluster_name;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_cluster_name='my_quoted_galera_cluster';
+SELECT @@global.wsrep_cluster_name;
+SET @@global.wsrep_cluster_name=my_unquoted_cluster;
+SELECT @@global.wsrep_cluster_name;
+SET @@global.wsrep_cluster_name=OFF;
+SELECT @@global.wsrep_cluster_name;
+SET @@global.wsrep_cluster_name=default;
+SELECT @@global.wsrep_cluster_name;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_cluster_name=NULL;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_cluster_name = @wsrep_cluster_name_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_convert_lock_to_trx_basic.test b/mysql-test/suite/sys_vars/t/wsrep_convert_lock_to_trx_basic.test
index 84b92085238..486832fb394 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_convert_lock_to_trx_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_convert_lock_to_trx_basic.test
@@ -1,13 +1,42 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_convert_lock_to_trx;
+--echo #
+--echo # wsrep_convert_lock_to_trx
+--echo #
-set @@global.wsrep_convert_lock_to_trx=ON;
-set @@global.wsrep_convert_lock_to_trx=OFF;
-set @@global.wsrep_convert_lock_to_trx=1;
-set @@global.wsrep_convert_lock_to_trx=0;
---Error 1231
-SET @@global.wsrep_convert_lock_to_trx = -1;
+--echo # save the initial value
+SET @wsrep_convert_lock_to_trx_global_saved = @@global.wsrep_convert_lock_to_trx;
-set @@global.wsrep_convert_lock_to_trx = @start_value; \ No newline at end of file
+--echo # default
+SELECT @@global.wsrep_convert_lock_to_trx;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_convert_lock_to_trx;
+SET @@global.wsrep_convert_lock_to_trx=OFF;
+SELECT @@global.wsrep_convert_lock_to_trx;
+SET @@global.wsrep_convert_lock_to_trx=ON;
+SELECT @@global.wsrep_convert_lock_to_trx;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_convert_lock_to_trx='OFF';
+SELECT @@global.wsrep_convert_lock_to_trx;
+SET @@global.wsrep_convert_lock_to_trx=ON;
+SELECT @@global.wsrep_convert_lock_to_trx;
+SET @@global.wsrep_convert_lock_to_trx=default;
+SELECT @@global.wsrep_convert_lock_to_trx;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_convert_lock_to_trx=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_convert_lock_to_trx='junk';
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_convert_lock_to_trx = @wsrep_convert_lock_to_trx_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_data_home_dir_basic.test b/mysql-test/suite/sys_vars/t/wsrep_data_home_dir_basic.test
index fccf685193e..41f97cfdaf6 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_data_home_dir_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_data_home_dir_basic.test
@@ -1,48 +1,41 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-SELECT COUNT(@@GLOBAL.wsrep_data_home_dir);
---echo 1 Expected
+--echo #
+--echo # wsrep_data_home_dir (readonly)
+--echo #
---error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SET @@GLOBAL.wsrep_data_home_dir=1;
---echo Expected error 'Read only variable'
-
-SELECT COUNT(@@GLOBAL.wsrep_data_home_dir);
---echo 1 Expected
-
-SELECT @@GLOBAL.wsrep_data_home_dir = VARIABLE_VALUE
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='wsrep_data_home_dir';
---echo 1 Expected
-
-SELECT COUNT(@@GLOBAL.wsrep_data_home_dir);
---echo 1 Expected
-
-SELECT COUNT(VARIABLE_VALUE)
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='wsrep_data_home_dir';
---echo 1 Expected
-
-SELECT @@wsrep_data_home_dir = @@GLOBAL.wsrep_data_home_dir;
---echo 1 Expected
-
-SELECT COUNT(@@wsrep_data_home_dir);
---echo 1 Expected
-
---Error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SELECT COUNT(@@local.wsrep_data_home_dir);
---echo Expected error 'Variable is a GLOBAL variable'
-
---Error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SELECT COUNT(@@SESSION.wsrep_data_home_dir);
---echo Expected error 'Variable is a GLOBAL variable'
+--echo # default
+SELECT @@global.wsrep_data_home_dir;
-SELECT COUNT(@@GLOBAL.wsrep_data_home_dir);
---echo 1 Expected
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_data_home_dir;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_data_home_dir='/tmp/data';
+SELECT @@global.wsrep_data_home_dir;
---Error ER_BAD_FIELD_ERROR
-SELECT wsrep_data_home_dir = @@SESSION.wsrep_data_home_dir;
---echo Expected error 'Readonly variable'
+--echo
+--echo # valid values
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_data_home_dir='/tmp/data';
+SELECT @@global.wsrep_data_home_dir;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_data_home_dir=junk-dir;
+SELECT @@global.wsrep_data_home_dir;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_data_home_dir=junk/dir;
+SELECT @@global.wsrep_data_home_dir;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_data_home_dir=OFF;
+SELECT @@global.wsrep_data_home_dir;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_data_home_dir=default;
+SELECT @@global.wsrep_data_home_dir;
+--echo
+--echo # invalid values
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_data_home_dir=NULL;
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_dbug_option_basic.test b/mysql-test/suite/sys_vars/t/wsrep_dbug_option_basic.test
index 0a559fe8d27..80ce190a154 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_dbug_option_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_dbug_option_basic.test
@@ -1,11 +1,42 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_dbug_option;
+--echo #
+--echo # wsrep_dbug_option
+--echo #
-set @@global.wsrep_dbug_option='foo:bar';
-set @@global.wsrep_dbug_option=NULL;
---Error 1232
-SET @@global.wsrep_dbug_option = -1;
+--echo # save the initial value
+SET @wsrep_dbug_option_global_saved = @@global.wsrep_dbug_option;
-set @@global.wsrep_dbug_option = @start_value;
+--echo # default
+SELECT @@global.wsrep_dbug_option;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_dbug_option;
+SET @@global.wsrep_dbug_option='test-dbug-string';
+SELECT @@global.wsrep_dbug_option;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_dbug_option='quoted-dbug-string';
+SELECT @@global.wsrep_dbug_option;
+SET @@global.wsrep_dbug_option=unquoted_dbug_string;
+SELECT @@global.wsrep_dbug_option;
+SET @@global.wsrep_dbug_option=OFF;
+SELECT @@global.wsrep_dbug_option;
+SET @@global.wsrep_dbug_option=NULL;
+SELECT @@global.wsrep_dbug_option;
+SET @@global.wsrep_dbug_option=default;
+SELECT @@global.wsrep_dbug_option;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_dbug_option=1;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_dbug_option = @wsrep_dbug_option_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_debug_basic.test b/mysql-test/suite/sys_vars/t/wsrep_debug_basic.test
index 194c163baa6..50576ff064e 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_debug_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_debug_basic.test
@@ -1,13 +1,42 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_debug;
+--echo #
+--echo # wsrep_debug
+--echo #
-set @@global.wsrep_debug=ON;
-set @@global.wsrep_debug=OFF;
-set @@global.wsrep_debug=1;
-set @@global.wsrep_debug=0;
---Error 1231
-SET @@global.wsrep_debug = -1;
+--echo # save the initial value
+SET @wsrep_debug_global_saved = @@global.wsrep_debug;
-set @@global.wsrep_debug = @start_value; \ No newline at end of file
+--echo # default
+SELECT @@global.wsrep_debug;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_debug;
+SET @@global.wsrep_debug=OFF;
+SELECT @@global.wsrep_debug;
+SET @@global.wsrep_debug=ON;
+SELECT @@global.wsrep_debug;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_debug='OFF';
+SELECT @@global.wsrep_debug;
+SET @@global.wsrep_debug=ON;
+SELECT @@global.wsrep_debug;
+SET @@global.wsrep_debug=default;
+SELECT @@global.wsrep_debug;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_debug=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_debug='junk';
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_debug = @wsrep_debug_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_debug_option_basic.test b/mysql-test/suite/sys_vars/t/wsrep_debug_option_basic.test
deleted file mode 100644
index 060e721b676..00000000000
--- a/mysql-test/suite/sys_vars/t/wsrep_debug_option_basic.test
+++ /dev/null
@@ -1,13 +0,0 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
-
-set @start_value = @@wsrep_debug_option;
-
---error 1231
-set @@global.wsrep_debug_option='foo:bar';
---error 1231
-set @@global.wsrep_debug_option=NULL;
---Error 1232
-SET @@global.wsrep_debug_option = -1;
-
-set @@global.wsrep_debug_option = @start_value;
diff --git a/mysql-test/suite/sys_vars/t/wsrep_desync_basic.test b/mysql-test/suite/sys_vars/t/wsrep_desync_basic.test
index 3c64d8cb30f..15226c75d8b 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_desync_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_desync_basic.test
@@ -1,4 +1,49 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-select @@global.wsrep_desync;
+--echo #
+--echo # wsrep_desync
+--echo #
+
+# expected as no wsrep provider is currently loaded
+call mtr.add_suppression("WSREP: SET desync failed 9 for SET @@global.wsrep_desync=ON");
+
+--echo # save the initial value
+SET @wsrep_desync_global_saved = @@global.wsrep_desync;
+
+--echo # default
+SELECT @@global.wsrep_desync;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_desync;
+SET @@global.wsrep_desync=OFF;
+SELECT @@global.wsrep_desync;
+# expected as no wsrep provider is currently loaded
+--error ER_CANNOT_USER
+SET @@global.wsrep_desync=ON;
+SELECT @@global.wsrep_desync;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_desync='OFF';
+SELECT @@global.wsrep_desync;
+# expected as no wsrep provider is currently loaded
+--error ER_CANNOT_USER
+SET @@global.wsrep_desync=ON;
+SELECT @@global.wsrep_desync;
+SET @@global.wsrep_desync=default;
+SELECT @@global.wsrep_desync;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_desync=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_desync='junk';
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_desync = @wsrep_desync_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_drupal_282555_workaround_basic.test b/mysql-test/suite/sys_vars/t/wsrep_drupal_282555_workaround_basic.test
index ada08bb125d..e24f6a15265 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_drupal_282555_workaround_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_drupal_282555_workaround_basic.test
@@ -1,13 +1,42 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_drupal_282555_workaround;
+--echo #
+--echo # wsrep_drupal_282555_workaround
+--echo #
-set @@global.wsrep_drupal_282555_workaround=ON;
-set @@global.wsrep_drupal_282555_workaround=OFF;
-set @@global.wsrep_drupal_282555_workaround=1;
-set @@global.wsrep_drupal_282555_workaround=0;
---Error 1231
-SET @@global.wsrep_drupal_282555_workaround = -1;
+--echo # save the initial value
+SET @wsrep_drupal_282555_workaround_global_saved = @@global.wsrep_drupal_282555_workaround;
-set @@global.wsrep_drupal_282555_workaround = @start_value; \ No newline at end of file
+--echo # default
+SELECT @@global.wsrep_drupal_282555_workaround;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_drupal_282555_workaround;
+SET @@global.wsrep_drupal_282555_workaround=OFF;
+SELECT @@global.wsrep_drupal_282555_workaround;
+SET @@global.wsrep_drupal_282555_workaround=ON;
+SELECT @@global.wsrep_drupal_282555_workaround;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_drupal_282555_workaround='OFF';
+SELECT @@global.wsrep_drupal_282555_workaround;
+SET @@global.wsrep_drupal_282555_workaround=ON;
+SELECT @@global.wsrep_drupal_282555_workaround;
+SET @@global.wsrep_drupal_282555_workaround=default;
+SELECT @@global.wsrep_drupal_282555_workaround;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_drupal_282555_workaround=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_drupal_282555_workaround='junk';
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_drupal_282555_workaround = @wsrep_drupal_282555_workaround_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_forced_binlog_format_basic.test b/mysql-test/suite/sys_vars/t/wsrep_forced_binlog_format_basic.test
index 5e5530a8f64..455034bb623 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_forced_binlog_format_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_forced_binlog_format_basic.test
@@ -1,14 +1,46 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_forced_binlog_format;
+--echo #
+--echo # wsrep_forced_binlog_format
+--echo #
-set @@global.wsrep_forced_binlog_format = ROW;
-set @@global.wsrep_forced_binlog_format = MIXED;
-set @@global.wsrep_forced_binlog_format = STATEMENT;
-set @@global.wsrep_forced_binlog_format = NONE;
+--echo # save the initial value
+SET @wsrep_forced_binlog_format_global_saved = @@global.wsrep_forced_binlog_format;
---error 1231
-set @@global.wsrep_forced_binlog_format = FOO;
+--echo # default
+SELECT @@global.wsrep_forced_binlog_format;
-set @@global.wsrep_forced_binlog_format = @start_value; \ No newline at end of file
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_forced_binlog_format;
+SET @@global.wsrep_forced_binlog_format=STATEMENT;
+SELECT @@global.wsrep_forced_binlog_format;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_forced_binlog_format=STATEMENT;
+SELECT @@global.wsrep_forced_binlog_format;
+SET @@global.wsrep_forced_binlog_format=ROW;
+SELECT @@global.wsrep_forced_binlog_format;
+SET @@global.wsrep_forced_binlog_format=MIXED;
+SELECT @@global.wsrep_forced_binlog_format;
+SET @@global.wsrep_forced_binlog_format=NONE;
+SELECT @@global.wsrep_forced_binlog_format;
+SET @@global.wsrep_forced_binlog_format=default;
+SELECT @@global.wsrep_forced_binlog_format;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_forced_binlog_format=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_forced_binlog_format='junk';
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_forced_binlog_format=ON;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_forced_binlog_format = @wsrep_forced_binlog_format_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_load_data_splitting_basic.test b/mysql-test/suite/sys_vars/t/wsrep_load_data_splitting_basic.test
index 61ff27d6894..d52e388fc60 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_load_data_splitting_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_load_data_splitting_basic.test
@@ -1,13 +1,42 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_load_data_splitting;
+--echo #
+--echo # wsrep_load_data_splitting
+--echo #
-set @@global.wsrep_load_data_splitting=ON;
-set @@global.wsrep_load_data_splitting=OFF;
-set @@global.wsrep_load_data_splitting=1;
-set @@global.wsrep_load_data_splitting=0;
---Error 1231
-SET @@global.wsrep_load_data_splitting = -1;
+--echo # save the initial value
+SET @wsrep_load_data_splitting_global_saved = @@global.wsrep_load_data_splitting;
-set @@global.wsrep_load_data_splitting = @start_value; \ No newline at end of file
+--echo # default
+SELECT @@global.wsrep_load_data_splitting;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_load_data_splitting;
+SET @@global.wsrep_load_data_splitting=OFF;
+SELECT @@global.wsrep_load_data_splitting;
+SET @@global.wsrep_load_data_splitting=ON;
+SELECT @@global.wsrep_load_data_splitting;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_load_data_splitting='OFF';
+SELECT @@global.wsrep_load_data_splitting;
+SET @@global.wsrep_load_data_splitting=ON;
+SELECT @@global.wsrep_load_data_splitting;
+SET @@global.wsrep_load_data_splitting=default;
+SELECT @@global.wsrep_load_data_splitting;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_load_data_splitting=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_load_data_splitting='junk';
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_load_data_splitting = @wsrep_load_data_splitting_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_log_conflicts_basic.test b/mysql-test/suite/sys_vars/t/wsrep_log_conflicts_basic.test
index dbd696c45a2..eee4d966855 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_log_conflicts_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_log_conflicts_basic.test
@@ -1,13 +1,42 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_log_conflicts;
+--echo #
+--echo # wsrep_log_conflicts
+--echo #
-set @@global.wsrep_log_conflicts=ON;
-set @@global.wsrep_log_conflicts=OFF;
-set @@global.wsrep_log_conflicts=1;
-set @@global.wsrep_log_conflicts=0;
---Error 1231
-SET @@global.wsrep_log_conflicts = -1;
+--echo # save the initial value
+SET @wsrep_log_conflicts_global_saved = @@global.wsrep_log_conflicts;
-set @@global.wsrep_log_conflicts = @start_value; \ No newline at end of file
+--echo # default
+SELECT @@global.wsrep_log_conflicts;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_log_conflicts;
+SET @@global.wsrep_log_conflicts=OFF;
+SELECT @@global.wsrep_log_conflicts;
+SET @@global.wsrep_log_conflicts=ON;
+SELECT @@global.wsrep_log_conflicts;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_log_conflicts='OFF';
+SELECT @@global.wsrep_log_conflicts;
+SET @@global.wsrep_log_conflicts=ON;
+SELECT @@global.wsrep_log_conflicts;
+SET @@global.wsrep_log_conflicts=default;
+SELECT @@global.wsrep_log_conflicts;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_log_conflicts=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_log_conflicts='junk';
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_log_conflicts = @wsrep_log_conflicts_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_max_ws_rows_basic.test b/mysql-test/suite/sys_vars/t/wsrep_max_ws_rows_basic.test
index f607a567d80..ed78662c02d 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_max_ws_rows_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_max_ws_rows_basic.test
@@ -1,14 +1,45 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_max_ws_rows;
+--echo #
+--echo # wsrep_max_ws_rows
+--echo #
-set @@global.wsrep_max_ws_rows=256000;
-set @@global.wsrep_max_ws_rows=0;
-show warnings;
-set @@global.wsrep_max_ws_rows=-1;
-show warnings;
---Error 1232
-SET @@global.wsrep_max_ws_rows = r;
+--echo # save the initial value
+SET @wsrep_max_ws_rows_global_saved = @@global.wsrep_max_ws_rows;
-set @@global.wsrep_max_ws_rows = @start_value; \ No newline at end of file
+--echo # default
+SELECT @@global.wsrep_max_ws_rows;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_max_ws_rows;
+SET @@global.wsrep_max_ws_rows=1;
+SELECT @@global.wsrep_max_ws_rows;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_max_ws_rows=131072;
+SELECT @@global.wsrep_max_ws_rows;
+SET @@global.wsrep_max_ws_rows=131073;
+SELECT @@global.wsrep_max_ws_rows;
+SET @@global.wsrep_max_ws_rows=0;
+SELECT @@global.wsrep_max_ws_rows;
+SET @@global.wsrep_max_ws_rows=default;
+SELECT @global.wsrep_max_ws_rows;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_max_ws_rows=NULL;
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_max_ws_rows='junk';
+# expect warnings (Truncated incorrect wsrep_max_ws_rows value: '-1')
+SET @@global.wsrep_max_ws_rows=-1;
+SELECT @global.wsrep_max_ws_rows;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_max_ws_rows = @wsrep_max_ws_rows_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_max_ws_size_basic.test b/mysql-test/suite/sys_vars/t/wsrep_max_ws_size_basic.test
index 6b1d1f71090..e7af4558f24 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_max_ws_size_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_max_ws_size_basic.test
@@ -1,14 +1,45 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_max_ws_size;
+--echo #
+--echo # wsrep_max_ws_size
+--echo #
-set @@global.wsrep_max_ws_size=256000;
-set @@global.wsrep_max_ws_size=0;
-show warnings;
-set @@global.wsrep_max_ws_size=-1;
-show warnings;
---Error 1232
-SET @@global.wsrep_max_ws_size = r;
+--echo # save the initial value
+SET @wsrep_max_ws_size_global_saved = @@global.wsrep_max_ws_size;
-set @@global.wsrep_max_ws_size = @start_value; \ No newline at end of file
+--echo # default
+SELECT @@global.wsrep_max_ws_size;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_max_ws_size;
+SET @@global.wsrep_max_ws_size=1;
+SELECT @@global.wsrep_max_ws_size;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_max_ws_size=1073741824;
+SELECT @@global.wsrep_max_ws_size;
+SET @@global.wsrep_max_ws_size=1073741825;
+SELECT @@global.wsrep_max_ws_size;
+SET @@global.wsrep_max_ws_size=0;
+SELECT @@global.wsrep_max_ws_size;
+SET @@global.wsrep_max_ws_size=default;
+SELECT @global.wsrep_max_ws_size;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_max_ws_size=NULL;
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_max_ws_size='junk';
+SELECT @global.wsrep_max_ws_size;
+SET @@global.wsrep_max_ws_size=-1;
+SELECT @global.wsrep_max_ws_size;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_max_ws_size = @wsrep_max_ws_size_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_mysql_replication_bundle_basic.test b/mysql-test/suite/sys_vars/t/wsrep_mysql_replication_bundle_basic.test
index 20a0dc9bf9f..c293048c43f 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_mysql_replication_bundle_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_mysql_replication_bundle_basic.test
@@ -1,16 +1,45 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_mysql_replication_bundle;
+--echo #
+--echo # wsrep_mysql_replication_bundle
+--echo #
-set @@global.wsrep_mysql_replication_bundle=0;
-set @@global.wsrep_mysql_replication_bundle=1000;
+--echo # save the initial value
+SET @wsrep_mysql_replication_bundle_global_saved = @@global.wsrep_mysql_replication_bundle;
-set @@global.wsrep_mysql_replication_bundle=-1;
-show warnings;
-set @@global.wsrep_mysql_replication_bundle=1001;
-show warnings;
---Error 1232
-SET @@global.wsrep_mysql_replication_bundle = r;
+--echo # default
+SELECT @@global.wsrep_mysql_replication_bundle;
-set @@global.wsrep_mysql_replication_bundle = @start_value; \ No newline at end of file
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_mysql_replication_bundle;
+SELECT @@global.wsrep_mysql_replication_bundle;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_mysql_replication_bundle=0;
+SELECT @@global.wsrep_mysql_replication_bundle;
+SET @@global.wsrep_mysql_replication_bundle=1000;
+SELECT @@global.wsrep_mysql_replication_bundle;
+SET @@global.wsrep_mysql_replication_bundle=default;
+SELECT @@global.wsrep_mysql_replication_bundle;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_mysql_replication_bundle=NULL;
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_mysql_replication_bundle='junk';
+# expect warning (truncated incorrect value)
+SET @@global.wsrep_mysql_replication_bundle=-1;
+SELECT @@global.wsrep_mysql_replication_bundle;
+# expect warning (truncated incorrect value)
+SET @@global.wsrep_mysql_replication_bundle=1001;
+SELECT @@global.wsrep_mysql_replication_bundle;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_mysql_replication_bundle = @wsrep_mysql_replication_bundle_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_node_address_basic.test b/mysql-test/suite/sys_vars/t/wsrep_node_address_basic.test
index feace325044..fccb40de6bf 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_node_address_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_node_address_basic.test
@@ -1,42 +1,45 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
-
-SELECT COUNT(@@GLOBAL.wsrep_node_address);
---echo 1 Expected
-
---error 1232
-SET @@GLOBAL.wsrep_node_address=1;
---echo Expected error 'Read only variable'
-
-SELECT COUNT(@@GLOBAL.wsrep_node_address);
---echo 1 Expected
-
-SELECT @@GLOBAL.wsrep_node_address = VARIABLE_VALUE
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='wsrep_node_address';
---echo 1 Expected
-
-SELECT COUNT(@@GLOBAL.wsrep_node_address);
---echo 1 Expected
-
-SELECT COUNT(VARIABLE_VALUE)
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='wsrep_node_address';
---echo 1 Expected
-
-SELECT @@wsrep_node_address = @@GLOBAL.wsrep_node_address;
---echo 1 Expected
-
-SELECT COUNT(@@wsrep_node_address);
---echo 1 Expected
-
---Error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SELECT COUNT(@@local.wsrep_node_address);
---echo Expected error 'Variable is a GLOBAL variable'
-
---Error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SELECT COUNT(@@SESSION.wsrep_node_address);
---echo Expected error 'Variable is a GLOBAL variable'
-
-SELECT COUNT(@@GLOBAL.wsrep_node_address);
---echo 1 Expected
+--source include/have_wsrep.inc
+
+--echo #
+--echo # wsrep_node_address
+--echo #
+
+--echo # save the initial value
+SET @wsrep_node_address_global_saved = @@global.wsrep_node_address;
+
+--echo # default
+SELECT @@global.wsrep_node_address;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_node_address;
+SELECT @@global.wsrep_node_address;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_node_address='127.0.0.1';
+SELECT @@global.wsrep_node_address;
+# default == ''
+SET @@global.wsrep_node_address=default;
+SELECT @@global.wsrep_node_address;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_node_address=NULL;
+SELECT @@global.wsrep_node_address;
+# The values being assigned to wsrep_node_address are not verified so the
+# following alues are currently valid too.
+SET @@global.wsrep_node_address=ON;
+SELECT @@global.wsrep_node_address;
+SET @@global.wsrep_node_address='OFF';
+SELECT @@global.wsrep_node_address;
+SET @@global.wsrep_node_address='junk';
+SELECT @@global.wsrep_node_address;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_node_address = @wsrep_node_address_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_node_incoming_address_basic.test b/mysql-test/suite/sys_vars/t/wsrep_node_incoming_address_basic.test
index 188a5960eb9..9ab9525d2a9 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_node_incoming_address_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_node_incoming_address_basic.test
@@ -1,42 +1,47 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
-
-SELECT COUNT(@@GLOBAL.wsrep_node_incoming_address);
---echo 1 Expected
-
---error 1232
-SET @@GLOBAL.wsrep_node_incoming_address=1;
---echo Expected error 'Read only variable'
-
-SELECT COUNT(@@GLOBAL.wsrep_node_incoming_address);
---echo 1 Expected
-
-SELECT @@GLOBAL.wsrep_node_incoming_address = VARIABLE_VALUE
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='wsrep_node_incoming_address';
---echo 1 Expected
-
-SELECT COUNT(@@GLOBAL.wsrep_node_incoming_address);
---echo 1 Expected
-
-SELECT COUNT(VARIABLE_VALUE)
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='wsrep_node_incoming_address';
---echo 1 Expected
-
-SELECT @@wsrep_node_incoming_address = @@GLOBAL.wsrep_node_incoming_address;
---echo 1 Expected
-
-SELECT COUNT(@@wsrep_node_incoming_address);
---echo 1 Expected
-
---Error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SELECT COUNT(@@local.wsrep_node_incoming_address);
---echo Expected error 'Variable is a GLOBAL variable'
-
---Error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SELECT COUNT(@@SESSION.wsrep_node_incoming_address);
---echo Expected error 'Variable is a GLOBAL variable'
-
-SELECT COUNT(@@GLOBAL.wsrep_node_incoming_address);
---echo 1 Expected
+--source include/have_wsrep.inc
+
+--echo #
+--echo # wsrep_node_incoming_address
+--echo #
+
+--echo # save the initial value
+SET @wsrep_node_incoming_address_global_saved = @@global.wsrep_node_incoming_address;
+
+--echo # default
+SELECT @@global.wsrep_node_incoming_address;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_node_incoming_address;
+SELECT @@global.wsrep_node_incoming_address;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_node_incoming_address='127.0.0.1:4444';
+SELECT @@global.wsrep_node_incoming_address;
+SET @@global.wsrep_node_incoming_address='127.0.0.1';
+SELECT @@global.wsrep_node_incoming_address;
+SET @@global.wsrep_node_incoming_address=AUTO;
+SELECT @@global.wsrep_node_incoming_address;
+SET @@global.wsrep_node_incoming_address=default;
+SELECT @@global.wsrep_node_incoming_address;
+
+--echo
+--echo # invalid values
+# The values being assigned to wsrep_node_incoming_address are not verified so
+# the following values are currently valid too.
+SET @@global.wsrep_node_incoming_address=ON;
+SELECT @@global.wsrep_node_incoming_address;
+SET @@global.wsrep_node_incoming_address='OFF';
+SELECT @@global.wsrep_node_incoming_address;
+SET @@global.wsrep_node_incoming_address=NULL;
+SELECT @@global.wsrep_node_incoming_address;
+SET @@global.wsrep_node_incoming_address='junk';
+SELECT @@global.wsrep_node_incoming_address;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_node_incoming_address = @wsrep_node_incoming_address_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_node_name_basic.test b/mysql-test/suite/sys_vars/t/wsrep_node_name_basic.test
index 3220ae373e2..1f3ccc0de2c 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_node_name_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_node_name_basic.test
@@ -1,11 +1,44 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_node_name;
+--echo #
+--echo # wsrep_node_name
+--echo #
-set @@global.wsrep_node_name='test';
-set @@global.wsrep_node_name=NULL;
---Error 1232
-SET @@global.wsrep_node_name = 1;
+call mtr.add_suppression("WSREP: Failed to get provider options");
-set @@global.wsrep_node_name = @start_value; \ No newline at end of file
+--echo # save the initial value
+SET @wsrep_node_name_global_saved = @@global.wsrep_node_name;
+
+--echo # default
+SELECT @@global.wsrep_node_name;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_node_name;
+SET @@global.wsrep_node_name='node_name';
+SELECT @@global.wsrep_node_name;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_node_name='my_node';
+SELECT @@global.wsrep_node_name;
+SET @@global.wsrep_node_name='hyphenated-node-name';
+SELECT @@global.wsrep_node_name;
+SET @@global.wsrep_node_name=default;
+SELECT @@global.wsrep_node_name;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_node_name=NULL;
+SELECT @@global.wsrep_node_name;
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_node_name=1;
+SELECT @@global.wsrep_node_name;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_node_name = @wsrep_node_name_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test b/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test
index d816453f8a3..6d1535ba148 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test
@@ -1,11 +1,43 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_notify_cmd;
+--echo #
+--echo # wsrep_notify_cmd
+--echo #
-set @@global.wsrep_notify_cmd='test';
-set @@global.wsrep_notify_cmd=NULL;
---Error 1232
-SET @@global.wsrep_notify_cmd = 1;
+call mtr.add_suppression("WSREP: Failed to get provider options");
-set @@global.wsrep_notify_cmd = @start_value; \ No newline at end of file
+--echo # save the initial value
+SET @wsrep_notify_cmd_global_saved = @@global.wsrep_notify_cmd;
+
+--echo # default
+SELECT @@global.wsrep_notify_cmd;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_notify_cmd;
+SET @@global.wsrep_notify_cmd='notify_cmd';
+SELECT @@global.wsrep_notify_cmd;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_notify_cmd='command';
+SELECT @@global.wsrep_notify_cmd;
+SET @@global.wsrep_notify_cmd='hyphenated-command';
+SELECT @@global.wsrep_notify_cmd;
+SET @@global.wsrep_notify_cmd=default;
+SELECT @@global.wsrep_notify_cmd;
+SET @@global.wsrep_notify_cmd=NULL;
+SELECT @@global.wsrep_notify_cmd;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_notify_cmd=1;
+SELECT @@global.wsrep_notify_cmd;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_notify_cmd = @wsrep_notify_cmd_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_on_basic.test b/mysql-test/suite/sys_vars/t/wsrep_on_basic.test
index 5afe5c4451f..229d771b5e7 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_on_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_on_basic.test
@@ -1,13 +1,45 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_on;
+--echo #
+--echo # wsrep_on
+--echo #
-set @@global.wsrep_on=ON;
-set @@global.wsrep_on=OFF;
-set @@global.wsrep_on=1;
-set @@global.wsrep_on=0;
---Error 1231
-SET @@global.wsrep_on = -1;
+--echo # save the initial values
+SET @wsrep_on_global_saved = @@global.wsrep_on;
+SET @wsrep_on_session_saved = @@session.wsrep_on;
-set @@global.wsrep_on = @start_value;
+--echo # default
+SELECT @@global.wsrep_on;
+SELECT @@session.wsrep_on;
+
+--echo
+--echo # scope and valid values
+SET @@global.wsrep_on=OFF;
+SELECT @@global.wsrep_on;
+SET @@global.wsrep_on=ON;
+SELECT @@global.wsrep_on;
+
+SET @@session.wsrep_on=OFF;
+SELECT @@session.wsrep_on;
+SET @@session.wsrep_on=ON;
+SELECT @@session.wsrep_on;
+SET @@session.wsrep_on=default;
+SELECT @@session.wsrep_on;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_on=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_on='junk';
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@session.wsrep_on=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@session.wsrep_on='junk';
+
+--echo
+--echo # restore the initial values
+SET @@global.wsrep_on = @wsrep_on_global_saved;
+SET @@session.wsrep_on = @wsrep_on_session_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_osu_method_basic.test b/mysql-test/suite/sys_vars/t/wsrep_osu_method_basic.test
index 9e1adde76a3..d6d461075a5 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_osu_method_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_osu_method_basic.test
@@ -1,18 +1,50 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_osu_method;
+--echo #
+--echo # wsrep_osu_method
+--echo #
-set @@global.wsrep_osu_method='TOI';
-set @@global.wsrep_osu_method='RSU';
-set @@global.wsrep_osu_method=TOI;
-set @@global.wsrep_osu_method=RSU;
+--echo # save the initial value
+SET @wsrep_osu_method_global_saved = @@global.wsrep_osu_method;
---Error 1231
-set @@global.wsrep_osu_method=TSU;
---Error 1231
-set @@global.wsrep_osu_method='TSU';
---Error 1231
-SET @@global.wsrep_on = -1;
+--echo # default
+SELECT @@global.wsrep_osu_method;
-set @@global.wsrep_osu_method = @start_value;
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_osu_method;
+SET @@global.wsrep_osu_method=TOI;
+SELECT @@global.wsrep_osu_method;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_osu_method=TOI;
+SELECT @@global.wsrep_osu_method;
+SET @@global.wsrep_osu_method=RSU;
+SELECT @@global.wsrep_osu_method;
+SET @@global.wsrep_osu_method="RSU";
+SELECT @@global.wsrep_osu_method;
+SET @@global.wsrep_osu_method=default;
+SELECT @@global.wsrep_osu_method;
+# numeric value
+SET @@global.wsrep_osu_method=1;
+SELECT @@global.wsrep_osu_method;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_osu_method=4;
+SELECT @@global.wsrep_osu_method;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_osu_method=NULL;
+SELECT @@global.wsrep_osu_method;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_osu_method='junk';
+SELECT @@global.wsrep_osu_method;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_osu_method = @wsrep_osu_method_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test b/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test
index aae122c42fe..1190ab41bb0 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test
@@ -1,5 +1,39 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-SELECT COUNT(@@GLOBAL.wsrep_provider);
---echo 1 Expected
+--echo #
+--echo # wsrep_provider
+--echo #
+
+--echo # save the initial value
+SET @wsrep_provider_global_saved = @@global.wsrep_provider;
+
+--echo # default
+SELECT @@global.wsrep_provider;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_provider;
+SELECT @@global.wsrep_provider;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_provider=default;
+SELECT @@global.wsrep_provider;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_provider='/invalid/libgalera_smm.so';
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_provider=NULL;
+SELECT @@global.wsrep_provider;
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_provider=1;
+SELECT @@global.wsrep_provider;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_provider = @wsrep_provider_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test b/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test
index e2d8b63b2fd..10ca8298029 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test
@@ -1,5 +1,44 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-SELECT COUNT(@@GLOBAL.wsrep_provider_options);
---echo 1 Expected
+--echo #
+--echo # wsrep_provider_options
+--echo #
+
+call mtr.add_suppression("WSREP: Failed to get provider options");
+
+--echo # save the initial value
+SET @wsrep_provider_options_global_saved = @@global.wsrep_provider_options;
+
+--echo # default
+SELECT @@global.wsrep_provider_options;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_provider_options;
+SET @@global.wsrep_provider_options='option1';
+SELECT @@global.wsrep_provider_options;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_provider_options='name1=value1;name2=value2';
+SELECT @@global.wsrep_provider_options;
+SET @@global.wsrep_provider_options='hyphenated-name:value';
+SELECT @@global.wsrep_provider_options;
+SET @@global.wsrep_provider_options=default;
+SELECT @@global.wsrep_provider_options;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_provider_options=1;
+SELECT @@global.wsrep_provider_options;
+--error ER_WRONG_ARGUMENTS
+SET @@global.wsrep_provider_options=NULL;
+SELECT @@global.wsrep_provider_options;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_provider_options = @wsrep_provider_options_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_recover_basic.test b/mysql-test/suite/sys_vars/t/wsrep_recover_basic.test
index f4e1707a434..f935e12e258 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_recover_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_recover_basic.test
@@ -1,47 +1,26 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
-
-SELECT COUNT(@@GLOBAL.wsrep_recover);
---echo 1 Expected
-
---Error 1238
-set @@global.wsrep_recover=ON;
---echo Expected error 'Readonly variable'
---Error 1238
-set @@global.wsrep_recover=OFF;
---echo Expected error 'Readonly variable'
-
-SELECT @@GLOBAL.wsrep_recover = VARIABLE_VALUE
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='wsrep_recover';
---echo 1 Expected
-
-SELECT COUNT(@@GLOBAL.wsrep_recover);
---echo 1 Expected
-
-SELECT COUNT(VARIABLE_VALUE)
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='wsrep_recover';
---echo 1 Expected
-
-SELECT @@wsrep_recover = @@GLOBAL.wsrep_recover;
---echo 1 Expected
-
-SELECT COUNT(@@wsrep_recover);
---echo 1 Expected
-
---Error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SELECT COUNT(@@local.wsrep_recover);
---echo Expected error 'Variable is a GLOBAL variable'
-
---Error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SELECT COUNT(@@SESSION.wsrep_recover);
---echo Expected error 'Variable is a GLOBAL variable'
-
-SELECT COUNT(@@GLOBAL.wsrep_recover);
---echo 1 Expected
-
---Error ER_BAD_FIELD_ERROR
-SELECT wsrep_recover = @@SESSION.wsrep_recover;
---echo Expected error 'Readonly variable'
-
+--source include/have_wsrep.inc
+
+--echo #
+--echo # wsrep_recover
+--echo #
+
+--echo # default
+SELECT @@global.wsrep_recover;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_recover;
+
+--echo
+--echo # scope and valid values
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_recover=OFF;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_recover=ON;
+
+--echo
+--echo # invalid values
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_recover=NULL;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_recover='junk';
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_replicate_myisam_basic.test b/mysql-test/suite/sys_vars/t/wsrep_replicate_myisam_basic.test
index c03d76b5123..812fb0cfd73 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_replicate_myisam_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_replicate_myisam_basic.test
@@ -1,13 +1,36 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_replicate_myisam;
+--echo #
+--echo # wsrep_replicate_myisam
+--echo #
-set @@global.wsrep_replicate_myisam=ON;
-set @@global.wsrep_replicate_myisam=OFF;
-set @@global.wsrep_replicate_myisam=1;
-set @@global.wsrep_replicate_myisam=0;
---Error 1231
-SET @@global.wsrep_replicate_myisam = -1;
+--echo # save the initial value
+SET @wsrep_replicate_myisam_global_saved = @@global.wsrep_replicate_myisam;
-set @@global.wsrep_replicate_myisam = @start_value; \ No newline at end of file
+--echo # default
+SELECT @@global.wsrep_replicate_myisam;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_replicate_myisam;
+
+--echo
+--echo # scope and valid values
+#--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+#TODO: check if it is expected for variable to be dynamic?
+SET @@global.wsrep_replicate_myisam=OFF;
+SELECT @@global.wsrep_replicate_myisam;
+#--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_replicate_myisam=ON;
+SELECT @@global.wsrep_replicate_myisam;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_replicate_myisam=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_replicate_myisam='junk';
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_replicate_myisam = @wsrep_replicate_myisam_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_restart_slave_basic.test b/mysql-test/suite/sys_vars/t/wsrep_restart_slave_basic.test
index 82f5a97327d..c656111aed6 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_restart_slave_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_restart_slave_basic.test
@@ -1,13 +1,36 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_restart_slave;
+--echo #
+--echo # wsrep_restart_slave
+--echo #
-set @@global.wsrep_restart_slave=ON;
-set @@global.wsrep_restart_slave=OFF;
-set @@global.wsrep_restart_slave=1;
-set @@global.wsrep_restart_slave=0;
---Error 1231
-SET @@global.wsrep_restart_slave = -1;
+--echo # save the initial value
+SET @wsrep_restart_slave_global_saved = @@global.wsrep_restart_slave;
-set @@global.wsrep_restart_slave = @start_value; \ No newline at end of file
+--echo # default
+SELECT @@global.wsrep_restart_slave;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_restart_slave;
+
+--echo
+--echo # scope and valid values
+#--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+#TODO: check if it is expected for variable to be dynamic?
+SET @@global.wsrep_restart_slave=OFF;
+SELECT @@global.wsrep_restart_slave;
+#--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SET @@global.wsrep_restart_slave=ON;
+SELECT @@global.wsrep_restart_slave;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_restart_slave=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_restart_slave='junk';
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_restart_slave = @wsrep_restart_slave_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_retry_autocommit_basic.test b/mysql-test/suite/sys_vars/t/wsrep_retry_autocommit_basic.test
index 82f5a97327d..aa6f27f816d 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_retry_autocommit_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_retry_autocommit_basic.test
@@ -1,13 +1,52 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_restart_slave;
+--echo #
+--echo # wsrep_retry_autocommit
+--echo #
-set @@global.wsrep_restart_slave=ON;
-set @@global.wsrep_restart_slave=OFF;
-set @@global.wsrep_restart_slave=1;
-set @@global.wsrep_restart_slave=0;
---Error 1231
-SET @@global.wsrep_restart_slave = -1;
+--echo # save the initial values
+SET @wsrep_retry_autocommit_global_saved = @@global.wsrep_retry_autocommit;
+SET @wsrep_retry_autocommit_session_saved = @@session.wsrep_retry_autocommit;
-set @@global.wsrep_restart_slave = @start_value; \ No newline at end of file
+--echo # default
+SELECT @@global.wsrep_retry_autocommit;
+
+--echo
+--echo # scope
+SET @@session.wsrep_retry_autocommit=1;
+SELECT @@session.wsrep_retry_autocommit;
+SET @@global.wsrep_retry_autocommit=1;
+SELECT @@global.wsrep_retry_autocommit;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_retry_autocommit=10;
+SELECT @@global.wsrep_retry_autocommit;
+SET @@global.wsrep_retry_autocommit=0;
+SELECT @@global.wsrep_retry_autocommit;
+SET @@global.wsrep_retry_autocommit=default;
+SELECT @global.wsrep_retry_autocommit;
+
+SET @@session.wsrep_retry_autocommit=10;
+SELECT @@session.wsrep_retry_autocommit;
+SET @@session.wsrep_retry_autocommit=0;
+SELECT @@session.wsrep_retry_autocommit;
+SET @@session.wsrep_retry_autocommit=default;
+SELECT @session.wsrep_retry_autocommit;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_retry_autocommit=NULL;
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_retry_autocommit='junk';
+# expect warning : Truncated incorrect wsrep_retry_autocommit value: '-1'
+SET @@global.wsrep_retry_autocommit=-1;
+SELECT @global.wsrep_retry_autocommit;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_retry_autocommit = @wsrep_retry_autocommit_global_saved;
+SET @@session.wsrep_retry_autocommit = @wsrep_retry_autocommit_session_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_slave_threads_basic.test b/mysql-test/suite/sys_vars/t/wsrep_slave_threads_basic.test
index cff4f433846..80b4648982d 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_slave_threads_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_slave_threads_basic.test
@@ -1,16 +1,43 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
-
-set @start_value = @@wsrep_slave_threads;
-
-set @@global.wsrep_slave_threads=1;
-set @@global.wsrep_slave_threads=4;
-show warnings;
-set @@global.wsrep_slave_threads=0;
-show warnings;
-set @@global.wsrep_slave_threads=-1;
-show warnings;
---Error 1232
-SET @@global.wsrep_slave_threads = r;
-
-set @@global.wsrep_slave_threads = @start_value; \ No newline at end of file
+--source include/have_wsrep.inc
+
+--echo #
+--echo # wsrep_slave_threads
+--echo #
+
+--echo # save the initial value
+SET @wsrep_slave_threads_global_saved = @@global.wsrep_slave_threads;
+
+--echo # default
+SELECT @@global.wsrep_slave_threads;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_slave_threads;
+SET @@global.wsrep_slave_threads=1;
+SELECT @@global.wsrep_slave_threads;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_slave_threads=10;
+SELECT @@global.wsrep_slave_threads;
+SET @@global.wsrep_slave_threads=0;
+SELECT @@global.wsrep_slave_threads;
+SET @@global.wsrep_slave_threads=default;
+SELECT @global.wsrep_slave_threads;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_slave_threads=NULL;
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_slave_threads='junk';
+# expect warning : Truncated incorrect wsrep_slave_threads value: '-1'
+SET @@global.wsrep_slave_threads=-1;
+SELECT @global.wsrep_slave_threads;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_slave_threads = @wsrep_slave_threads_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_sst_auth_basic.test b/mysql-test/suite/sys_vars/t/wsrep_sst_auth_basic.test
index 6db2a4cd844..aa901ef9ff7 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_sst_auth_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_sst_auth_basic.test
@@ -1,12 +1,45 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
-
-SELECT COUNT(@@wsrep_sst_auth);
-
-# Cause crash, fix later
-#set @start_value = @@wsrep_sst_auth;
-#set @@global.wsrep_sst_auth='root:pass';
-#set @@global.wsrep_sst_auth=NULL;
-#set @@global.wsrep_sst_auth=r;
-#set @@global.wsrep_sst_auth=1;
-#set @@global.wsrep_sst_auth = @start_value;
+--source include/have_wsrep.inc
+
+--echo #
+--echo # wsrep_sst_auth
+--echo #
+
+--echo # save the initial value
+SET @wsrep_sst_auth_global_saved = @@global.wsrep_sst_auth;
+
+--echo # default
+SELECT @@global.wsrep_sst_auth;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_sst_auth;
+SET @@global.wsrep_sst_auth='user:pass';
+SELECT @@global.wsrep_sst_auth;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_sst_auth=user;
+SELECT @@global.wsrep_sst_auth;
+SET @@global.wsrep_sst_auth='user:1234';
+SELECT @@global.wsrep_sst_auth;
+SET @@global.wsrep_sst_auth='hyphenated-user-name:';
+SELECT @@global.wsrep_sst_auth;
+SET @@global.wsrep_sst_auth=default;
+SELECT @@global.wsrep_sst_auth;
+SET @@global.wsrep_sst_auth=NULL;
+SELECT @@global.wsrep_sst_auth;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_sst_auth=1;
+SELECT @@global.wsrep_sst_auth;
+--error ER_PARSE_ERROR
+SET @@global.wsrep_sst_auth=user:pass;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_sst_auth = @wsrep_sst_auth_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_sst_donor_basic.test b/mysql-test/suite/sys_vars/t/wsrep_sst_donor_basic.test
index 58d005282a0..7d3d6598557 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_sst_donor_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_sst_donor_basic.test
@@ -1,12 +1,43 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
-
-SELECT COUNT(@@wsrep_sst_donor);
-
-set @start_value = @@wsrep_sst_donor;
-set @@global.wsrep_sst_donor='foo';
-set @@global.wsrep_sst_donor=NULL;
-set @@global.wsrep_sst_donor=r;
---error 1232
-set @@global.wsrep_sst_donor=1;
-set @@global.wsrep_sst_donor = @start_value;
+--source include/have_wsrep.inc
+
+--echo #
+--echo # wsrep_sst_donor
+--echo #
+
+--echo # save the initial value
+SET @wsrep_sst_donor_global_saved = @@global.wsrep_sst_donor;
+
+--echo # default
+SELECT @@global.wsrep_sst_donor;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_sst_donor;
+SET @@global.wsrep_sst_donor=rsync;
+SELECT @@global.wsrep_sst_donor;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_sst_donor=node1;
+SELECT @@global.wsrep_sst_donor;
+SET @@global.wsrep_sst_donor='node1,node2';
+SELECT @@global.wsrep_sst_donor;
+SET @@global.wsrep_sst_donor='hyphenated-donor-name';
+SELECT @@global.wsrep_sst_donor;
+SET @@global.wsrep_sst_donor=default;
+SELECT @@global.wsrep_sst_donor;
+SET @@global.wsrep_sst_donor=NULL;
+SELECT @@global.wsrep_sst_donor;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_TYPE_FOR_VAR
+SET @@global.wsrep_sst_donor=1;
+SELECT @@global.wsrep_sst_donor;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_sst_donor = @wsrep_sst_donor_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_sst_donor_rejects_queries_basic.test b/mysql-test/suite/sys_vars/t/wsrep_sst_donor_rejects_queries_basic.test
index fc8633ce00f..bd34e23cd2a 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_sst_donor_rejects_queries_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_sst_donor_rejects_queries_basic.test
@@ -1,13 +1,42 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_sst_donor_rejects_queries;
+--echo #
+--echo # wsrep_sst_donor_rejects_queries
+--echo #
-set @@global.wsrep_sst_donor_rejects_queries=ON;
-set @@global.wsrep_sst_donor_rejects_queries=OFF;
-set @@global.wsrep_sst_donor_rejects_queries=1;
-set @@global.wsrep_sst_donor_rejects_queries=0;
---Error 1231
-SET @@global.wsrep_sst_donor_rejects_queries = -1;
+--echo # save the initial value
+SET @wsrep_sst_donor_rejects_queries_global_saved = @@global.wsrep_sst_donor_rejects_queries;
-set @@global.wsrep_sst_donor_rejects_queries = @start_value;
+--echo # default
+SELECT @@global.wsrep_sst_donor_rejects_queries;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_sst_donor_rejects_queries;
+SET @@global.wsrep_sst_donor_rejects_queries=OFF;
+SELECT @@global.wsrep_sst_donor_rejects_queries;
+SET @@global.wsrep_sst_donor_rejects_queries=ON;
+SELECT @@global.wsrep_sst_donor_rejects_queries;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_sst_donor_rejects_queries='OFF';
+SELECT @@global.wsrep_sst_donor_rejects_queries;
+SET @@global.wsrep_sst_donor_rejects_queries=ON;
+SELECT @@global.wsrep_sst_donor_rejects_queries;
+SET @@global.wsrep_sst_donor_rejects_queries=default;
+SELECT @@global.wsrep_sst_donor_rejects_queries;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_sst_donor_rejects_queries=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_sst_donor_rejects_queries='junk';
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_sst_donor_rejects_queries = @wsrep_sst_donor_rejects_queries_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_sst_method_basic.test b/mysql-test/suite/sys_vars/t/wsrep_sst_method_basic.test
index dab5831ff01..3f40a3922dd 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_sst_method_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_sst_method_basic.test
@@ -1,17 +1,47 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
-
-set @start_value = @@wsrep_sst_method;
-
-set @@global.wsrep_sst_method='xtrabackup';
-set @@global.wsrep_sst_method='xtrabackup-v2';
-set @@global.wsrep_sst_method='rsync';
-set @@global.wsrep_sst_method='mysqldump';
-set @@global.wsrep_sst_method='myscript';
-set @@global.wsrep_sst_method='skip';
---error 1231
-set @@global.wsrep_sst_method=NULL;
---Error 1232
-SET @@global.wsrep_sst_method = -1;
-
-set @@global.wsrep_sst_method = @start_value; \ No newline at end of file
+--source include/have_wsrep.inc
+
+--echo #
+--echo # wsrep_sst_method
+--echo #
+
+--echo # save the initial value
+SET @wsrep_sst_method_global_saved = @@global.wsrep_sst_method;
+
+--echo # default
+SELECT @@global.wsrep_sst_method;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_sst_method;
+SET @@global.wsrep_sst_method=rsync;
+SELECT @@global.wsrep_sst_method;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_sst_method=rsync;
+SELECT @@global.wsrep_sst_method;
+SET @@global.wsrep_sst_method=mysqldump;
+SELECT @@global.wsrep_sst_method;
+SET @@global.wsrep_sst_method=xtrabackup;
+SELECT @@global.wsrep_sst_method;
+SET @@global.wsrep_sst_method="xtrabackup-v2";
+SELECT @@global.wsrep_sst_method;
+SET @@global.wsrep_sst_method=default;
+SELECT @@global.wsrep_sst_method;
+
+# Its a valid name for an SST method
+SET @@global.wsrep_sst_method='junk';
+SELECT @@global.wsrep_sst_method;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_sst_method=NULL;
+SELECT @@global.wsrep_sst_method;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_sst_method = @wsrep_sst_method_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test b/mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test
index 0a18098d77f..9e50cbf8947 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test
@@ -1,13 +1,53 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_sst_receive_address;
+--echo #
+--echo # wsrep_sst_receive_address
+--echo #
-set @@global.wsrep_sst_receive_address='128.0.2.1';
-set @@global.wsrep_sst_receive_address=AUTO;
-set @@global.wsrep_sst_receive_address='AUTO';
-set @@global.wsrep_sst_receive_address=NULL;
---Error 1232
-SET @@global.wsrep_sst_receive_address = -1;
+--echo # save the initial value
+SET @wsrep_sst_receive_address_global_saved = @@global.wsrep_sst_receive_address;
-set @@global.wsrep_sst_receive_address = @start_value;
+--echo # default
+SELECT @@global.wsrep_sst_receive_address;
+
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_sst_receive_address;
+SELECT @@global.wsrep_sst_receive_address;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_sst_receive_address=AUTO;
+SELECT @@global.wsrep_sst_receive_address;
+SET @@global.wsrep_sst_receive_address=default;
+SELECT @@global.wsrep_sst_receive_address;
+SET @@global.wsrep_sst_receive_address='192.168.2.254';
+SELECT @@global.wsrep_sst_receive_address;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_sst_receive_address='127.0.0.1:4444';
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_sst_receive_address='127.0.0.1';
+SELECT @@global.wsrep_sst_receive_address;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_sst_receive_address=NULL;
+SELECT @@global.wsrep_sst_receive_address;
+# Currently there is no strict checking performed for wsrep_sst_receive_address
+# so following values jusr pass through.
+SET @@global.wsrep_sst_receive_address='OFF';
+SELECT @@global.wsrep_sst_receive_address;
+SET @@global.wsrep_sst_receive_address=ON;
+SELECT @@global.wsrep_sst_receive_address;
+SET @@global.wsrep_sst_receive_address='';
+SELECT @@global.wsrep_sst_receive_address;
+SET @@global.wsrep_sst_receive_address='junk';
+SELECT @@global.wsrep_sst_receive_address;
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_sst_receive_address = @wsrep_sst_receive_address_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_start_position_basic.test b/mysql-test/suite/sys_vars/t/wsrep_start_position_basic.test
index 3e30d10c016..3e57cfa6da2 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_start_position_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_start_position_basic.test
@@ -1,14 +1,56 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
+--source include/have_wsrep.inc
-set @start_value = @@wsrep_start_position;
+--echo #
+--echo # wsrep_start_position
+--echo #
---error 1231
-set @@global.wsrep_start_position='foo:bar';
---error 1231
-set @@global.wsrep_start_position=NULL;
---Error 1232
-SET @@global.wsrep_start_position = -1;
+--echo # save the initial value
+SET @wsrep_start_position_global_saved = @@global.wsrep_start_position;
-set @@global.wsrep_start_position = @start_value;
+--echo # default
+SELECT @@global.wsrep_start_position;
+--echo
+--echo # scope
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.wsrep_start_position;
+SET @@global.wsrep_start_position='00000000-0000-0000-0000-000000000000:-1';
+SELECT @@global.wsrep_start_position;
+
+--echo
+--echo # valid values
+SET @@global.wsrep_start_position='00000000-0000-0000-0000-000000000000:-2';
+SELECT @@global.wsrep_start_position;
+SET @@global.wsrep_start_position='12345678-1234-1234-1234-123456789012:100';
+SELECT @@global.wsrep_start_position;
+SET @@global.wsrep_start_position=default;
+SELECT @@global.wsrep_start_position;
+
+--echo
+--echo # invalid values
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_start_position='000000000000000-0000-0000-0000-000000000000:-1';
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_start_position='12345678-1234-1234-12345-123456789012:100';
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_start_position='12345678-1234-123-12345-123456789012:0';
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_start_position='12345678-1234-1234-1234-123456789012:_99999';
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_start_position='12345678-1234-1234-1234-123456789012:a';
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_start_position='OFF';
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_start_position=ON;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_start_position='';
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_start_position=NULL;
+--error ER_WRONG_VALUE_FOR_VAR
+SET @@global.wsrep_start_position='junk';
+
+--echo
+--echo # restore the initial value
+SET @@global.wsrep_start_position = @wsrep_start_position_global_saved;
+
+--echo # End of test
diff --git a/mysql-test/suite/sys_vars/t/wsrep_wsrep_provider_basic.test b/mysql-test/suite/sys_vars/t/wsrep_wsrep_provider_basic.test
deleted file mode 100644
index f4faaccc6a7..00000000000
--- a/mysql-test/suite/sys_vars/t/wsrep_wsrep_provider_basic.test
+++ /dev/null
@@ -1,11 +0,0 @@
---source include/galera_cluster.inc
---source include/have_innodb.inc
-
-set @start_value = @@wsrep_provider;
-
-set @@global.wsrep_provider=none;
-
---Error 1231
-SET @@global.wsrep_provider = -1;
-
-set @@global.wsrep_provider = @start_value;