
See script directory for method. The script to run in the top level MaxScale directory is called maxscale-uncrustify.sh, which uses another script, list-src, from the same directory (so you need to set your PATH). The uncrustify version was 0.66.
86 lines
2.6 KiB
C++
86 lines
2.6 KiB
C++
/**
|
|
* @file Check that removing a server from a service doesn't break active connections
|
|
*/
|
|
|
|
#include "testconnections.h"
|
|
|
|
static volatile bool running = true;
|
|
|
|
void* thr(void* data)
|
|
{
|
|
TestConnections* test = (TestConnections*)data;
|
|
|
|
while (running && test->global_result == 0)
|
|
{
|
|
test->set_timeout(60);
|
|
if (test->try_query(test->maxscales->conn_rwsplit[0], "SELECT 1"))
|
|
{
|
|
test->tprintf("Failed to select via readwritesplit");
|
|
}
|
|
if (test->try_query(test->maxscales->conn_master[0], "SELECT 1"))
|
|
{
|
|
test->tprintf("Failed to select via readconnroute master");
|
|
}
|
|
if (test->try_query(test->maxscales->conn_slave[0], "SELECT 1"))
|
|
{
|
|
test->tprintf("Failed to select via readconnroute slave");
|
|
}
|
|
}
|
|
|
|
test->stop_timeout();
|
|
|
|
return NULL;
|
|
}
|
|
|
|
int main(int argc, char* argv[])
|
|
{
|
|
TestConnections test(argc, argv);
|
|
test.maxscales->connect_maxscale(0);
|
|
|
|
test.tprintf("Connect to MaxScale and continuously execute queries");
|
|
pthread_t thread;
|
|
pthread_create(&thread, NULL, thr, &test);
|
|
sleep(5);
|
|
|
|
test.tprintf("Remove all servers from all services");
|
|
|
|
for (int i = 3; i > -1; i--)
|
|
{
|
|
test.maxscales->ssh_node_f(0, true, "maxadmin remove server server%d \"RW Split Router\"", i);
|
|
test.maxscales->ssh_node_f(0,
|
|
true,
|
|
"maxadmin remove server server%d \"Read Connection Router Slave\"",
|
|
i);
|
|
test.maxscales->ssh_node_f(0,
|
|
true,
|
|
"maxadmin remove server server%d \"Read Connection Router Master\"",
|
|
i);
|
|
}
|
|
|
|
sleep(5);
|
|
|
|
test.tprintf("Stop queries and close the connections");
|
|
running = false;
|
|
pthread_join(thread, NULL);
|
|
test.maxscales->close_maxscale_connections(0);
|
|
|
|
test.tprintf("Add all servers to all services");
|
|
|
|
for (int i = 3; i > -1; i--)
|
|
{
|
|
test.maxscales->ssh_node_f(0, true, "maxadmin add server server%d \"RW Split Router\"", i);
|
|
test.maxscales->ssh_node_f(0,
|
|
true,
|
|
"maxadmin add server server%d \"Read Connection Router Slave\"",
|
|
i);
|
|
test.maxscales->ssh_node_f(0,
|
|
true,
|
|
"maxadmin add server server%d \"Read Connection Router Master\"",
|
|
i);
|
|
}
|
|
|
|
test.check_maxscale_alive(0);
|
|
|
|
return test.global_result;
|
|
}
|