Code

Allow and implement iterating arbitrary (non-constant) array values.
[sysdb.git] / t / unit / parser / parser_test.c
index 62a7e9047a70ea4541ad5f6e8fab487846267930..8da4ef0cc722a639e178d9714c89fa0ee16b0395 100644 (file)
@@ -157,6 +157,8 @@ struct {
          "host.name = 'p'",         -1,   1, SDB_AST_TYPE_LOOKUP, SDB_SERVICE },
        { "LOOKUP services MATCHING "
          "service.name = 'p'",      -1,   1, SDB_AST_TYPE_LOOKUP, SDB_SERVICE },
+       { "LOOKUP services MATCHING ANY "
+         "host.backend =~ 'b'",     -1,   1, SDB_AST_TYPE_LOOKUP, SDB_SERVICE },
        { "LOOKUP metrics",          -1,   1, SDB_AST_TYPE_LOOKUP, SDB_METRIC },
        { "LOOKUP metrics MATCHING ANY "
          "attribute.name =~ 'a'",   -1,   1, SDB_AST_TYPE_LOOKUP, SDB_METRIC },
@@ -164,6 +166,8 @@ struct {
          "host.name = 'p'",         -1,   1, SDB_AST_TYPE_LOOKUP, SDB_METRIC },
        { "LOOKUP metrics MATCHING "
          "metric.name = 'p'",       -1,   1, SDB_AST_TYPE_LOOKUP, SDB_METRIC },
+       { "LOOKUP metrics MATCHING ANY "
+         "host.service.name = 'p'", -1,   1, SDB_AST_TYPE_LOOKUP, SDB_METRIC },
 
        /* TIMESERIES commands */
        { "TIMESERIES 'host'.'metric' "
@@ -335,6 +339,9 @@ struct {
          "ALL backend =~ 'b'", -1,   1, SDB_AST_TYPE_LOOKUP, SDB_HOST },
        { "LOOKUP hosts MATCHING "
          "ALL backend !~ 'b'", -1,   1, SDB_AST_TYPE_LOOKUP, SDB_HOST },
+       { "LOOKUP hosts MATCHING "
+         "ANY backend || 'a' = 'b'",
+                               -1,   1, SDB_AST_TYPE_LOOKUP, SDB_HOST },
        /* attribute type is unknown */
        { "LOOKUP hosts MATCHING "
          "ANY backend = attribute['backend']",
@@ -575,10 +582,14 @@ struct {
          "ALL 1 || '2' < '3'", -1,  -1, 0, 0 },
        { "LOOKUP hosts MATCHING "
          "ALL name =~ 'a'",    -1,  -1, 0, 0 },
-       /* this could work in theory but is not supported atm */
-       { "LOOKUP hosts MATCHING "
-         "ANY backend || 'a' = 'b'",
-                               -1,  -1, 0, 0 },
+       { "LOOKUP hosts MATCHING ANY "
+         "host.name = 'h'",    -1, -1, 0, 0 },
+       { "LOOKUP services MATCHING ANY "
+         "host.name = 'h'",    -1, -1, 0, 0 },
+       { "LOOKUP metrics MATCHING ANY "
+         "host.name = 'h'",    -1, -1, 0, 0 },
+       { "LOOKUP hosts MATCHING ANY "
+         "name || 'a' = 'b'",  -1, -1, 0, 0 },
 
        /* invalid LIST commands */
        { "LIST",                -1, -1, 0, 0 },