[Commits] 63cf016: tests

sanja at mariadb.com sanja at mariadb.com
Thu Feb 26 12:22:47 EET 2015


revision-id: 63cf01631f0e1539ff2d79f1e5b2f13520b48ef2
parent(s): 6a98efc7a9926e4843cb47caa51cd5409e4434e7
committer: Oleksandr Byelkin
branch nick: server
timestamp: 2015-02-26 11:22:44 +0100
message:

tests

---
 mysql-test/include/show_all_slaves_status.inc      | 65 ++++++++++++++++++++++
 mysql-test/suite/rpl/r/rpl_set_statement.test      |  0
 .../rpl/r/rpl_set_statement_default_master.result  | 14 +++++
 .../rpl/t/rpl_set_statement_default_master.test    | 26 +++++++++
 4 files changed, 105 insertions(+)

diff --git a/mysql-test/include/show_all_slaves_status.inc b/mysql-test/include/show_all_slaves_status.inc
new file mode 100644
index 0000000..4c96c31
--- /dev/null
+++ b/mysql-test/include/show_all_slaves_status.inc
@@ -0,0 +1,65 @@
+# ==== Usage ====
+#
+# --let $status_items= Column_Name[, Column_Name[, ...]]
+# --source include/show_all_slaves_status.inc
+#
+# Parameters:
+#   $status_items
+#     Set to the name of the column in the output of SHOW SLAVE STATUS
+#     that you want to display. Example:
+#
+#       --let $status_items= Master_SSL_Allowed
+#
+#     You can show multiple columns by setting $status_items to a
+#     comma-separated list. Example:
+#
+#       --let $status_items= Master_Log_File, Relay_Master_Log_File
+#
+#   $slave_field_result_replace
+#     If set, one or more regex patterns for replacing variable
+#     text in the error message. Syntax as --replace-regex
+#
+#   $slave_sql_mode
+#     If set, change the slave sql mode during this macro, reverting
+#     to the previous on exit. Default sql_mode is NO_BACKSLASH_ESCAPES
+#     to allow replace '\' by '/' making paths OS independent. Example:
+#
+#       --let $slave_sql_mode= NO_BACKSLASH_ESCAPES
+#
+
+
+--let $_show_slave_status_items=$status_items
+if (!$status_items)
+{
+  --die Bug in test case: The mysqltest variable $status_items is not set.
+}
+
+
+--let $_slave_sql_mode= NO_BACKSLASH_ESCAPES
+if ($slave_sql_mode)
+{
+  --let $_slave_sql_mode= $slave_sql_mode
+}
+--let $_previous_slave_sql_mode = `SELECT @@sql_mode`
+--disable_query_log
+eval SET sql_mode= '$_slave_sql_mode';
+--enable_query_log
+
+
+while ($_show_slave_status_items) 
+{
+  --let $_show_slave_status_name= `SELECT SUBSTRING_INDEX('$_show_slave_status_items', ',', 1)`
+  --let $_show_slave_status_items= `SELECT LTRIM(SUBSTRING('$_show_slave_status_items', LENGTH('$_show_slave_status_name') + 2))`
+
+  --replace_regex /\.[\\\/]master/master/
+  --let $_show_slave_status_value= query_get_value(SHOW ALL SLAVES STATUS, $_show_slave_status_name, 1)
+  --let $_slave_field_result_replace= /[\\\\]/\// $slave_field_result_replace
+  --replace_regex $_slave_field_result_replace
+  --let $_show_slave_status_value= `SELECT REPLACE("$_show_slave_status_value", '$MYSQL_TEST_DIR', 'MYSQL_TEST_DIR')`
+  --echo $_show_slave_status_name = '$_show_slave_status_value'
+}
+
+
+--disable_query_log
+eval SET sql_mode= '$_previous_slave_sql_mode';
+--enable_query_log
diff --git a/mysql-test/suite/rpl/r/rpl_set_statement.test b/mysql-test/suite/rpl/r/rpl_set_statement.test
new file mode 100644
index 0000000..e69de29
diff --git a/mysql-test/suite/rpl/r/rpl_set_statement_default_master.result b/mysql-test/suite/rpl/r/rpl_set_statement_default_master.result
new file mode 100644
index 0000000..7398780
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_set_statement_default_master.result
@@ -0,0 +1,14 @@
+include/master-slave.inc
+[connection master]
+include/stop_slave.inc
+RESET SLAVE ALL;
+# Does not work for CHANGE MASTER:
+SET STATEMENT default_master_connection = 'm1' FOR 
+CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_MYPORT, MASTER_USER='root';
+#
+# The first field, Connection_name, should say 'm1'...
+#
+Connection_name = 'm1'
+RESET SLAVE ALL;
+CHANGE MASTER 'm1' TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_MYPORT, MASTER_USER='root';
+SET STATEMENT default_master_connection = 'm1' FOR START SLAVE;
diff --git a/mysql-test/suite/rpl/t/rpl_set_statement_default_master.test b/mysql-test/suite/rpl/t/rpl_set_statement_default_master.test
new file mode 100644
index 0000000..39309e4
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_set_statement_default_master.test
@@ -0,0 +1,26 @@
+--source include/master-slave.inc
+
+--connection slave
+
+--source include/stop_slave.inc
+RESET SLAVE ALL;
+
+--echo # Does not work for CHANGE MASTER:
+--replace_result $MASTER_MYPORT MASTER_MYPORT
+eval SET STATEMENT default_master_connection = 'm1' FOR 
+  CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=$MASTER_MYPORT, MASTER_USER='root';
+
+
+--echo #
+--echo # The first field, Connection_name, should say 'm1'...
+--echo #
+--let $status_items= Connection_name
+--source include/show_all_slaves_status.inc
+#query_vertical SHOW ALL SLAVES STATUS;
+
+
+RESET SLAVE ALL;
+
+--replace_result $MASTER_MYPORT MASTER_MYPORT
+eval CHANGE MASTER 'm1' TO MASTER_HOST='127.0.0.1', MASTER_PORT=$MASTER_MYPORT, MASTER_USER='root';
+SET STATEMENT default_master_connection = 'm1' FOR START SLAVE;


More information about the commits mailing list