diff options
author | Henning Baldersheim <balder@oath.com> | 2018-08-24 19:52:07 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@oath.com> | 2018-08-27 09:22:14 +0200 |
commit | f19fa359f112f0009a4a39e9e8358a5458ca4fb2 (patch) | |
tree | a48dc619eadb646480ee1cabca0d596e9b795f09 /searchcore/src/tests/grouping | |
parent | be6729d2eadb3abe61613acb82c59a137ccf12a0 (diff) |
Wire in the attribute execution via the IAttributeContext.
Also execution in a task for containment.
Diffstat (limited to 'searchcore/src/tests/grouping')
-rw-r--r-- | searchcore/src/tests/grouping/CMakeLists.txt | 1 | ||||
-rw-r--r-- | searchcore/src/tests/grouping/grouping.cpp | 52 |
2 files changed, 4 insertions, 49 deletions
diff --git a/searchcore/src/tests/grouping/CMakeLists.txt b/searchcore/src/tests/grouping/CMakeLists.txt index 8108028c717..781f0cab66f 100644 --- a/searchcore/src/tests/grouping/CMakeLists.txt +++ b/searchcore/src/tests/grouping/CMakeLists.txt @@ -5,5 +5,6 @@ vespa_add_executable(searchcore_grouping_test_app TEST DEPENDS searchcore_grouping searchcore_matching + searchlib_test ) vespa_add_test(NAME searchcore_grouping_test_app COMMAND searchcore_grouping_test_app) diff --git a/searchcore/src/tests/grouping/grouping.cpp b/searchcore/src/tests/grouping/grouping.cpp index 7e21fffe9fd..3f166ee9723 100644 --- a/searchcore/src/tests/grouping/grouping.cpp +++ b/searchcore/src/tests/grouping/grouping.cpp @@ -10,6 +10,7 @@ #include <vespa/searchcore/grouping/groupingmanager.h> #include <vespa/searchcore/grouping/groupingsession.h> #include <vespa/searchcore/proton/matching/sessionmanager.h> +#include <vespa/searchlib/test/mock_attribute_context.h> #include <iostream> #include <vespa/log/log.h> @@ -20,7 +21,7 @@ using namespace search::aggregation; using namespace search::expression; using namespace search::grouping; using namespace search; - +using search::attribute::test::MockAttributeContext; using proton::matching::SessionManager; @@ -30,55 +31,8 @@ const uint32_t NUM_DOCS = 1000; //----------------------------------------------------------------------------- -class MyAttributeContext : public IAttributeContext -{ -private: - typedef std::map<string, IAttributeVector *> Map; - Map _vectors; - -public: - const IAttributeVector *get(const string &name) const { - if (_vectors.find(name) == _vectors.end()) { - return 0; - } - return _vectors.find(name)->second; - } - virtual const IAttributeVector * - getAttribute(const string &name) const override { - return get(name); - } - virtual const IAttributeVector * - getAttributeStableEnum(const string &name) const override { - return get(name); - } - virtual void - getAttributeList(std::vector<const IAttributeVector *> & list) const override { - Map::const_iterator pos = _vectors.begin(); - Map::const_iterator end = _vectors.end(); - for (; pos != end; ++pos) { - list.push_back(pos->second); - } - } - ~MyAttributeContext() { - Map::iterator pos = _vectors.begin(); - Map::iterator end = _vectors.end(); - for (; pos != end; ++pos) { - delete pos->second; - } - } - - //------------------------------------------------------------------------- - - void add(IAttributeVector *attr) { - _vectors[attr->getName()] = attr; - } -}; - - -//----------------------------------------------------------------------------- - struct MyWorld { - MyAttributeContext attributeContext; + MockAttributeContext attributeContext; void basicSetup() { // attribute context |