Files
MaxScale/maxscale-system-test/transaction_test_wo_maxscale.cpp
Niclas Antti c447e5cf15 Uncrustify maxscale
See script directory for method. The script to run in the top level
MaxScale directory is called maxscale-uncrustify.sh, which uses
another script, list-src, from the same directory (so you need to set
your PATH). The uncrustify version was 0.66.
2018-09-09 22:26:19 +03:00

141 lines
5.2 KiB
C++

/**
* @file transaction_test_wo_maxscale.cpp
*/
#include <iostream>
#include "testconnections.h"
#include "maxadmin_operations.h"
#include "sql_t1.h"
int check_sha1(TestConnections* Test)
{
Test->tprintf("ls before FLUSH LOGS\n");
Test->tprintf("Master");
Test->repl->ssh_node(0, (char*) "ls -la /var/lib/mysql/mar-bin.0000*", false);
Test->tprintf("FLUSH LOGS\n");
Test->try_query(Test->repl->nodes[0], (char*) "FLUSH LOGS");
Test->tprintf("Logs flushed\n");
sleep(20);
Test->tprintf("ls after first FLUSH LOGS\n");
Test->tprintf("Master\n");
Test->repl->ssh_node(0, (char*) "ls -la /var/lib/mysql/mar-bin.0000*", false);
Test->tprintf("FLUSH LOGS\n");
Test->try_query(Test->repl->nodes[0], (char*) "FLUSH LOGS");
Test->tprintf("Logs flushed\n");
fflush(stdout);
sleep(19);
printf("ls before FLUSH LOGS\n");
printf("Master");
Test->repl->ssh_node(0, (char*) "ls -la /var/lib/mysql/mar-bin.0000*", false);
return Test->global_result;
}
int start_transaction(TestConnections* Test)
{
int global_result = 0;
Test->tprintf("Transaction test\n");
Test->tprintf("Start transaction\n");
global_result += execute_query(Test->repl->nodes[0], (char*) "START TRANSACTION");
// global_result += execute_query(Test->repl->nodes[0], (char *) "SET autocommit = 0");
Test->tprintf("INSERT data\n");
global_result += execute_query(Test->repl->nodes[0], (char*) "INSERT INTO t1 VALUES(111, 10)");
sleep(20);
return global_result;
}
int main(int argc, char* argv[])
{
TestConnections* Test = new TestConnections(argc, argv);
int i;
for (int option = 0; option < 3; option++)
{
Test->repl->connect();
create_t1(Test->repl->nodes[0]);
Test->add_result(insert_into_t1(Test->repl->nodes[0], 4), "INSER into t1 failed\n");
Test->tprintf("Sleeping to let replication happen\n");
sleep(30);
for (i = 0; i < Test->repl->N; i++)
{
Test->tprintf("Checking data from node %d (%s)\n", i, Test->repl->IP[i]);
Test->add_result(select_from_t1(Test->repl->nodes[i], 4), "select form t1 wrong\n");
}
Test->tprintf("First transaction test (with ROLLBACK)\n");
start_transaction(Test);
Test->tprintf("SELECT * FROM t1 WHERE fl=10, checking inserted values\n");
Test->add_result(execute_query_check_one(Test->repl->nodes[0],
(char*) "SELECT * FROM t1 WHERE fl=10",
"111"),
"failed\n");
// printf("SELECT, checking inserted values from slave\n");
// global_result += execute_query_check_one(Test->repl->nodes[2], (char *) "SELECT * FROM t1 WHERE
// fl=10", "111");
Test->add_result(check_sha1(Test), "sha1 wrong\n");
Test->tprintf("ROLLBACK\n");
Test->try_query(Test->repl->nodes[0], (char*) "ROLLBACK");
Test->tprintf("INSERT INTO t1 VALUES(112, 10)\n");
Test->try_query(Test->repl->nodes[0], (char*) "INSERT INTO t1 VALUES(112, 10)");
sleep(20);
Test->tprintf("SELECT * FROM t1 WHERE fl=10, checking inserted values\n");
Test->add_result(execute_query_check_one(Test->repl->nodes[0],
(char*) "SELECT * FROM t1 WHERE fl=10",
"112"),
"failed\n");
Test->tprintf("SELECT * FROM t1 WHERE fl=10, checking inserted values from slave\n");
Test->add_result(execute_query_check_one(Test->repl->nodes[2],
(char*) "SELECT * FROM t1 WHERE fl=10",
"112"),
"failed\n");
Test->tprintf("DELETE FROM t1 WHERE fl=10\n");
Test->try_query(Test->repl->nodes[0], (char*) "DELETE FROM t1 WHERE fl=10");
Test->tprintf("Checking t1\n");
Test->add_result(select_from_t1(Test->repl->nodes[0], 4), "failed\n");
Test->tprintf("Second transaction test (with COMMIT)\n");
start_transaction(Test);
Test->tprintf("COMMIT\n");
Test->try_query(Test->repl->nodes[0], (char*) "COMMIT");
printf("SELECT, checking inserted values\n");
Test->add_result(execute_query_check_one(Test->repl->nodes[0],
(char*) "SELECT * FROM t1 WHERE fl=10",
"111"),
"failed\n");
Test->tprintf("SELECT, checking inserted values from slave\n");
Test->add_result(execute_query_check_one(Test->repl->nodes[2],
(char*) "SELECT * FROM t1 WHERE fl=10",
"111"),
"failed\n");
Test->tprintf("DELETE FROM t1 WHERE fl=10\n");
Test->try_query(Test->repl->nodes[0], (char*) "DELETE FROM t1 WHERE fl=10");
Test->add_result(check_sha1(Test), "sha1 wrong\n");
Test->repl->close_connections();
}
int rval = Test->global_result;
delete Test;
return rval;
}