diff options
author | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2019-06-21 14:32:05 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2019-06-25 11:08:43 +0000 |
commit | 0ec1dddb0e75c235edfc68d72f4471ad186c3399 (patch) | |
tree | 254cdda75b06c8453a207933a8d556c1db90b997 /storage/src/tests/distributor/statoperationtest.cpp | |
parent | a0d854b6a3fab6fe44b1164c071fc994b331c3bc (diff) |
Convert remaining CppUnit tests to GTest
Move base message sender stub out to common test module to
avoid artificial dependency from persistence tests to the
distributor tests.
Diffstat (limited to 'storage/src/tests/distributor/statoperationtest.cpp')
-rw-r--r-- | storage/src/tests/distributor/statoperationtest.cpp | 97 |
1 files changed, 36 insertions, 61 deletions
diff --git a/storage/src/tests/distributor/statoperationtest.cpp b/storage/src/tests/distributor/statoperationtest.cpp index 19337a0d52a..53ea0ec5efa 100644 --- a/storage/src/tests/distributor/statoperationtest.cpp +++ b/storage/src/tests/distributor/statoperationtest.cpp @@ -2,82 +2,63 @@ #include <tests/common/dummystoragelink.h> #include <vespa/storageapi/message/stat.h> -#include <vespa/vdstestlib/cppunit/macros.h> #include <tests/distributor/distributortestutil.h> #include <vespa/document/test/make_document_bucket.h> #include <vespa/storage/distributor/operations/external/statbucketoperation.h> #include <vespa/storage/distributor/operations/external/statbucketlistoperation.h> #include <vespa/storage/distributor/distributor.h> #include <vespa/storage/distributor/distributor_bucket_space.h> +#include <vespa/vespalib/gtest/gtest.h> +#include <gmock/gmock.h> using document::test::makeDocumentBucket; +using namespace ::testing; -namespace storage { -namespace distributor { +namespace storage::distributor { -struct StatOperationTest : public CppUnit::TestFixture, - public DistributorTestUtil -{ - void setUp() override { +struct StatOperationTest : Test, DistributorTestUtil { + void SetUp() override { createLinks(); }; - void tearDown() override { + void TearDown() override { close(); } - - void testBucketInfo(); - void testBucketList(); - - CPPUNIT_TEST_SUITE(StatOperationTest); - CPPUNIT_TEST(testBucketInfo); - CPPUNIT_TEST(testBucketList); - CPPUNIT_TEST_SUITE_END(); }; -CPPUNIT_TEST_SUITE_REGISTRATION(StatOperationTest); - -void -StatOperationTest::testBucketInfo() -{ +TEST_F(StatOperationTest, bucket_info) { enableDistributorClusterState("distributor:1 storage:2"); - addNodesToBucketDB(document::BucketId(16, 5), - "0=4/2/100,1=4/2/100"); + addNodesToBucketDB(document::BucketId(16, 5), "0=4/2/100,1=4/2/100"); StatBucketOperation op( getExternalOperationHandler(), getDistributorBucketSpace(), - std::shared_ptr<api::StatBucketCommand>( - new api::StatBucketCommand(makeDocumentBucket(document::BucketId(16, 5)), ""))); + std::make_shared<api::StatBucketCommand>( + makeDocumentBucket(document::BucketId(16, 5)), "")); op.start(_sender, framework::MilliSecTime(0)); - CPPUNIT_ASSERT_EQUAL(std::string("Statbucket => 0,Statbucket => 1"), - _sender.getCommands(true)); + ASSERT_EQ("Statbucket => 0,Statbucket => 1", _sender.getCommands(true)); { - api::StatBucketCommand* tmp( - static_cast<api::StatBucketCommand*>(_sender.commands[0].get())); - api::StatBucketReply* reply = new api::StatBucketReply(*tmp, "foo"); - op.receive(_sender, std::shared_ptr<api::StorageReply>(reply)); + auto* tmp = static_cast<api::StatBucketCommand*>(_sender.command(0).get()); + auto reply = std::make_shared<api::StatBucketReply>(*tmp, "foo"); + op.receive(_sender, reply); } { - api::StatBucketCommand* tmp( - static_cast<api::StatBucketCommand*>(_sender.commands[1].get())); - api::StatBucketReply* reply = new api::StatBucketReply(*tmp, "bar"); - op.receive(_sender, std::shared_ptr<api::StorageReply>(reply)); + auto* tmp = static_cast<api::StatBucketCommand*>(_sender.command(1).get()); + auto reply = std::make_shared<api::StatBucketReply>(*tmp, "bar"); + op.receive(_sender, reply); } - api::StatBucketReply* replyback( - static_cast<api::StatBucketReply*>(_sender.replies.back().get())); - CPPUNIT_ASSERT_CONTAIN("foo", replyback->getResults()); - CPPUNIT_ASSERT_CONTAIN("bar", replyback->getResults()); + auto* replyback = static_cast<api::StatBucketReply*>(_sender.replies().back().get()); + EXPECT_THAT(replyback->getResults(), HasSubstr("foo")); + EXPECT_THAT(replyback->getResults(), HasSubstr("bar")); } -void -StatOperationTest::testBucketList() { +TEST_F(StatOperationTest, bucket_list) { setupDistributor(2, 2, "distributor:1 storage:2"); getConfig().setSplitCount(10); @@ -88,8 +69,7 @@ StatOperationTest::testBucketList() { 0xff, 100, 200, true, (i == 1)); } - std::shared_ptr<api::GetBucketListCommand> msg( - new api::GetBucketListCommand(makeDocumentBucket(document::BucketId(16, 5)))); + auto msg = std::make_shared<api::GetBucketListCommand>(makeDocumentBucket(document::BucketId(16, 5))); StatBucketListOperation op( getDistributorBucketSpace().getBucketDatabase(), @@ -98,23 +78,18 @@ StatOperationTest::testBucketList() { msg); op.start(_sender, framework::MilliSecTime(0)); - CPPUNIT_ASSERT_EQUAL(1, (int)_sender.replies.size()); - - api::GetBucketListReply* repl( - dynamic_cast<api::GetBucketListReply*>(_sender.replies[0].get())); - - CPPUNIT_ASSERT_EQUAL(1, (int)repl->getBuckets().size()); - CPPUNIT_ASSERT_EQUAL(document::BucketId(16, 5), - repl->getBuckets()[0]._bucket); - CPPUNIT_ASSERT_EQUAL( - vespalib::string( - "[distributor:0] split: " - "[Splitting bucket because its maximum size (200 b, 100 docs, 100 meta, 200 b total) " - "is higher than the configured limit of (100, 10)] " - "[node(idx=0,crc=0xff,docs=100/100,bytes=200/200,trusted=true,active=false,ready=false), " - "node(idx=1,crc=0xff,docs=100/100,bytes=200/200,trusted=true,active=true,ready=false)]"), - repl->getBuckets()[0]._bucketInformation); + ASSERT_EQ(1, _sender.replies().size()); + + auto& repl = dynamic_cast<api::GetBucketListReply&>(*_sender.reply(0)); + + ASSERT_EQ(1, repl.getBuckets().size()); + EXPECT_EQ(repl.getBuckets()[0]._bucket, document::BucketId(16, 5)); + EXPECT_EQ("[distributor:0] split: " + "[Splitting bucket because its maximum size (200 b, 100 docs, 100 meta, 200 b total) " + "is higher than the configured limit of (100, 10)] " + "[node(idx=0,crc=0xff,docs=100/100,bytes=200/200,trusted=true,active=false,ready=false), " + "node(idx=1,crc=0xff,docs=100/100,bytes=200/200,trusted=true,active=true,ready=false)]", + repl.getBuckets()[0]._bucketInformation); } -} // distributor -} // storage +} // storage::distributor |