diff options
author | Geir Storli <geirst@verizonmedia.com> | 2019-05-21 14:19:30 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2019-05-21 14:24:05 +0000 |
commit | 5680dcdce81febbbafcab483080048eab520a083 (patch) | |
tree | 24591942d340dc8a700dfab167490207ad794fda /searchcore/src/tests/proton/matching/handle_recorder | |
parent | e3d08bf6f8ee38c1242d87f09d97323c7e07dfdd (diff) |
Make it possible for rank features to request which match data that should be available in a TermFieldMatchData instance.
Diffstat (limited to 'searchcore/src/tests/proton/matching/handle_recorder')
-rw-r--r-- | searchcore/src/tests/proton/matching/handle_recorder/CMakeLists.txt | 10 | ||||
-rw-r--r-- | searchcore/src/tests/proton/matching/handle_recorder/handle_recorder_test.cpp | 54 |
2 files changed, 64 insertions, 0 deletions
diff --git a/searchcore/src/tests/proton/matching/handle_recorder/CMakeLists.txt b/searchcore/src/tests/proton/matching/handle_recorder/CMakeLists.txt new file mode 100644 index 00000000000..a56d22ab154 --- /dev/null +++ b/searchcore/src/tests/proton/matching/handle_recorder/CMakeLists.txt @@ -0,0 +1,10 @@ +# Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +vespa_add_executable(searchcore_matching_handle_recorder_test_app TEST + SOURCES + handle_recorder_test.cpp + DEPENDS + searchcore_matching + gtest +) +vespa_add_test(NAME searchcore_matching_handle_recorder_test_app COMMAND searchcore_matching_handle_recorder_test_app) diff --git a/searchcore/src/tests/proton/matching/handle_recorder/handle_recorder_test.cpp b/searchcore/src/tests/proton/matching/handle_recorder/handle_recorder_test.cpp new file mode 100644 index 00000000000..60caffd82d6 --- /dev/null +++ b/searchcore/src/tests/proton/matching/handle_recorder/handle_recorder_test.cpp @@ -0,0 +1,54 @@ +// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#include <vespa/searchcore/proton/matching/handlerecorder.h> +#include <vespa/vespalib/gtest/gtest.h> + +#include <vespa/log/log.h> + +LOG_SETUP("handle_recorder_test"); + +using search::fef::MatchDataDetails; +using search::fef::TermFieldHandle; +using namespace proton::matching; + +using HandleSet = HandleRecorder::HandleSet; + +void +register_normal_handle(TermFieldHandle handle) +{ + HandleRecorder::register_handle(handle, MatchDataDetails::Normal); +} + +void +register_cheap_handle(TermFieldHandle handle) +{ + HandleRecorder::register_handle(handle, MatchDataDetails::Cheap); +} + +TEST(HandleRecorderTest, can_record_both_normal_and_cheap_handles) +{ + HandleRecorder recorder; + { + HandleRecorder::Binder binder(recorder); + register_normal_handle(3); + register_cheap_handle(5); + register_normal_handle(7); + } + EXPECT_EQ(HandleSet({3, 7}), recorder.get_normal_handles()); + EXPECT_EQ(HandleSet({5}), recorder.get_cheap_handles()); + EXPECT_EQ("normal: [3,7], cheap: [5]", recorder.to_string()); +} + +TEST(HandleRecorderTest, the_same_handle_can_be_in_both_normal_and_cheap_set) +{ + HandleRecorder recorder; + { + HandleRecorder::Binder binder(recorder); + register_normal_handle(3); + register_cheap_handle(3); + } + EXPECT_EQ(HandleSet({3}), recorder.get_normal_handles()); + EXPECT_EQ(HandleSet({3}), recorder.get_cheap_handles()); +} + +GTEST_MAIN_RUN_ALL_TESTS() |