 4b6aab1417
			
		
	
	4b6aab1417
	
	
	
		
			
			The latter are more explicit and easier to understand at the call site. Also removed the redundant crash checks via the log files.
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /**
 | |
|  * @file mxs922_restart.cpp MXS-922: Test persisting of configuration changes
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #include "testconnections.h"
 | |
| 
 | |
| #define MONITOR_NAME  "mysql-monitor"
 | |
| #define SERVICE_NAME1 "rwsplit-service"
 | |
| #define SERVICE_NAME2 "read-connection-router-slave"
 | |
| #define SERVICE_NAME3 "read-connection-router-master"
 | |
| 
 | |
| void add_servers(TestConnections* test)
 | |
| {
 | |
|     test->tprintf("Adding the servers");
 | |
| 
 | |
|     for (int i = 0; i < 4; i++)
 | |
|     {
 | |
|         test->set_timeout(120);
 | |
|         test->maxscales->ssh_node_f(0, true, "maxadmin add server server%d " MONITOR_NAME, i + 1);
 | |
|         test->maxscales->ssh_node_f(0, true, "maxadmin add server server%d " SERVICE_NAME1, i + 1);
 | |
|         test->maxscales->ssh_node_f(0, true, "maxadmin add server server%d " SERVICE_NAME2, i + 1);
 | |
|         test->maxscales->ssh_node_f(0, true, "maxadmin add server server%d " SERVICE_NAME3, i + 1);
 | |
|         test->stop_timeout();
 | |
|     }
 | |
| }
 | |
| 
 | |
| void do_query(TestConnections* test, bool should_fail)
 | |
| {
 | |
|     test->tprintf("Trying to query, expecting %s", should_fail ? "failure" : "success");
 | |
|     test->set_timeout(120);
 | |
| 
 | |
|     test->maxscales->connect_maxscale(0);
 | |
| 
 | |
|     bool failed = execute_query(test->maxscales->conn_rwsplit[0], "select @@server_id") == 0;
 | |
| 
 | |
|     const char* msg = should_fail ?
 | |
|         "Query was successful when failure was expected." :
 | |
|         "Query failed when success was expected.";
 | |
| 
 | |
|     test->add_result(failed == should_fail, "%s", msg);
 | |
|     test->maxscales->close_maxscale_connections(0);
 | |
| 
 | |
|     test->stop_timeout();
 | |
| }
 | |
| 
 | |
| int main(int argc, char* argv[])
 | |
| {
 | |
|     TestConnections* test = new TestConnections(argc, argv);
 | |
| 
 | |
|     test->tprintf("Creating servers");
 | |
| 
 | |
|     for (int i = 0; i < 4; i++)
 | |
|     {
 | |
|         test->maxscales->ssh_node_f(0, true, "maxadmin create server server%d %s", i + 1, test->repl->IP[i]);
 | |
|     }
 | |
| 
 | |
|     /**  Add the servers again */
 | |
|     add_servers(test);
 | |
| 
 | |
|     test->tprintf("Wait for the monitor to see the new servers");
 | |
|     sleep(2);
 | |
| 
 | |
|     do_query(test, false);
 | |
| 
 | |
| 
 | |
|     test->tprintf("Restarting MaxScale");
 | |
|     test->maxscales->restart_maxscale(0);
 | |
|     sleep(2);
 | |
| 
 | |
|     do_query(test, false);
 | |
| 
 | |
|     test->check_maxscale_alive(0);
 | |
| 
 | |
|     int rval = test->global_result;
 | |
|     delete test;
 | |
|     return rval;
 | |
| }
 |