int main(int argc, char *argv[]) { TestConnections * Test = new TestConnections(argc, argv); Test->set_timeout(100); Test->repl->connect(); const int TestConnNum = 100; MYSQL *conn[TestConnNum]; int i; int conn_num; Test->tprintf("Creating %d connections to ReadConnRouter in 'slave' mode\n", TestConnNum); for (i = 0; i < TestConnNum; i++) { conn[i] = Test->open_readconn_slave_connection(); } Test->tprintf("Waiting 5 seconds\n"); sleep(5); int ConnFloor = floor((float)TestConnNum / (Test->repl->N - 1)); int ConnCell = ceil((float)TestConnNum / (Test->repl->N - 1)); int TotalConn = 0; Test->tprintf("Checking connections to Master: should be 0\n"); conn_num = get_conn_num(Test->repl->nodes[0], Test->maxscale_ip(), Test->maxscale_hostname, (char *) "test"); Test->add_result(conn_num, "number of connections to Master is %d\n", conn_num); Test->tprintf("Number of connections to each slave should be between %d and %d\n", ConnFloor, ConnCell); Test->tprintf("Checking connections to each node\n"); for (int i = 1; i < Test->repl->N; i++) { conn_num = get_conn_num(Test->repl->nodes[i], Test->maxscale_ip(), Test->maxscale_hostname, (char *) "test"); TotalConn += conn_num; printf("Connections to node %d (%s):\t%d\n", i, Test->repl->IP[i], conn_num); if ((conn_num > ConnCell) || (conn_num < ConnFloor)) { Test->add_result(1, "wrong number of connectiosn to mode %d\n", i); } } Test->tprintf("Total number of connections %d\n", TotalConn); if (TotalConn != TestConnNum) { Test->add_result(1, "total number of connections is wrong\n"); } for (i = 0; i < TestConnNum; i++) { mysql_close(conn[i]); } int rval = Test->global_result; delete Test; return rval; }
int main(int argc, char *argv[]) { TestConnections * Test = new TestConnections(argc, argv); Test->set_timeout(20); Test->repl->connect(); Test->tprintf("Connecting to RWSplit %s\n", Test->maxscale_ip()); Test->connect_rwsplit(); unsigned int conn_num; unsigned int all_conn = 0; Test->tprintf("Sleeping 5 seconds\n"); sleep(5); Test->tprintf("Checking number of connections ot backend servers\n"); for (int i = 0; i < Test->repl->N; i++) { conn_num = get_conn_num(Test->repl->nodes[i], Test->maxscale_ip(), Test->maxscale_hostname, (char *) "test"); Test->tprintf("connections: %u\n", conn_num); if ((i == 0) && (conn_num != 1)) { Test->add_result(1, " Master should have only 1 connection, but it has %d connection(s)\n", conn_num); } all_conn += conn_num; } if (all_conn != 2) { Test->add_result(1, "there should be two connections in total: one to master and one to one of slaves, but number of connections is %d\n", all_conn); } Test->close_rwsplit(); Test->repl->close_connections(); int rval = Test->global_result; delete Test; return rval; }