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.
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/**
 | 
						|
 * @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->maxscales->connect_maxscale(0), "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->maxscales->conn_rwsplit[0], (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->maxscales->conn_slave[0], (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->maxscales->conn_master[0], (char*) "show status"),
 | 
						|
                         "Query %d agains ReadConn Master failed\n",
 | 
						|
                         i);
 | 
						|
    }
 | 
						|
    Test->set_timeout(10);
 | 
						|
 | 
						|
    Test->maxscales->close_maxscale_connections(0);
 | 
						|
    Test->check_maxscale_alive(0);
 | 
						|
    int rval = Test->global_result;
 | 
						|
    delete Test;
 | 
						|
    return rval;
 | 
						|
}
 |