 74ec1e7400
			
		
	
	74ec1e7400
	
	
	
		
			
			If a test requires Galera but it is not available, it is now skipped. All tests that explicitly use the `test.galera` member as well as all tests that use a Galera configuration now require that Galera is present.
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /**
 | |
|  * @file mxs244_prepared_stmt_loop.cpp mxs244_prepared_stmt_loop executed following statements in the loop
 | |
|  * against all maxscales->routers[0]:
 | |
|  * @verbatim
 | |
|  *  SET NAMES "UTF8";
 | |
|  *  PREPARE s1 FROM 'SHOW GLOBAL STATUS WHERE variable_name = ?';
 | |
|  *  SET @a = "Com_stmt_prepare";
 | |
|  *  EXECUTE s1 USING @a;
 | |
|  *  PREPARE s1 FROM 'SHOW GLOBAL STATUS WHERE variable_name = ?';
 | |
|  *  SET @a = "Com_stmt_close";
 | |
|  *  EXECUTE s1 USING @a;
 | |
|  *  @endverbatim
 | |
|  */
 | |
| 
 | |
| #include <iostream>
 | |
| #include "testconnections.h"
 | |
| 
 | |
| int main(int argc, char* argv[])
 | |
| {
 | |
|     TestConnections::require_galera(true);
 | |
|     TestConnections* Test = new TestConnections(argc, argv);
 | |
|     long unsigned iterations = (Test->smoke) ? 1000 : 25000;
 | |
|     int r = (Test->smoke) ? 1 : 3;
 | |
| 
 | |
|     Test->set_timeout(5);
 | |
|     Test->repl->connect();
 | |
|     Test->maxscales->connect_maxscale(0);
 | |
|     MYSQL* router[3];
 | |
|     router[0] = Test->maxscales->conn_rwsplit[0];
 | |
|     router[1] = Test->maxscales->conn_master[0];
 | |
|     router[2] = Test->maxscales->conn_slave[0];
 | |
| 
 | |
|     for (int ir = 0; ir < r; ir++)
 | |
|     {
 | |
|         Test->tprintf("Trying simple prepared statements in the loop, router %d\n", ir);
 | |
|         for (long unsigned i = 0; i < iterations; i++)
 | |
|         {
 | |
|             Test->set_timeout(10);
 | |
|             Test->try_query(router[ir], (char*) "SET NAMES \"UTF8\"");
 | |
|             Test->try_query(router[ir],
 | |
|                             (char*) "PREPARE s1 FROM 'SHOW GLOBAL STATUS WHERE variable_name = ?'");
 | |
|             Test->try_query(router[ir], (char*) "SET @a = \"Com_stmt_prepare\"");
 | |
|             Test->try_query(router[ir], (char*) "EXECUTE s1 USING @a");
 | |
|             Test->try_query(router[ir],
 | |
|                             (char*) "PREPARE s1 FROM 'SHOW GLOBAL STATUS WHERE variable_name = ?'");
 | |
|             Test->try_query(router[ir], (char*) "SET @a = \"Com_stmt_close\"");
 | |
|             Test->try_query(router[ir], (char*) "EXECUTE s1 USING @a");
 | |
|             if ((( i / 100) * 100) == i)
 | |
|             {
 | |
|                 Test->tprintf("Iterations = %lu\n", i);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     Test->set_timeout(20);
 | |
| 
 | |
|     Test->maxscales->close_maxscale_connections(0);
 | |
|     Test->check_maxscale_alive(0);
 | |
| 
 | |
|     int rval = Test->global_result;
 | |
|     delete Test;
 | |
|     return rval;
 | |
| }
 |