/**
 * 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.maxscales->ssh_node_f(0, 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.maxscales->ssh_node_f(0, 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;
}
