add tests
This commit is contained in:

committed by
Markus Mäkelä

parent
dbfd631fed
commit
8c6ca38a8a
122
maxscale-system-test/bug422.cpp
Normal file
122
maxscale-system-test/bug422.cpp
Normal file
@ -0,0 +1,122 @@
|
||||
/**
|
||||
* @file bug422.cpp bug422 regression case ( Executing '\s' doesn't always produce complete result set)
|
||||
*
|
||||
* Test executes "show status" 1000 times against all Maxscale services and checks Maxscale is alive after it.
|
||||
*/
|
||||
|
||||
/*
|
||||
Vilho Raatikka 2014-04-15 07:03:03 UTC
|
||||
Read/write split router
|
||||
-------------------------
|
||||
|
||||
Login to MaxScale & read/write split router, for example
|
||||
|
||||
mysql --host=127.0.0.1 -P 4006 -u maxuser -pmaxpwd
|
||||
|
||||
Complete result :
|
||||
|
||||
MySQL [(none)]> \s
|
||||
--------------
|
||||
mysql Ver 15.1 Distrib 5.5.33-MariaDB, for Linux (x86_64) using readline 5.1
|
||||
|
||||
Connection id: 4051
|
||||
Current database:
|
||||
Current user: maxuser@localhost
|
||||
SSL: Not in use
|
||||
Current pager: less
|
||||
Using outfile: ''
|
||||
Using delimiter: ;
|
||||
Server: MySQL
|
||||
Server version: MaxScale 0.5.0 Source distribution
|
||||
Protocol version: 10
|
||||
Connection: 127.0.0.1 via TCP/IP
|
||||
Server characterset: latin1
|
||||
Db characterset: latin1
|
||||
Client characterset: latin1
|
||||
Conn. characterset: latin1
|
||||
TCP port: 4006
|
||||
Uptime: 34 min 23 sec
|
||||
|
||||
Threads: 5 Questions: 206 Slow queries: 0 Opens: 0 Flush tables: 2 Open tables: 26 Queries per second avg: 0.099
|
||||
--------------
|
||||
|
||||
|
||||
By running same a few time in a row, an incomplete result set arrives, like the following:
|
||||
|
||||
MySQL [(none)]> \s
|
||||
--------------
|
||||
mysql Ver 15.1 Distrib 5.5.33-MariaDB, for Linux (x86_64) using readline 5.1
|
||||
|
||||
Connection id: 4051
|
||||
Current database:
|
||||
Current user: maxuser@localhost
|
||||
SSL: Not in use
|
||||
Current pager: less
|
||||
Using outfile: ''
|
||||
Using delimiter: ;
|
||||
Server: MySQL
|
||||
Server version: MaxScale 0.5.0 Source distribution
|
||||
Protocol version: 10
|
||||
Connection: 127.0.0.1 via TCP/IP
|
||||
Server characterset: latin1
|
||||
Db characterset: latin1
|
||||
Client characterset: latin1
|
||||
Conn. characterset: latin1
|
||||
TCP port: 4006
|
||||
--------------
|
||||
|
||||
MySQL [(none)]>
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include <iostream>
|
||||
#include <unistd.h>
|
||||
#include "testconnections.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
TestConnections * Test = new TestConnections(argc, argv);
|
||||
int i;
|
||||
int iterations = 1000;
|
||||
if (Test->smoke)
|
||||
{
|
||||
iterations = 100;
|
||||
}
|
||||
|
||||
Test->set_timeout(10);
|
||||
|
||||
Test->tprintf("Connecting to all MaxScale services\n");
|
||||
Test->add_result(Test->connect_maxscale(), "Can not connect to Maxscale\n");
|
||||
|
||||
Test->tprintf("executing show status %d times\n", iterations);
|
||||
|
||||
|
||||
for (i = 0; i < iterations; i++)
|
||||
{
|
||||
Test->set_timeout(5);
|
||||
Test->add_result(execute_query(Test->conn_rwsplit, (char *) "show status"),
|
||||
"Query %d agains RWSplit failed\n", i);
|
||||
}
|
||||
for (i = 0; i < iterations; i++)
|
||||
{
|
||||
Test->set_timeout(5);
|
||||
Test->add_result(execute_query(Test->conn_slave, (char *) "show status"),
|
||||
"Query %d agains ReadConn Slave failed\n", i);
|
||||
}
|
||||
for (i = 0; i < iterations; i++)
|
||||
{
|
||||
Test->set_timeout(5);
|
||||
Test->add_result(execute_query(Test->conn_master, (char *) "show status"),
|
||||
"Query %d agains ReadConn Master failed\n", i);
|
||||
}
|
||||
Test->set_timeout(10);
|
||||
|
||||
Test->close_maxscale_connections();
|
||||
Test->check_maxscale_alive();
|
||||
int rval = Test->global_result;
|
||||
delete Test;
|
||||
return rval;
|
||||
}
|
Reference in New Issue
Block a user