
The latter are more explicit and easier to understand at the call site. Also removed the redundant crash checks via the log files.
56 lines
1.9 KiB
C++
56 lines
1.9 KiB
C++
/**
|
|
* @file session_limits.cpp - test for 'max_sescmd_history' and 'connection_timeout' parameters
|
|
* - add follwoling to router configuration
|
|
* @verbatim
|
|
* connection_timeout=30
|
|
* router_options=max_sescmd_history=10
|
|
* @endverbatim
|
|
* - open session
|
|
* - wait 20 seconds, check if session is alive, expect ok
|
|
* - wait 20 seconds more, check if session is alive, expect failure
|
|
* - open new session
|
|
* - execute 10 session commands
|
|
* - check if session is alive, expect ok
|
|
* - execute one more session commad, excpect failure
|
|
*/
|
|
|
|
#include "testconnections.h"
|
|
|
|
int main(int argc, char* argv[])
|
|
{
|
|
TestConnections test(argc, argv);
|
|
int first_sleep = 5;
|
|
int second_sleep = 12;
|
|
|
|
test.set_timeout(200);
|
|
|
|
test.tprintf("Open session, wait %d seconds and execute a query", first_sleep);
|
|
test.maxscales->connect_maxscale(0);
|
|
sleep(first_sleep);
|
|
test.try_query(test.maxscales->conn_rwsplit[0], "SELECT 1");
|
|
|
|
test.tprintf("Wait %d seconds and execute query, expecting failure", second_sleep);
|
|
sleep(second_sleep);
|
|
test.add_result(execute_query(test.maxscales->conn_rwsplit[0], "SELECT 1") == 0,
|
|
"Session was not closed after %d seconds",
|
|
second_sleep);
|
|
test.maxscales->close_maxscale_connections(0);
|
|
|
|
test.tprintf("Open session and execute 10 session commands");
|
|
test.maxscales->connect_maxscale(0);
|
|
for (int i = 0; i < 10; i++)
|
|
{
|
|
test.try_query(test.maxscales->conn_rwsplit[0],
|
|
"%s",
|
|
std::string("set @test=" + std::to_string(i)).c_str());
|
|
}
|
|
|
|
test.tprintf("Execute one more session command and expect message in error log");
|
|
execute_query(test.maxscales->conn_rwsplit[0], "set @test=11");
|
|
sleep(1);
|
|
test.log_includes(0, "Router session exceeded session command history limit");
|
|
test.maxscales->close_maxscale_connections(0);
|
|
|
|
return test.global_result;
|
|
}
|