MXS-1296: Test that lc statements are parsed correctly
The transaction boundary parser - TrxBoundaryParser - must handle upper and lowercase statements correctly.
This commit is contained in:
@ -12,6 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <maxscale/cppdefs.hh>
|
#include <maxscale/cppdefs.hh>
|
||||||
|
#include <algorithm>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <maxscale/modutil.h>
|
#include <maxscale/modutil.h>
|
||||||
#include <maxscale/paths.h>
|
#include <maxscale/paths.h>
|
||||||
@ -69,6 +70,7 @@ struct test_case
|
|||||||
uint32_t type_mask;
|
uint32_t type_mask;
|
||||||
} test_cases[] =
|
} test_cases[] =
|
||||||
{
|
{
|
||||||
|
// Keep these all uppercase, lowercase are tested programmatically.
|
||||||
{ "BEGIN", QUERY_TYPE_BEGIN_TRX },
|
{ "BEGIN", QUERY_TYPE_BEGIN_TRX },
|
||||||
{ "BEGIN WORK", QUERY_TYPE_BEGIN_TRX },
|
{ "BEGIN WORK", QUERY_TYPE_BEGIN_TRX },
|
||||||
|
|
||||||
@ -299,14 +301,23 @@ bool test(uint32_t (*getter)(GWBUF*), bool dont_bail_out)
|
|||||||
string base(pTest->zStmt);
|
string base(pTest->zStmt);
|
||||||
cout << base << endl;
|
cout << base << endl;
|
||||||
|
|
||||||
string s;
|
if (!test(getter, base.c_str(), pTest->type_mask))
|
||||||
|
|
||||||
s = base;
|
|
||||||
if (!test(getter, s.c_str(), pTest->type_mask))
|
|
||||||
{
|
{
|
||||||
rc = false;
|
rc = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dont_bail_out || rc)
|
||||||
|
{
|
||||||
|
// Test all lowercase.
|
||||||
|
string lc(base);
|
||||||
|
transform(lc.begin(), lc.end(), lc.begin(), ::tolower);
|
||||||
|
|
||||||
|
if (!test(getter, lc.c_str(), pTest->type_mask))
|
||||||
|
{
|
||||||
|
rc = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (dont_bail_out || rc)
|
if (dont_bail_out || rc)
|
||||||
{
|
{
|
||||||
if (!test_with_prefixes(getter, base, pTest->type_mask))
|
if (!test_with_prefixes(getter, base, pTest->type_mask))
|
||||||
|
|||||||
Reference in New Issue
Block a user