46 lines
1.3 KiB
C++
46 lines
1.3 KiB
C++
/**
|
|
* @file namedserverfilter.cpp Namedserverfilter test
|
|
*
|
|
* Check that a readwritesplit service with a namedserverfilter will route a
|
|
* SELECT @@server_id to the correct server. The filter is configured with
|
|
* `match=SELECT` which should match any SELECT query.
|
|
*/
|
|
|
|
|
|
#include <iostream>
|
|
#include "testconnections.h"
|
|
|
|
using namespace std;
|
|
|
|
int compare_server_id(TestConnections* test, char *node_id)
|
|
{
|
|
char str[1024];
|
|
int rval = 0;
|
|
if (find_field(test->maxscales->conn_rwsplit[0], "SELECT @@server_id", "@@server_id", str))
|
|
{
|
|
test->tprintf("Failed to query for @@server_id.\n");
|
|
rval = 1;
|
|
}
|
|
else if (strcmp(node_id, str))
|
|
{
|
|
test->tprintf("@@server_id is %s instead of %s\n", str, node_id);
|
|
rval = 1;
|
|
}
|
|
return rval;
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
TestConnections *test = new TestConnections(argc, argv);
|
|
test->repl->connect();
|
|
char server_id[1024];
|
|
|
|
sprintf(server_id, "%d", test->repl->get_server_id(1));
|
|
test->tprintf("Server ID of server2 is: %s\n", server_id);
|
|
test->add_result(test->maxscales->connect_rwsplit(0), "Test failed to connect to MaxScale.\n");
|
|
test->add_result(compare_server_id(test, server_id), "Test failed, server ID was not correct.\n");
|
|
int rval = test->global_result;
|
|
delete test;
|
|
return rval;
|
|
}
|