From fa0040e54b7c7720d7b28ad9e7b459f8b047e5b2 Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Mon, 11 Mar 2024 12:51:18 +0100 Subject: Rewrite messagebus choke unit test to gtest. --- messagebus/src/tests/choke/CMakeLists.txt | 1 + messagebus/src/tests/choke/choke.cpp | 115 ++++++++++++++++-------------- 2 files changed, 62 insertions(+), 54 deletions(-) (limited to 'messagebus') 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 #include #include -#include +#include 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()), - RPCNetworkParams(_slobrok.config())), - _srcSession(), - _srcHandler(), - _dstServer(MessageBusParams() - .addProtocol(std::make_shared()), - RPCNetworkParams(_slobrok.config()) - .setIdentity(Identity("dst"))), - _dstSession(), - _dstHandler() +TestData::TestData() + : _slobrok(), + _srcServer(MessageBusParams() + .setRetryPolicy(IRetryPolicy::SP()) + .addProtocol(std::make_shared()), + RPCNetworkParams(_slobrok.config())), + _srcSession(), + _srcHandler(), + _dstServer(MessageBusParams() + .addProtocol(std::make_shared()), + 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 +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 _data; + ChokeTest(); + ~ChokeTest() override; + static void SetUpTestSuite(); + static void TearDownTestSuite(); +}; - TestData data; - ASSERT_TRUE(data.start()); +std::shared_ptr 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(); + 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 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 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() -- cgit v1.2.3