X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=t%2Funit%2Ffrontend%2Fparser_test.c;h=4926f7662271cf21459bd886631b93cf64ddbdf5;hp=43d10ddd0048b9c4663213bf11db84c4957d915d;hb=4800fc6648d30ecbe2586114545a041ecdf540af;hpb=722e33e4e698c1fa4d93d3f34e9460162aa21d49 diff --git a/t/unit/frontend/parser_test.c b/t/unit/frontend/parser_test.c index 43d10dd..4926f76 100644 --- a/t/unit/frontend/parser_test.c +++ b/t/unit/frontend/parser_test.c @@ -250,6 +250,24 @@ START_TEST(test_parse) { "LOOKUP hosts MATCHING " "backend = ['a','b']", -1, 1, SDB_CONNECTION_LOOKUP }, + /* valid operand types */ + { "LOOKUP hosts MATCHING " + "age * 1 > 0s", -1, 1, SDB_CONNECTION_LOOKUP }, + { "LOOKUP hosts MATCHING " + "age / 1 > 0s", -1, 1, SDB_CONNECTION_LOOKUP }, + { "LOOKUP hosts MATCHING " + "name > ''", -1, 1, SDB_CONNECTION_LOOKUP }, + { "LOOKUP hosts MATCHING " + "name >= ''", -1, 1, SDB_CONNECTION_LOOKUP }, + { "LOOKUP hosts MATCHING " + "name != ''", -1, 1, SDB_CONNECTION_LOOKUP }, + { "LOOKUP hosts MATCHING " + "name = ''", -1, 1, SDB_CONNECTION_LOOKUP }, + { "LOOKUP hosts MATCHING " + "name <= ''", -1, 1, SDB_CONNECTION_LOOKUP }, + { "LOOKUP hosts MATCHING " + "name < ''", -1, 1, SDB_CONNECTION_LOOKUP }, + /* NULL */ { "LOOKUP hosts MATCHING " "attribute['foo'] " @@ -290,6 +308,37 @@ START_TEST(test_parse) { "LOOKUP hosts MATCHING " "attr['foo'] IS NULL", -1, -1, 0 }, + /* type mismatches */ + { "LOOKUP hosts MATCHING " + "age > 0", -1, -1, 0 }, + { "LOOKUP hosts MATCHING " + "age >= 0", -1, -1, 0 }, + { "LOOKUP hosts MATCHING " + "age = 0", -1, -1, 0 }, + { "LOOKUP hosts MATCHING " + "age != 0", -1, -1, 0 }, + { "LOOKUP hosts MATCHING " + "age <= 0", -1, -1, 0 }, + { "LOOKUP hosts MATCHING " + "age < 0", -1, -1, 0 }, + { "LOOKUP hosts MATCHING " + "age + 1 > 0s", -1, -1, 0 }, + { "LOOKUP hosts MATCHING " + "age - 1 > 0s", -1, -1, 0 }, + /* datetime integer is allowed */ + { "LOOKUP hosts MATCHING " + "age || 1 > 0s", -1, -1, 0 }, + { "LOOKUP hosts MATCHING " + "name + 1 = ''", -1, -1, 0 }, + { "LOOKUP hosts MATCHING " + "name - 1 = ''", -1, -1, 0 }, + { "LOOKUP hosts MATCHING " + "name * 1 = ''", -1, -1, 0 }, + { "LOOKUP hosts MATCHING " + "name / 1 = ''", -1, -1, 0 }, + { "LOOKUP hosts MATCHING " + "name % 1 = ''", -1, -1, 0 }, + /* comments */ { "/* some comment */", -1, 0, 0 }, { "-- another comment", -1, 0, 0 },