From 077f344a206461eb5434cbe84bbe1ca68ddb366d Mon Sep 17 00:00:00 2001 From: Marko Date: Thu, 6 Sep 2018 17:59:18 +0300 Subject: [PATCH] MXS-2037 Add test case --- maxscale-system-test/CMakeLists.txt | 4 + ...cnf.template.mxs2037_namedserver_wildcards | 95 +++++++++++++++++++ .../mxs2037_namedserver_wildcards.cpp | 23 +++++ 3 files changed, 122 insertions(+) create mode 100644 maxscale-system-test/cnf/maxscale.cnf.template.mxs2037_namedserver_wildcards create mode 100644 maxscale-system-test/mxs2037_namedserver_wildcards.cpp diff --git a/maxscale-system-test/CMakeLists.txt b/maxscale-system-test/CMakeLists.txt index a2bbbc342..4bb197822 100644 --- a/maxscale-system-test/CMakeLists.txt +++ b/maxscale-system-test/CMakeLists.txt @@ -969,6 +969,10 @@ add_test_executable(mxs1961_standalone_rejoin.cpp mxs1961_standalone_rejoin mxs1 # https://jira.mariadb.org/browse/MXS-1985 add_test_executable(mxs1985_kill_hang.cpp mxs1985_kill_hang replication LABELS REPL_BACKEND) +# MXS-2037: Wildcards not working with source in Named Server Filter +# https://jira.mariadb.org/browse/MXS-2037 +add_test_executable(mxs2037_namedserver_wildcards.cpp mxs2037_namedserver_wildcards mxs2037_namedserver_wildcards LABELS namedserverfilter LIGHT REPL_BACKEND) + configure_file(templates.h.in templates.h @ONLY) include(CTest) diff --git a/maxscale-system-test/cnf/maxscale.cnf.template.mxs2037_namedserver_wildcards b/maxscale-system-test/cnf/maxscale.cnf.template.mxs2037_namedserver_wildcards new file mode 100644 index 000000000..831d968a4 --- /dev/null +++ b/maxscale-system-test/cnf/maxscale.cnf.template.mxs2037_namedserver_wildcards @@ -0,0 +1,95 @@ +[maxscale] +threads=###threads### +log_warning=1 + +[namedserverfilter] +type=filter +module=namedserverfilter +match01=SELECT +target01=server1 +source=127.%.%.% + +[MySQL Monitor] +type=monitor +module=mysqlmon +###repl51### +servers=server1,server2,server3,server4 +user=maxskysql +passwd=skysql +monitor_interval=1000 + +[RW Split Router] +type=service +router=readwritesplit +servers=server1,server2,server3,server4 +user=maxskysql +passwd=skysql +filters=namedserverfilter + +[CLI] +type=service +router=cli + +[CLI Listener] +type=listener +service=CLI +protocol=maxscaled +socket=default + +[Read Connection Router Slave] +type=service +router=readconnroute +router_options=slave +servers=server1,server2,server3,server4 +user=maxskysql +passwd=skysql + +[Read Connection Router Master] +type=service +router=readconnroute +router_options=master +servers=server1,server2,server3,server4 +user=maxskysql +passwd=skysql + +[RW Split Listener] +type=listener +service=RW Split Router +protocol=MySQLClient +port=4006 + +[Read Connection Listener Slave] +type=listener +service=Read Connection Router Slave +protocol=MySQLClient +port=4009 + +[Read Connection Listener Master] +type=listener +service=Read Connection Router Master +protocol=MySQLClient +port=4008 + +[server1] +type=server +address=###node_server_IP_1### +port=###node_server_port_1### +protocol=MySQLBackend + +[server2] +type=server +address=###node_server_IP_2### +port=###node_server_port_2### +protocol=MySQLBackend + +[server3] +type=server +address=###node_server_IP_3### +port=###node_server_port_3### +protocol=MySQLBackend + +[server4] +type=server +address=###node_server_IP_4### +port=###node_server_port_4### +protocol=MySQLBackend diff --git a/maxscale-system-test/mxs2037_namedserver_wildcards.cpp b/maxscale-system-test/mxs2037_namedserver_wildcards.cpp new file mode 100644 index 000000000..a3e7ab649 --- /dev/null +++ b/maxscale-system-test/mxs2037_namedserver_wildcards.cpp @@ -0,0 +1,23 @@ +/** + * MXS-2037: Wildcards not working with source in NamedServerFilter + * + * https://jira.mariadb.org/browse/MXS-2037 + * + * This test only tests that ip addresses with wildcards are accepted by + * NamedServerFilter. The actual matching functionality is not tested + * because the client IPs can change with the different test environments + * and that would make it complicated to check if the matching is correct. + */ + + +#include "testconnections.h" + +int main(int argc, char **argv) +{ + TestConnections test(argc, argv); + test.set_timeout(10); + test.maxscales->connect_maxscale(0); + test.add_result(execute_query(test.maxscales->conn_rwsplit[0], "select 1"), "Can't connect to backend"); + test.maxscales->close_maxscale_connections(0); + return test.global_result; +}