diff options
author | Geir Storli <geirst@yahooinc.com> | 2023-04-27 08:36:14 +0000 |
---|---|---|
committer | Geir Storli <geirst@yahooinc.com> | 2023-04-27 08:36:14 +0000 |
commit | 029151cc58b49200cfb86189c5caac9ad0e9984d (patch) | |
tree | f7b549d2ed8f6450f113656e24bb6afee7e464db /streamingvisitors | |
parent | 58daaccf83103d8b082c8ca724dc5c78f5d84392 (diff) |
Rewrite searchvisitor test to GTest.
Diffstat (limited to 'streamingvisitors')
4 files changed, 28 insertions, 36 deletions
diff --git a/streamingvisitors/src/tests/searchvisitor/CMakeLists.txt b/streamingvisitors/src/tests/searchvisitor/CMakeLists.txt index 01b625b6b3b..645513c33bc 100644 --- a/streamingvisitors/src/tests/searchvisitor/CMakeLists.txt +++ b/streamingvisitors/src/tests/searchvisitor/CMakeLists.txt @@ -4,5 +4,6 @@ vespa_add_executable(streamingvisitors_searchvisitor_test_app TEST searchvisitor_test.cpp DEPENDS streamingvisitors + GTest::GTest ) vespa_add_test(NAME streamingvisitors_searchvisitor_test_app COMMAND streamingvisitors_searchvisitor_test_app) diff --git a/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp b/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp index 249a6f056f0..5521994e60e 100644 --- a/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp +++ b/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp @@ -2,7 +2,7 @@ #include <vespa/document/base/testdocrepo.h> #include <vespa/document/repo/documenttyperepo.h> -#include <vespa/vespalib/testkit/testapp.h> +#include <vespa/persistence/spi/docentry.h> #include <vespa/searchlib/query/tree/querybuilder.h> #include <vespa/searchlib/query/tree/simplequery.h> #include <vespa/searchlib/query/tree/stackdumpcreator.h> @@ -10,8 +10,7 @@ #include <vespa/searchvisitor/searchvisitor.h> #include <vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.h> #include <vespa/storageframework/defaultimplementation/clock/fakeclock.h> -#include <vespa/persistence/spi/docentry.h> - +#include <vespa/vespalib/gtest/gtest.h> #include <vespa/log/log.h> LOG_SETUP("searchvisitor_test"); @@ -23,37 +22,34 @@ using namespace storage; namespace streaming { -class SearchVisitorTest : public vespalib::TestApp +class SearchVisitorTest : public testing::Test { -private: +public: framework::defaultimplementation::FakeClock _clock; StorageComponentRegisterImpl _componentRegister; std::unique_ptr<StorageComponent> _component; SearchEnvironment _env; - void testSearchVisitor(); - void testSearchEnvironment(); void testCreateSearchVisitor(const vespalib::string & dir, const vdslib::Parameters & parameters); - void testOnlyRequireWeakReadConsistency(); -public: SearchVisitorTest(); ~SearchVisitorTest() override; - int Main() override; }; SearchVisitorTest::SearchVisitorTest() : - vespalib::TestApp(), _componentRegister(), - _env(::config::ConfigUri("dir:" + TEST_PATH("cfg"))) + _env(::config::ConfigUri("dir:cfg")) { _componentRegister.setNodeInfo("mycluster", lib::NodeType::STORAGE, 1); _componentRegister.setClock(_clock); - auto repo = std::make_shared<DocumentTypeRepo>(readDocumenttypesConfig(TEST_PATH("cfg/documenttypes.cfg"))); + auto repo = std::make_shared<DocumentTypeRepo>(readDocumenttypesConfig("cfg/documenttypes.cfg")); _componentRegister.setDocumentTypeRepo(repo); _component = std::make_unique<StorageComponent>(_componentRegister, "storage"); } -SearchVisitorTest::~SearchVisitorTest() = default; +SearchVisitorTest::~SearchVisitorTest() +{ + _env.clear_thread_local_env_map(); +} Visitor::DocEntryList createDocuments(const vespalib::string & dir) @@ -79,15 +75,13 @@ SearchVisitorTest::testCreateSearchVisitor(const vespalib::string & dir, const v sv->handleDocuments(bucketId, documents, hitCounter); } -void -SearchVisitorTest::testSearchEnvironment() +TEST_F(SearchVisitorTest, test_search_environment) { EXPECT_TRUE(_env.getVSMAdapter("simple") != nullptr); EXPECT_TRUE(_env.getRankManager("simple") != nullptr); } -void -SearchVisitorTest::testSearchVisitor() +TEST_F(SearchVisitorTest, test_search_visitor) { vdslib::Parameters params; params.set("searchcluster", "aaa"); @@ -102,31 +96,18 @@ SearchVisitorTest::testSearchVisitor() vespalib::string stackDump = StackDumpCreator::create(*node); params.set("query", stackDump); - testCreateSearchVisitor("dir:" + TEST_PATH("cfg"), params); + testCreateSearchVisitor("dir:cfg", params); } -void -SearchVisitorTest::testOnlyRequireWeakReadConsistency() +TEST_F(SearchVisitorTest, test_only_require_weak_read_consistency) { - SearchVisitorFactory factory(::config::ConfigUri("dir:" + TEST_PATH("cfg"))); + SearchVisitorFactory factory(::config::ConfigUri("dir:cfg")); VisitorFactory& factoryBase(factory); vdslib::Parameters params; std::unique_ptr<Visitor> sv(factoryBase.makeVisitor(*_component, _env, params)); EXPECT_TRUE(sv->getRequiredReadConsistency() == spi::ReadConsistency::WEAK); } -int -SearchVisitorTest::Main() -{ - TEST_INIT("searchvisitor_test"); - - testSearchVisitor(); TEST_FLUSH(); - testSearchEnvironment(); TEST_FLUSH(); - testOnlyRequireWeakReadConsistency(); TEST_FLUSH(); - - TEST_DONE(); } -} // namespace streaming - -TEST_APPHOOK(::streaming::SearchVisitorTest) +GTEST_MAIN_RUN_ALL_TESTS() diff --git a/streamingvisitors/src/vespa/searchvisitor/searchenvironment.cpp b/streamingvisitors/src/vespa/searchvisitor/searchenvironment.cpp index 1ac452e11d4..4da9164021d 100644 --- a/streamingvisitors/src/vespa/searchvisitor/searchenvironment.cpp +++ b/streamingvisitors/src/vespa/searchvisitor/searchenvironment.cpp @@ -53,7 +53,9 @@ SearchEnvironment::SearchEnvironment(const config::ConfigUri & configUri) : VisitorEnvironment(), _envMap(), _configUri(configUri) -{ } +{ +} + SearchEnvironment::~SearchEnvironment() { @@ -87,4 +89,10 @@ SearchEnvironment::getEnv(const vespalib::string & searchCluster) return *localFound->second; } +void +SearchEnvironment::clear_thread_local_env_map() +{ + _localEnvMap = nullptr; +} + } diff --git a/streamingvisitors/src/vespa/searchvisitor/searchenvironment.h b/streamingvisitors/src/vespa/searchvisitor/searchenvironment.h index dfe1f986469..844c99ad347 100644 --- a/streamingvisitors/src/vespa/searchvisitor/searchenvironment.h +++ b/streamingvisitors/src/vespa/searchvisitor/searchenvironment.h @@ -49,6 +49,8 @@ public: ~SearchEnvironment(); const vsm::VSMAdapter * getVSMAdapter(const vespalib::string & searchcluster) { return getEnv(searchcluster).getVSMAdapter(); } const RankManager * getRankManager(const vespalib::string & searchcluster) { return getEnv(searchcluster).getRankManager(); } + // Should only be used by unit tests to simulate that the calling thread is finished. + void clear_thread_local_env_map(); }; } |