diff options
Diffstat (limited to 'searchlib/src/tests/queryeval/global_filter/global_filter_test.cpp')
-rw-r--r-- | searchlib/src/tests/queryeval/global_filter/global_filter_test.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/searchlib/src/tests/queryeval/global_filter/global_filter_test.cpp b/searchlib/src/tests/queryeval/global_filter/global_filter_test.cpp index a18fe010ad0..dcf175a6fdd 100644 --- a/searchlib/src/tests/queryeval/global_filter/global_filter_test.cpp +++ b/searchlib/src/tests/queryeval/global_filter/global_filter_test.cpp @@ -2,6 +2,7 @@ #include <vespa/vespalib/gtest/gtest.h> #include <vespa/vespalib/util/require.h> +#include <vespa/vespalib/util/classname.h> #include <vespa/vespalib/util/simple_thread_bundle.h> #include <vespa/searchlib/common/bitvector.h> #include <vespa/searchlib/queryeval/global_filter.h> @@ -199,4 +200,21 @@ TEST(GlobalFilterTest, multi_threaded_global_filter_works_with_docid_limit_0) { verify(*filter, 2, 1); } +TEST(GlobalFilterTest, global_filter_matching_any_document_becomes_invalid) { + SimpleThreadBundle thread_bundle(7); + AlwaysTrueBlueprint blueprint; + auto filter = GlobalFilter::create(blueprint, 100, thread_bundle); + EXPECT_FALSE(filter->is_active()); +} + +TEST(GlobalFilterTest, global_filter_not_matching_any_document_becomes_empty) { + SimpleThreadBundle thread_bundle(7); + EmptyBlueprint blueprint; + auto filter = GlobalFilter::create(blueprint, 100, thread_bundle); + auto class_name = vespalib::getClassName(*filter); + fprintf(stderr, "empty global filter class name: %s\n", class_name.c_str()); + EXPECT_TRUE(class_name.find("EmptyFilter") < class_name.size()); + verify(*filter, 1000, 100); +} + GTEST_MAIN_RUN_ALL_TESTS() |