diff --git a/maxscale-system-test/CMakeLists.txt b/maxscale-system-test/CMakeLists.txt index 57ae856a4..31e6c5a21 100644 --- a/maxscale-system-test/CMakeLists.txt +++ b/maxscale-system-test/CMakeLists.txt @@ -518,6 +518,10 @@ add_test_executable(mxs1509.cpp mxs1509 mxs1509 LABELS REPL_BACKEND) # https://jira.mariadb.org/browse/MXS-1516 add_test_executable(mxs1516.cpp mxs1516 replication LABELS REPL_BACKEND) + # MXS-1542: Check that UTF16 strings work + # https://jira.mariadb.org/browse/MXS-1542 +add_test_executable(mxs1542.cpp mxs1542 avro LABELS REPL_BACKEND) + # MXS-1585: Crash in MaxScale 2.1.12 # https://jira.mariadb.org/browse/MXS-1585 add_test_executable(mxs1585.cpp mxs1585 mxs1585 LABELS REPL_BACKEND) diff --git a/maxscale-system-test/mxs1542.cpp b/maxscale-system-test/mxs1542.cpp new file mode 100644 index 000000000..738466129 --- /dev/null +++ b/maxscale-system-test/mxs1542.cpp @@ -0,0 +1,40 @@ +/** + * MXS-1542: https://jira.mariadb.org/browse/MXS-1542 + * + * Check that UTF16 strings work. + */ + +#include "testconnections.h" + +int main(int argc, char** argv) +{ + TestConnections::skip_maxscale_start(true); + TestConnections::check_nodes(false); + TestConnections test(argc, argv); + + test.replicate_from_master(); + + test.repl->connect(); + execute_query(test.repl->nodes[0], + "CREATE OR REPLACE TABLE t1 (data varchar(30) NOT NULL) DEFAULT CHARSET=utf16"); + execute_query(test.repl->nodes[0], + "INSERT INTO t1 VALUES ('Hello World'), ('Բարեւ աշխարհ'), ('こんにちは世界'), ('你好,世界'), ('Привет мир')"); + + // Wait for the data to be processed + const char* logmsg = "Waiting until more data is written"; + test.ssh_maxscale(true, + "for ((i=0;i<15;i++)); do grep '%s' /var/log/maxscale/maxscale.log && break || sleep 1; done", logmsg); + + // Check if the Avro file contains the inserted value + int rc = test.ssh_maxscale(true, + "maxavrocheck -d /var/lib/maxscale/avro/test.t1.000001.avro|grep 'Hello World'"); + test.add_result(rc == 0, "Data is converted when a failure to convert is expected"); + + printf("\n" + "o-------------------------------------------------------------------o\n" + "|The test is expected to fail, change it when the MXS-1542 is fixed.|\n" + "o-------------------------------------------------------------------o\n" + "\n"); + + return test.global_result; +}