
The latter are more explicit and easier to understand at the call site. Also removed the redundant crash checks via the log files.
58 lines
2.0 KiB
C++
58 lines
2.0 KiB
C++
/**
|
|
* @file bug475.cpp regression case for bug 475 (The end comment tag in hints isn't properly detected)
|
|
*
|
|
* Test tries different hints with comments syntax and then checks log and checks if MaxScale is alive
|
|
*/
|
|
|
|
//
|
|
// Markus Mäkelä 2014-08-08 10:09:48 UTC
|
|
// The closing tag isn't properly detected when using inline comments.
|
|
// Multiple commands cause this behaviour. The following commands cause these messages in the error log:
|
|
|
|
// select /* maxscale hintname prepare route to master */ @@server_id;
|
|
// 2014 08/08 13:01:09 Error : Syntax error in hint. Expected 'master', 'slave', or 'server' instead of
|
|
// '*/'. Hint ignored.
|
|
|
|
// select /* maxscale hintname begin */ @@server_id;
|
|
// 2014 08/08 13:02:45 Error : Syntax error in hint. Expected '=', 'prepare', or 'start' instead of
|
|
// '@@server_id'. Hint ignored.
|
|
|
|
// The following only happens when no whitespace is used after 'master' and '*/':
|
|
// select /* maxscale route to master*/ @@server_id;
|
|
// 2014 08/08 13:04:38 Error : Syntax error in hint. Expected 'master', 'slave', or 'server' instead of
|
|
// 'master*/'. Hint ignored.
|
|
|
|
// All other forms of '/* maxscale route to [slave|server <server name>]*/' work even without the whitespace
|
|
// before the closing tag.
|
|
|
|
|
|
|
|
|
|
#include <iostream>
|
|
#include <unistd.h>
|
|
#include "testconnections.h"
|
|
|
|
using namespace std;
|
|
|
|
int main(int argc, char* argv[])
|
|
{
|
|
|
|
TestConnections* Test = new TestConnections(argc, argv);
|
|
Test->set_timeout(10);
|
|
|
|
Test->maxscales->connect_maxscale(0);
|
|
|
|
Test->try_query(Test->maxscales->conn_rwsplit[0],
|
|
(char*) "select /* maxscale hintname prepare route to master */ @@server_id;");
|
|
Test->try_query(Test->maxscales->conn_rwsplit[0],
|
|
(char*) "select /* maxscale hintname begin */ @@server_id;");
|
|
Test->try_query(Test->maxscales->conn_rwsplit[0],
|
|
(char*) "select /* maxscale route to master*/ @@server_id;");
|
|
|
|
Test->log_excludes(0, "Syntax error in hint");
|
|
Test->check_maxscale_alive(0);
|
|
int rval = Test->global_result;
|
|
delete Test;
|
|
return rval;
|
|
}
|