]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
selftest: add a test ignored spotlight/elasticsearch mapping failures
authorRalph Boehme <slow@samba.org>
Sat, 9 Oct 2021 14:44:25 +0000 (16:44 +0200)
committerNoel Power <npower@samba.org>
Thu, 14 Oct 2021 09:33:38 +0000 (09:33 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
selftest/knownfail.d/samba.unittests.mdsparser_es_failures [new file with mode: 0644]
selftest/tests.py
source3/rpc_server/mdssvc/test_mdsparser_es.c

diff --git a/selftest/knownfail.d/samba.unittests.mdsparser_es_failures b/selftest/knownfail.d/samba.unittests.mdsparser_es_failures
new file mode 100644 (file)
index 0000000..90c3af6
--- /dev/null
@@ -0,0 +1 @@
+^samba.unittests.mdsparser_es_failures.test_mdsparser_es\(none\)$
index 128374210c407b05433e2587968054e98f3ab98a..8ff635f2777c401bdbacd49c8137252d54d7e94f 100644 (file)
@@ -435,6 +435,12 @@ plantestsuite("samba.unittests.test_oLschema2ldif", "none",
 if with_elasticsearch_backend:
     plantestsuite("samba.unittests.mdsparser_es", "none",
                   [os.path.join(bindir(), "default/source3/test_mdsparser_es")] + [configuration])
+    plantestsuite("samba.unittests.mdsparser_es_failures", "none",
+                  [os.path.join(bindir(), "default/source3/test_mdsparser_es"),
+                  " --option=elasticsearch:testmappingfailures=yes",
+                  " --option=elasticsearch:ignoreunknownattribute=yes",
+                  " --option=elasticsearch:ignoreunknowntype=yes"] +
+                  [configuration])
 plantestsuite("samba.unittests.credentials", "none",
               [os.path.join(bindir(), "default/auth/credentials/test_creds")])
 plantestsuite("samba.unittests.tsocket_bsd_addr", "none",
index b5cb86db9a730c4dc24d5995c56818743e030510..af2b8e648407b50dfc60c80155c7190915b15a11 100644 (file)
@@ -161,6 +161,40 @@ static struct {
        }
 };
 
+static struct {
+       const char *mds;
+       const char *es;
+} map_ignore_failures[] = {
+       {
+               "*==\"Samba\"||foo==\"bar\"",
+               "(Samba)" PATH_QUERY_SUBEXPR
+       }, {
+               "*==\"Samba\"&&foo==\"bar\"",
+               "(Samba)" PATH_QUERY_SUBEXPR
+       }, {
+               "*==\"Samba\"||kMDItemContentType==\"666\"",
+               "(Samba)" PATH_QUERY_SUBEXPR
+       }, {
+               "*==\"Samba\"&&kMDItemContentType==\"666\"",
+               "(Samba)" PATH_QUERY_SUBEXPR
+       }, {
+               "*==\"Samba\"||foo==\"bar\"||kMDItemContentType==\"666\"",
+               "(Samba)" PATH_QUERY_SUBEXPR
+       }, {
+               "*==\"Samba\"&&foo==\"bar\"&&kMDItemContentType==\"666\"",
+               "(Samba)" PATH_QUERY_SUBEXPR
+       }, {
+               "foo==\"bar\"||kMDItemContentType==\"666\"||*==\"Samba\"||x!=\"6\"",
+               "(Samba)" PATH_QUERY_SUBEXPR
+       }, {
+               "*==\"Samba\"||InRange(foo,1,2)",
+               "(Samba)" PATH_QUERY_SUBEXPR
+       }, {
+               "*==\"Samba\"||foo==$time.iso(2018-10-01T10:00:00Z)",
+               "(Samba)" PATH_QUERY_SUBEXPR
+       }
+};
+
 static void test_mdsparser_es(void **state)
 {
        TALLOC_CTX *frame = talloc_stackframe();
@@ -192,6 +226,26 @@ static void test_mdsparser_es(void **state)
                assert_string_equal(es_query, map[i].es);
        }
 
+       if (!lp_parm_bool(GLOBAL_SECTION_SNUM,
+                         "elasticsearch",
+                         "test mapping failures",
+                         false))
+       {
+               goto done;
+       }
+
+       for (i = 0; i < ARRAY_SIZE(map_ignore_failures); i++) {
+               DBG_DEBUG("Mapping: %s\n", map_ignore_failures[i].mds);
+               ok = map_spotlight_to_es_query(frame,
+                                              mappings,
+                                              path_scope,
+                                              map_ignore_failures[i].mds,
+                                              &es_query);
+               assert_true(ok);
+               assert_string_equal(es_query, map_ignore_failures[i].es);
+       }
+
+done:
        json_decref(mappings);
        TALLOC_FREE(frame);
 }