diff options
author | Geir Storli <geirst@vespa.ai> | 2024-03-25 17:42:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-25 17:42:23 +0100 |
commit | 7a6ec3cd9c7e575d8134f21b8c6ee02f0bd40ad3 (patch) | |
tree | fd9a89750b011bb5f33da57dfeefd30f00b06a02 /searchlib/src/tests | |
parent | cfc8ecf6bb750039cd03b166ad82d505663cafbb (diff) | |
parent | 78edc04eb66fb4335f28d55e48a08beecd0ee56e (diff) |
Merge pull request #30731 from vespa-engine/havardpe/thread-local-blueprint-optionsv8.324.16
use thread_local for blueprint options
Diffstat (limited to 'searchlib/src/tests')
3 files changed, 27 insertions, 3 deletions
diff --git a/searchlib/src/tests/queryeval/blueprint/blueprint_test.cpp b/searchlib/src/tests/queryeval/blueprint/blueprint_test.cpp index 266dc6f8652..d556d997206 100644 --- a/searchlib/src/tests/queryeval/blueprint/blueprint_test.cpp +++ b/searchlib/src/tests/queryeval/blueprint/blueprint_test.cpp @@ -794,6 +794,30 @@ TEST("Control object sizes") { EXPECT_EQUAL(88u, sizeof(LeafBlueprint)); } +Blueprint::Options make_opts(bool sort_by_cost, bool allow_force_strict, bool keep_order) { + return Blueprint::Options().sort_by_cost(sort_by_cost).allow_force_strict(allow_force_strict).keep_order(keep_order); +} + +void check_opts(bool sort_by_cost, bool allow_force_strict, bool keep_order) { + EXPECT_EQUAL(Blueprint::opt_sort_by_cost(), sort_by_cost); + EXPECT_EQUAL(Blueprint::opt_allow_force_strict(), allow_force_strict); + EXPECT_EQUAL(Blueprint::opt_keep_order(), keep_order); +} + +TEST("Options binding and nesting") { + check_opts(false, false, false); + { + auto opts_guard1 = Blueprint::bind_opts(make_opts(true, true, false)); + check_opts(true, true, false); + { + auto opts_guard2 = Blueprint::bind_opts(make_opts(false, false, true)); + check_opts(false, false, true); + } + check_opts(true, true, false); + } + check_opts(false, false, false); +} + TEST_MAIN() { TEST_DEBUG("lhs.out", "rhs.out"); TEST_RUN_ALL(); diff --git a/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp b/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp index 9338436348b..d3b6a90e5db 100644 --- a/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp +++ b/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp @@ -579,7 +579,7 @@ optimize_and_compare(Blueprint::UP top, Blueprint::UP expect, bool strict = true top->setDocIdLimit(1000); expect->setDocIdLimit(1000); TEST_DO(compare(*top, *expect, false)); - auto opts = Blueprint::Options::default_options().sort_by_cost(sort_by_cost); + auto opts = Blueprint::Options().sort_by_cost(sort_by_cost); top = Blueprint::optimize_and_sort(std::move(top), strict, opts); TEST_DO(compare(*top, *expect, true)); expect = Blueprint::optimize_and_sort(std::move(expect), strict, opts); diff --git a/searchlib/src/tests/queryeval/filter_search/filter_search_test.cpp b/searchlib/src/tests/queryeval/filter_search/filter_search_test.cpp index 5c29c293d82..d40248336cb 100644 --- a/searchlib/src/tests/queryeval/filter_search/filter_search_test.cpp +++ b/searchlib/src/tests/queryeval/filter_search/filter_search_test.cpp @@ -65,9 +65,9 @@ struct LeafProxy : SimpleLeafBlueprint { FlowStats calculate_flow_stats(uint32_t my_docid_limit) const override { return child->calculate_flow_stats(my_docid_limit); } - void sort(InFlow in_flow, const Options &opts) override { + void sort(InFlow in_flow) override { strict(in_flow.strict()); - child->sort(in_flow, opts); + child->sort(in_flow); } SearchIteratorUP createLeafSearch(const TermFieldMatchDataArray &) const override { abort(); } SearchIteratorUP createFilterSearch(Constraint constraint) const override { |