diff options
-rw-r--r-- | dist/vespa.spec | 4 | ||||
-rw-r--r-- | messagebus/src/tests/advancedrouting/CMakeLists.txt | 1 | ||||
-rw-r--r-- | messagebus/src/tests/advancedrouting/advancedrouting.cpp | 76 | ||||
-rw-r--r-- | messagebus/src/tests/choke/CMakeLists.txt | 1 | ||||
-rw-r--r-- | messagebus/src/tests/choke/choke.cpp | 115 |
5 files changed, 96 insertions, 101 deletions
diff --git a/dist/vespa.spec b/dist/vespa.spec index 14e1869b6a5..53e82e372af 100644 --- a/dist/vespa.spec +++ b/dist/vespa.spec @@ -32,6 +32,7 @@ %define _create_vespa_service 1 %define _defattr_is_vespa_vespa 0 %define _command_cmake cmake3 +%global _vespa_build_depencencies_version 1.2.7 Name: vespa Version: _VESPA_VERSION_ @@ -42,7 +43,7 @@ License: Commercial URL: http://vespa.ai Source0: vespa-%{version}.tar.gz -BuildRequires: vespa-build-dependencies = 1.2.7 +BuildRequires: vespa-build-dependencies = %{_vespa_build_depencencies_version} Requires: %{name}-base = %{version}-%{release} Requires: %{name}-base-libs = %{version}-%{release} @@ -262,6 +263,7 @@ Vespa - The open big data serving engine - tools for system tests Summary: Vespa - The open big data serving engine - devel package +Requires: vespa-build-dependencies = %{_vespa_build_depencencies_version} Requires: %{name} = %{version}-%{release} Requires: %{name}-base-libs = %{version}-%{release} diff --git a/messagebus/src/tests/advancedrouting/CMakeLists.txt b/messagebus/src/tests/advancedrouting/CMakeLists.txt index dc4013b833f..ca2d3e4bba0 100644 --- a/messagebus/src/tests/advancedrouting/CMakeLists.txt +++ b/messagebus/src/tests/advancedrouting/CMakeLists.txt @@ -5,5 +5,6 @@ vespa_add_executable(messagebus_advancedrouting_test_app TEST DEPENDS messagebus_messagebus-test messagebus + GTest::gtest ) vespa_add_test(NAME messagebus_advancedrouting_test_app COMMAND messagebus_advancedrouting_test_app) diff --git a/messagebus/src/tests/advancedrouting/advancedrouting.cpp b/messagebus/src/tests/advancedrouting/advancedrouting.cpp index ce4a13d435a..4415674986e 100644 --- a/messagebus/src/tests/advancedrouting/advancedrouting.cpp +++ b/messagebus/src/tests/advancedrouting/advancedrouting.cpp @@ -5,14 +5,16 @@ #include <vespa/messagebus/testlib/simplemessage.h> #include <vespa/messagebus/testlib/slobrok.h> #include <vespa/messagebus/testlib/testserver.h> -#include <vespa/vespalib/testkit/testapp.h> #include <vespa/vespalib/util/stringfmt.h> #include <vespa/messagebus/emptyreply.h> #include <vespa/messagebus/errorcode.h> #include <vespa/messagebus/routing/retrytransienterrorspolicy.h> +#include <vespa/vespalib/gtest/gtest.h> using namespace mbus; +namespace { + class TestData { public: Slobrok _slobrok; @@ -34,38 +36,27 @@ public: bool start(); }; -class Test : public vespalib::TestApp { -private: - Message::UP createMessage(const string &msg); - bool testTrace(const std::vector<string> &expected, const Trace &trace); - -public: - int Main() override; - void testAdvanced(TestData &data); -}; - -TEST_APPHOOK(Test); - -TestData::~TestData() = default; -TestData::TestData() : - _slobrok(), - _retryPolicy(std::make_shared<RetryTransientErrorsPolicy>()), - _srcServer(MessageBusParams().setRetryPolicy(_retryPolicy).addProtocol(std::make_shared<SimpleProtocol>()), - RPCNetworkParams(_slobrok.config())), - _srcSession(), - _srcHandler(), - _dstServer(MessageBusParams().addProtocol(std::make_shared<SimpleProtocol>()), - RPCNetworkParams(_slobrok.config()).setIdentity(Identity("dst"))), - _fooSession(), - _fooHandler(), - _barSession(), - _barHandler(), - _bazSession(), - _bazHandler() +TestData::TestData() + : _slobrok(), + _retryPolicy(std::make_shared<RetryTransientErrorsPolicy>()), + _srcServer(MessageBusParams().setRetryPolicy(_retryPolicy).addProtocol(std::make_shared<SimpleProtocol>()), + RPCNetworkParams(_slobrok.config())), + _srcSession(), + _srcHandler(), + _dstServer(MessageBusParams().addProtocol(std::make_shared<SimpleProtocol>()), + RPCNetworkParams(_slobrok.config()).setIdentity(Identity("dst"))), + _fooSession(), + _fooHandler(), + _barSession(), + _barHandler(), + _bazSession(), + _bazHandler() { _retryPolicy->setBaseDelay(0); } +TestData::~TestData() = default; + bool TestData::start() { @@ -91,30 +82,21 @@ TestData::start() return true; } -Message::UP -Test::createMessage(const string &msg) +std::unique_ptr<Message> +createMessage(const string &msg) { auto ret = std::make_unique<SimpleMessage>(msg); ret->getTrace().setLevel(9); return ret; } -int -Test::Main() -{ - TEST_INIT("routing_test"); +} +TEST(AdvancedRoutingTest, test_advanced) +{ TestData data; ASSERT_TRUE(data.start()); - testAdvanced(data); TEST_FLUSH(); - - TEST_DONE(); -} - -void -Test::testAdvanced(TestData &data) -{ const duration TIMEOUT = 60s; IProtocol::SP protocol(new SimpleProtocol()); auto &simple = dynamic_cast<SimpleProtocol&>(*protocol); @@ -174,7 +156,9 @@ Test::testAdvanced(TestData &data) reply = data._srcHandler.getReply(); ASSERT_TRUE(reply); printf("%s", reply->getTrace().toString().c_str()); - EXPECT_EQUAL(2u, reply->getNumErrors()); - EXPECT_EQUAL((uint32_t)ErrorCode::FATAL_ERROR, reply->getError(0).getCode()); - EXPECT_EQUAL((uint32_t)ErrorCode::NO_ADDRESS_FOR_SERVICE, reply->getError(1).getCode()); + EXPECT_EQ(2u, reply->getNumErrors()); + EXPECT_EQ((uint32_t)ErrorCode::FATAL_ERROR, reply->getError(0).getCode()); + EXPECT_EQ((uint32_t)ErrorCode::NO_ADDRESS_FOR_SERVICE, reply->getError(1).getCode()); } + +GTEST_MAIN_RUN_ALL_TESTS() diff --git a/messagebus/src/tests/choke/CMakeLists.txt b/messagebus/src/tests/choke/CMakeLists.txt index b4db862f717..c87c51f8c82 100644 --- a/messagebus/src/tests/choke/CMakeLists.txt +++ b/messagebus/src/tests/choke/CMakeLists.txt @@ -5,5 +5,6 @@ vespa_add_executable(messagebus_choke_test_app TEST DEPENDS messagebus_messagebus-test messagebus + GTest::gtest ) vespa_add_test(NAME messagebus_choke_test_app NO_VALGRIND COMMAND messagebus_choke_test_app) diff --git a/messagebus/src/tests/choke/choke.cpp b/messagebus/src/tests/choke/choke.cpp index 313aace8fd4..9c25fc64cd1 100644 --- a/messagebus/src/tests/choke/choke.cpp +++ b/messagebus/src/tests/choke/choke.cpp @@ -7,7 +7,7 @@ #include <vespa/messagebus/testlib/simpleprotocol.h> #include <vespa/messagebus/testlib/slobrok.h> #include <vespa/messagebus/testlib/testserver.h> -#include <vespa/vespalib/testkit/testapp.h> +#include <vespa/vespalib/gtest/gtest.h> using namespace mbus; @@ -17,6 +17,8 @@ using namespace mbus; // //////////////////////////////////////////////////////////////////////////////// +namespace { + class TestData { public: Slobrok _slobrok; @@ -33,32 +35,20 @@ public: bool start(); }; -class Test : public vespalib::TestApp { -private: - Message::UP createMessage(const string &msg); - -public: - int Main() override; - void testMaxCount(TestData &data); - void testMaxSize(TestData &data); -}; - -TEST_APPHOOK(Test); - -TestData::TestData() : - _slobrok(), - _srcServer(MessageBusParams() - .setRetryPolicy(IRetryPolicy::SP()) - .addProtocol(std::make_shared<SimpleProtocol>()), - RPCNetworkParams(_slobrok.config())), - _srcSession(), - _srcHandler(), - _dstServer(MessageBusParams() - .addProtocol(std::make_shared<SimpleProtocol>()), - RPCNetworkParams(_slobrok.config()) - .setIdentity(Identity("dst"))), - _dstSession(), - _dstHandler() +TestData::TestData() + : _slobrok(), + _srcServer(MessageBusParams() + .setRetryPolicy(IRetryPolicy::SP()) + .addProtocol(std::make_shared<SimpleProtocol>()), + RPCNetworkParams(_slobrok.config())), + _srcSession(), + _srcHandler(), + _dstServer(MessageBusParams() + .addProtocol(std::make_shared<SimpleProtocol>()), + RPCNetworkParams(_slobrok.config()) + .setIdentity(Identity("dst"))), + _dstSession(), + _dstHandler() { // empty } @@ -86,26 +76,41 @@ TestData::start() return true; } -Message::UP -Test::createMessage(const string &msg) +std::unique_ptr<Message> +createMessage(const string &msg) { Message::UP ret(new SimpleMessage(msg)); ret->getTrace().setLevel(9); return ret; } -int -Test::Main() -{ - TEST_INIT("choke_test"); +} + +class ChokeTest : public testing::Test { +protected: + static std::shared_ptr<TestData> _data; + ChokeTest(); + ~ChokeTest() override; + static void SetUpTestSuite(); + static void TearDownTestSuite(); +}; - TestData data; - ASSERT_TRUE(data.start()); +std::shared_ptr<TestData> ChokeTest::_data; - testMaxCount(data); TEST_FLUSH(); - testMaxSize(data); TEST_FLUSH(); +ChokeTest::ChokeTest() = default; +ChokeTest::~ChokeTest() = default; - TEST_DONE(); +void +ChokeTest::SetUpTestSuite() +{ + _data = std::make_shared<TestData>(); + ASSERT_TRUE(_data->start()); +} + +void +ChokeTest::TearDownTestSuite() +{ + _data.reset(); } static const duration TIMEOUT = 120s; @@ -116,17 +121,17 @@ static const duration TIMEOUT = 120s; // //////////////////////////////////////////////////////////////////////////////// -void -Test::testMaxCount(TestData &data) +TEST_F(ChokeTest, test_max_count) { + auto& data = *_data; uint32_t max = 10; data._dstServer.mb.setMaxPendingCount(max); std::vector<Message*> lst; for (uint32_t i = 0; i < max * 2; ++i) { if (i < max) { - EXPECT_EQUAL(i, data._dstServer.mb.getPendingCount()); + EXPECT_EQ(i, data._dstServer.mb.getPendingCount()); } else { - EXPECT_EQUAL(max, data._dstServer.mb.getPendingCount()); + EXPECT_EQ(max, data._dstServer.mb.getPendingCount()); } EXPECT_TRUE(data._srcSession->send(createMessage("msg"), Route::parse("dst/session")).isAccepted()); if (i < max) { @@ -136,8 +141,8 @@ Test::testMaxCount(TestData &data) } else { Reply::UP reply = data._srcHandler.getReply(); ASSERT_TRUE(reply); - EXPECT_EQUAL(1u, reply->getNumErrors()); - EXPECT_EQUAL((uint32_t)ErrorCode::SESSION_BUSY, reply->getError(0).getCode()); + EXPECT_EQ(1u, reply->getNumErrors()); + EXPECT_EQ((uint32_t)ErrorCode::SESSION_BUSY, reply->getError(0).getCode()); } } for (uint32_t i = 0; i < 5; ++i) { @@ -157,7 +162,7 @@ Test::testMaxCount(TestData &data) lst.push_back(msg.release()); } while (!lst.empty()) { - EXPECT_EQUAL(lst.size(), data._dstServer.mb.getPendingCount()); + EXPECT_EQ(lst.size(), data._dstServer.mb.getPendingCount()); Message::UP msg(lst[0]); lst.erase(lst.begin()); data._dstSession->acknowledge(std::move(msg)); @@ -166,21 +171,21 @@ Test::testMaxCount(TestData &data) ASSERT_TRUE(reply); EXPECT_TRUE(!reply->hasErrors()); } - EXPECT_EQUAL(0u, data._dstServer.mb.getPendingCount()); + EXPECT_EQ(0u, data._dstServer.mb.getPendingCount()); } -void -Test::testMaxSize(TestData &data) +TEST_F(ChokeTest, test_max_size) { + auto& data = *_data; uint32_t size = createMessage("msg")->getApproxSize(); uint32_t max = size * 10; data._dstServer.mb.setMaxPendingSize(max); std::vector<Message*> lst; for (uint32_t i = 0; i < max * 2; i += size) { if (i < max) { - EXPECT_EQUAL(i, data._dstServer.mb.getPendingSize()); + EXPECT_EQ(i, data._dstServer.mb.getPendingSize()); } else { - EXPECT_EQUAL(max, data._dstServer.mb.getPendingSize()); + EXPECT_EQ(max, data._dstServer.mb.getPendingSize()); } EXPECT_TRUE(data._srcSession->send(createMessage("msg"), Route::parse("dst/session")).isAccepted()); if (i < max) { @@ -190,8 +195,8 @@ Test::testMaxSize(TestData &data) } else { Reply::UP reply = data._srcHandler.getReply(); ASSERT_TRUE(reply); - EXPECT_EQUAL(1u, reply->getNumErrors()); - EXPECT_EQUAL((uint32_t)ErrorCode::SESSION_BUSY, reply->getError(0).getCode()); + EXPECT_EQ(1u, reply->getNumErrors()); + EXPECT_EQ((uint32_t)ErrorCode::SESSION_BUSY, reply->getError(0).getCode()); } } for (uint32_t i = 0; i < 5; ++i) { @@ -211,7 +216,7 @@ Test::testMaxSize(TestData &data) lst.push_back(msg.release()); } while (!lst.empty()) { - EXPECT_EQUAL(size * lst.size(), data._dstServer.mb.getPendingSize()); + EXPECT_EQ(size * lst.size(), data._dstServer.mb.getPendingSize()); Message::UP msg(lst[0]); lst.erase(lst.begin()); data._dstSession->acknowledge(std::move(msg)); @@ -220,5 +225,7 @@ Test::testMaxSize(TestData &data) ASSERT_TRUE(reply); EXPECT_TRUE(!reply->hasErrors()); } - EXPECT_EQUAL(0u, data._dstServer.mb.getPendingSize()); + EXPECT_EQ(0u, data._dstServer.mb.getPendingSize()); } + +GTEST_MAIN_RUN_ALL_TESTS() |