From 029151cc58b49200cfb86189c5caac9ad0e9984d Mon Sep 17 00:00:00 2001 From: Geir Storli Date: Thu, 27 Apr 2023 08:36:14 +0000 Subject: Rewrite searchvisitor test to GTest. --- .../src/tests/searchvisitor/CMakeLists.txt | 1 + .../src/tests/searchvisitor/searchvisitor_test.cpp | 51 +++++++--------------- .../src/vespa/searchvisitor/searchenvironment.cpp | 10 ++++- .../src/vespa/searchvisitor/searchenvironment.h | 2 + 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 #include -#include +#include #include #include #include @@ -10,8 +10,7 @@ #include #include #include -#include - +#include #include 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 _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(readDocumenttypesConfig(TEST_PATH("cfg/documenttypes.cfg"))); + auto repo = std::make_shared(readDocumenttypesConfig("cfg/documenttypes.cfg")); _componentRegister.setDocumentTypeRepo(repo); _component = std::make_unique(_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 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(); }; } -- cgit v1.2.3