36 lines
		
	
	
		
			969 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			969 B
		
	
	
	
		
			C++
		
	
	
	
	
	
/**
 | 
						|
 * MXS-1111: Dbfwfilter COM_PING test
 | 
						|
 *
 | 
						|
 * Check that COM_PING is allowed with `action=allow`
 | 
						|
 */
 | 
						|
 | 
						|
#include <maxtest/testconnections.hh>
 | 
						|
#include <maxtest/fw_copy_rules.hh>
 | 
						|
 | 
						|
#include <fstream>
 | 
						|
 | 
						|
auto rules =
 | 
						|
    R"(
 | 
						|
rule dont_mess_with_system_tables match regex 'mysql.*' on_queries drop|alter|create|use|load
 | 
						|
users %@% match any rules dont_mess_with_system_tables
 | 
						|
)";
 | 
						|
 | 
						|
int main(int argc, char** argv)
 | 
						|
{
 | 
						|
    std::ofstream file("rules.txt");
 | 
						|
    file << rules;
 | 
						|
    file.close();
 | 
						|
 | 
						|
    TestConnections::skip_maxscale_start(true);
 | 
						|
    TestConnections test(argc, argv);
 | 
						|
    copy_rules(&test, (char*) "rules.txt", (char*) ".");
 | 
						|
    test.maxscales->start();
 | 
						|
 | 
						|
    auto conn = test.maxscales->rwsplit();
 | 
						|
    test.expect(conn.connect(), "Connect failed: %s", conn.error());
 | 
						|
    test.expect(conn.query("SELECT 1; SELECT 2; SELECT 3;"), "Query failed: %s", conn.error());
 | 
						|
    test.expect(!conn.query("DROP DATABASE mysql"), "DROP succeeded");
 | 
						|
 | 
						|
    return test.global_result;
 | 
						|
}
 |