Add log message injection to tests

By injecting messages into the maxscale.log from the test, the reader of
the log can easily see the "synchronization" with the test case. This does
affect the test timing so it can only be used to see whether non-timing
related functionality is correct.
This commit is contained in:
Markus Mäkelä 2019-06-28 08:25:00 +03:00
parent 990208d0fd
commit 02395102ed
No known key found for this signature in database
GPG Key ID: 72D48FCE664F7B19
2 changed files with 21 additions and 0 deletions

View File

@ -1885,6 +1885,22 @@ void TestConnections::tprintf(const char* format, ...)
fflush(stderr);
}
void TestConnections::log_printf(const char* format, ...)
{
va_list argp;
va_start(argp, format);
int n = vsnprintf(nullptr, 0, format, argp);
va_end(argp);
va_start(argp, format);
char buf[n + 1];
vsnprintf(buf, sizeof(buf), format, argp);
va_end(argp);
maxscales->ssh_node_f(0, true, "echo '--- %s ---' >> /var/log/maxscale/maxscale.log", buf);
tprintf("%s", buf);
}
int TestConnections::get_master_server_id(int m)
{
int master_id = -1;

View File

@ -505,6 +505,11 @@ public:
*/
void tprintf(const char* format, ...);
/**
* @brief injects a message into maxscale.log
*/
void log_printf(const char* format, ...) mxb_attribute((format(printf, 2, 3)));
/**
* @brief Creats t1 table, insert data into it and checks if data can be correctly read from all Maxscale
* services