1# ==== Purpose ==== 2# 3# Test that the sync chain generated by 4# include/rpl_change_topology.inc (sourced from include/rpl_init.inc) 5# is correct. 6# 7# We test a number of different topologies. Each topology is tested 8# in include/rpl_test_framework.inc. See 9# include/rpl_test_framework.inc for details on how the sync 10# chain is tested. 11# 12# ==== Related bugs ==== 13# 14# BUG#49978: Replication tests don't clean up replication state at the end 15 16 17# We only need to execute this test once. Also, we rely on 'DELETE 18# FROM t1' to remove rows in slave tables that don't exist in master 19# tables (see include/rpl_test_framework.inc for details). 20--source include/have_binlog_format_statement.inc 21 22 23--echo ==== Create t1 on all servers. ==== 24if ($mtr_supports_more_than_10_servers) 25{ 26 --let $rpl_server_count= 15 27 --let $rpl_topology= 1->2->3->4->5->6->7->8->9->10->11->12->13->14->15 28} 29if (!$mtr_supports_more_than_10_servers) 30{ 31 --let $rpl_server_count= 9 32 --let $rpl_topology= 1->2->3->4->5->6->7->8->9 33} 34--source include/rpl_init.inc 35CREATE TABLE t1 (a INT); 36--source include/rpl_end.inc 37 38# Initialize $next_number before first call to 39# include/rpl_test_framework.text 40--let $next_number= 0 41 42 43--echo ==== Test 3-server topologies ==== 44 45--let $rpl_server_count= 3 46 47--let $rpl_topology= 1 -> 2 48--let $masters= 1,3 49--source include/rpl_test_framework.inc 50 51--let $rpl_topology= 2 -> 3 52--let $masters= 1,2 53--source include/rpl_test_framework.inc 54 55--let $rpl_topology= none 56--let $masters= 1,2,3 57--source include/rpl_test_framework.inc 58 59--let $rpl_topology= 1->2, 2->1 60--let $masters= 1,3 61--source include/rpl_test_framework.inc 62 63--let $rpl_topology= 1->2->1 64--let $masters= 2,3 65--source include/rpl_test_framework.inc 66 67--let $rpl_topology= 2->1->2 68--let $masters= 1,3 69--source include/rpl_test_framework.inc 70 71--let $rpl_topology= 1->2->3 72--let $masters= 1 73--source include/rpl_test_framework.inc 74 75--let $rpl_topology= 2->3->2->1 76--let $masters= 3 77--source include/rpl_test_framework.inc 78 79--let $rpl_topology= 1->2,2->3,3->1 80--let $masters= 3 81--source include/rpl_test_framework.inc 82 83--let $rpl_topology= 1->3->2->1 84--let $masters= 3 85--source include/rpl_test_framework.inc 86 87 88--echo ==== Test 6-server topologies ==== 89 90--let $rpl_server_count= 6 91 92--let $rpl_topology= 1->2->3->4->1->5->6 93--let $masters= 1 94--source include/rpl_test_framework.inc 95 96--let $rpl_topology= 3->4->5->6->3->1->2 97--let $masters= 4 98--source include/rpl_test_framework.inc 99 100--let $rpl_topology= 6->5->4->3->2->1 101--let $masters= 6 102--source include/rpl_test_framework.inc 103 104--let $rpl_topology= 1->2->3->1,4->5->6 105--let $masters= 3,4 106--source include/rpl_test_framework.inc 107 108 109--echo ==== Test 9-server topology ==== 110 111--let $rpl_server_count= 9 112 113--let $rpl_topology= 1->2, 2->3, 3->4, 4->5, 5->1, 1->6, 6->7, 6->8, 8->9 114--let $masters= 2 115--source include/rpl_test_framework.inc 116 117if ($mtr_supports_more_than_10_servers) { 118--echo ==== Test 15-server topologies ==== 119 120--let $rpl_server_count= 15 121 122--let $rpl_topology= 1->2->3->4->5->6->7->8->9->10->11->12->13->14->15->1 123--let $masters= 2 124--source include/rpl_test_framework.inc 125 126# This is a binary tree 127--let $rpl_topology= 1->2->4->8,1->3->6->12,2->5->10,3->7->14,4->9,5->11,6->13,7->15 128--let $masters= 1 129--source include/rpl_test_framework.inc 130} 131 132--echo ==== Clean up ==== 133 134if ($mtr_supports_more_than_10_servers) { 135 --let $rpl_topology= 1->2->3->4->5->6->7->8->9->10->11->12->13->14->15 136} 137if (!$mtr_supports_more_than_10_servers) { 138 --let $rpl_topology= 1->2->3->4->5->6->7->8->9 139} 140--source include/rpl_init.inc 141--connection server_1 142DROP TABLE t1; 143--source include/rpl_end.inc 144