- 1 master, 3 slaves - stop maxscale so it does not autorejoin later on - stop & reset slave on servers 3 & 4 - add data to server 4 - restart maxscale, check that server 3 is rejoined but not server 4 - manually set server 1 to replicate from server 4, creating a relay master - check that servers 2 & 3 are redirected, making server 1 just a slave - switchover master to server 1, check that it's the master Also, moved some common functions into their own files. These functions are used by multiple tests.
46 lines
964 B
C++
46 lines
964 B
C++
/**
|
|
* Test auto_failover
|
|
*/
|
|
|
|
#include "testconnections.h"
|
|
#include "failover_common.cpp"
|
|
|
|
int main(int argc, char** argv)
|
|
{
|
|
const char FAILOVER_CMD[] = "maxadmin call command mysqlmon failover MySQL-Monitor";
|
|
interactive = strcmp(argv[argc - 1], "interactive") == 0;
|
|
TestConnections test(argc, argv);
|
|
int ec;
|
|
// Wait a few seconds
|
|
sleep(5);
|
|
basic_test(test);
|
|
|
|
// Test 1
|
|
int node0_id = prepare_test_1(test);
|
|
sleep(3);
|
|
test.maxscales->ssh_node_output(0, FAILOVER_CMD , true, &ec);
|
|
sleep(10);
|
|
|
|
check_test_1(test, node0_id);
|
|
|
|
// Test 2
|
|
prepare_test_2(test);
|
|
sleep(3);
|
|
test.maxscales->ssh_node_output(0, FAILOVER_CMD, true, &ec);
|
|
sleep(10);
|
|
|
|
check_test_2(test);
|
|
|
|
// Test 3
|
|
prepare_test_3(test);
|
|
sleep(3);
|
|
test.maxscales->ssh_node_output(0, FAILOVER_CMD, true, &ec);
|
|
sleep(10);
|
|
|
|
check_test_3(test);
|
|
|
|
test.repl->fix_replication();
|
|
return test.global_result;
|
|
}
|
|
|