diff options
Diffstat (limited to 'storage/src/tests/distributor')
7 files changed, 44 insertions, 37 deletions
diff --git a/storage/src/tests/distributor/bucketdbupdatertest.cpp b/storage/src/tests/distributor/bucketdbupdatertest.cpp index fa540669b4b..e42f024b730 100644 --- a/storage/src/tests/distributor/bucketdbupdatertest.cpp +++ b/storage/src/tests/distributor/bucketdbupdatertest.cpp @@ -392,7 +392,8 @@ public: } api::StorageMessageAddress storageAddress(uint16_t node) { - return api::StorageMessageAddress("storage", lib::NodeType::STORAGE, node); + static vespalib::string _storage("storage"); + return api::StorageMessageAddress(&_storage, lib::NodeType::STORAGE, node); } std::string getSentNodes(const std::string& oldClusterState, diff --git a/storage/src/tests/distributor/bucketstateoperationtest.cpp b/storage/src/tests/distributor/bucketstateoperationtest.cpp index c62d0a62ed3..60c17eb6a17 100644 --- a/storage/src/tests/distributor/bucketstateoperationtest.cpp +++ b/storage/src/tests/distributor/bucketstateoperationtest.cpp @@ -11,6 +11,10 @@ using namespace ::testing; namespace storage::distributor { +namespace { + vespalib::string _Storage("storage"); +} + struct BucketStateOperationTest : Test, DistributorTestUtil { void SetUp() override { createLinks(); @@ -48,8 +52,7 @@ TEST_F(BucketStateOperationTest, activate_single_node) { std::shared_ptr<api::StorageCommand> msg = _sender.command(0); ASSERT_EQ(msg->getType(), api::MessageType::SETBUCKETSTATE); - EXPECT_EQ(api::StorageMessageAddress( - "storage", lib::NodeType::STORAGE, 0).toString(), + EXPECT_EQ(api::StorageMessageAddress(&_Storage, lib::NodeType::STORAGE, 0).toString(), msg->getAddress()->toString()); auto& cmd = dynamic_cast<const api::SetBucketStateCommand&>(*msg); @@ -85,8 +88,7 @@ TEST_F(BucketStateOperationTest, activate_and_deactivate_nodes) { { std::shared_ptr<api::StorageCommand> msg = _sender.command(0); ASSERT_EQ(msg->getType(), api::MessageType::SETBUCKETSTATE); - EXPECT_EQ(api::StorageMessageAddress( - "storage", lib::NodeType::STORAGE, 1).toString(), + EXPECT_EQ(api::StorageMessageAddress(&_Storage, lib::NodeType::STORAGE, 1).toString(), msg->getAddress()->toString()); auto& cmd = dynamic_cast<const api::SetBucketStateCommand&>(*msg); @@ -101,8 +103,7 @@ TEST_F(BucketStateOperationTest, activate_and_deactivate_nodes) { { std::shared_ptr<api::StorageCommand> msg = _sender.command(1); ASSERT_EQ(msg->getType(), api::MessageType::SETBUCKETSTATE); - EXPECT_EQ(api::StorageMessageAddress( - "storage", lib::NodeType::STORAGE, 0).toString(), + EXPECT_EQ(api::StorageMessageAddress(&_Storage, lib::NodeType::STORAGE, 0).toString(), msg->getAddress()->toString()); auto& cmd = dynamic_cast<const api::SetBucketStateCommand&>(*msg); @@ -142,8 +143,7 @@ TEST_F(BucketStateOperationTest, do_not_deactivate_if_activate_fails) { { std::shared_ptr<api::StorageCommand> msg = _sender.command(0); ASSERT_EQ(msg->getType(), api::MessageType::SETBUCKETSTATE); - EXPECT_EQ(api::StorageMessageAddress( - "storage", lib::NodeType::STORAGE, 1).toString(), + EXPECT_EQ(api::StorageMessageAddress(&_Storage, lib::NodeType::STORAGE, 1).toString(), msg->getAddress()->toString()); auto& cmd = dynamic_cast<const api::SetBucketStateCommand&>(*msg); @@ -185,8 +185,7 @@ TEST_F(BucketStateOperationTest, bucket_db_not_updated_on_failure) { std::shared_ptr<api::StorageCommand> msg = _sender.command(0); ASSERT_EQ(msg->getType(), api::MessageType::SETBUCKETSTATE); - EXPECT_EQ(api::StorageMessageAddress( - "storage", lib::NodeType::STORAGE, 0).toString(), + EXPECT_EQ(api::StorageMessageAddress(&_Storage, lib::NodeType::STORAGE, 0).toString(), msg->getAddress()->toString()); std::shared_ptr<api::StorageReply> reply(msg->makeReply().release()); diff --git a/storage/src/tests/distributor/distributor_message_sender_stub.h b/storage/src/tests/distributor/distributor_message_sender_stub.h index 440dee70d48..e69673a9366 100644 --- a/storage/src/tests/distributor/distributor_message_sender_stub.h +++ b/storage/src/tests/distributor/distributor_message_sender_stub.h @@ -11,7 +11,7 @@ namespace storage { class DistributorMessageSenderStub : public distributor::DistributorMessageSender { MessageSenderStub _stub_impl; - std::string _cluster_name; + vespalib::string _cluster_name; distributor::PendingMessageTracker* _pending_message_tracker; public: @@ -82,7 +82,7 @@ public: return 0; } - const std::string& getClusterName() const override { + const vespalib::string& getClusterName() const override { return _cluster_name; } diff --git a/storage/src/tests/distributor/idealstatemanagertest.cpp b/storage/src/tests/distributor/idealstatemanagertest.cpp index fc26a8c9cce..d66b1315fde 100644 --- a/storage/src/tests/distributor/idealstatemanagertest.cpp +++ b/storage/src/tests/distributor/idealstatemanagertest.cpp @@ -56,6 +56,9 @@ struct IdealStateManagerTest : Test, DistributorTestUtil { std::vector<document::BucketSpace> _bucketSpaces; std::string makeBucketStatusString(const std::string &defaultSpaceBucketStatus); }; +namespace { + vespalib::string _Storage("storage"); +} TEST_F(IdealStateManagerTest, sibling) { EXPECT_EQ(document::BucketId(1,1), @@ -170,6 +173,7 @@ TEST_F(IdealStateManagerTest, recheck_when_active) { } TEST_F(IdealStateManagerTest, block_ideal_state_ops_on_full_request_bucket_info) { + setupDistributor(2, 10, "distributor:1 storage:2"); framework::defaultimplementation::FakeClock clock; @@ -182,7 +186,7 @@ TEST_F(IdealStateManagerTest, block_ideal_state_ops_on_full_request_bucket_info) // sent to the entire node. It will then use a null bucketid. { auto msg = std::make_shared<api::RequestBucketInfoCommand>(makeBucketSpace(), buckets); - msg->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 4)); + msg->setAddress(api::StorageMessageAddress::create(&_Storage, lib::NodeType::STORAGE, 4)); tracker.insert(msg); } @@ -202,7 +206,7 @@ TEST_F(IdealStateManagerTest, block_ideal_state_ops_on_full_request_bucket_info) // Don't block on null-bucket messages that aren't RequestBucketInfo. { auto msg = std::make_shared<api::CreateVisitorCommand>(makeBucketSpace(), "foo", "bar", "baz"); - msg->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 7)); + msg->setAddress(api::StorageMessageAddress::create(&_Storage, lib::NodeType::STORAGE, 7)); tracker.insert(msg); } @@ -221,8 +225,7 @@ TEST_F(IdealStateManagerTest, block_check_for_all_operations_to_specific_bucket) { auto msg = std::make_shared<api::JoinBucketsCommand>(makeDocumentBucket(bid)); - msg->setAddress( - api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 4)); + msg->setAddress(api::StorageMessageAddress::create(&_Storage, lib::NodeType::STORAGE, 4)); tracker.insert(msg); } { diff --git a/storage/src/tests/distributor/mergeoperationtest.cpp b/storage/src/tests/distributor/mergeoperationtest.cpp index 75faddbe667..ccd70309a88 100644 --- a/storage/src/tests/distributor/mergeoperationtest.cpp +++ b/storage/src/tests/distributor/mergeoperationtest.cpp @@ -250,7 +250,8 @@ TEST_F(MergeOperationTest, do_not_remove_copies_with_pending_messages) { // at will. auto msg = std::make_shared<api::SetBucketStateCommand>( makeDocumentBucket(bucket), api::SetBucketStateCommand::ACTIVE); - msg->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 1)); + vespalib::string storage("storage"); + msg->setAddress(api::StorageMessageAddress::create(&storage, lib::NodeType::STORAGE, 1)); _pendingTracker->insert(msg); sendReply(op); diff --git a/storage/src/tests/distributor/pendingmessagetrackertest.cpp b/storage/src/tests/distributor/pendingmessagetrackertest.cpp index e1bca1a1890..90171db97d1 100644 --- a/storage/src/tests/distributor/pendingmessagetrackertest.cpp +++ b/storage/src/tests/distributor/pendingmessagetrackertest.cpp @@ -49,6 +49,12 @@ public: std::chrono::milliseconds atTime() const { return _atTime; } }; +api::StorageMessageAddress +makeStorageAddress(uint16_t node) { + static vespalib::string _storage("storage"); + return {&_storage, lib::NodeType::STORAGE, node}; +} + class Fixture { StorageComponentRegisterImpl _compReg; @@ -87,15 +93,9 @@ private: return id.str(); } - document::Document::SP createDummyDocumentForBucket( - const document::BucketId& bucket) const + document::Document::SP createDummyDocumentForBucket(const document::BucketId& bucket) const { - return _testDocMan.createDocument("foobar", - createDummyIdString(bucket)); - } - - api::StorageMessageAddress makeStorageAddress(uint16_t node) const { - return {"storage", lib::NodeType::STORAGE, node}; + return _testDocMan.createDocument("foobar", createDummyIdString(bucket)); } std::shared_ptr<api::PutCommand> createPutToNode(uint16_t node) const { @@ -151,7 +151,7 @@ TEST_F(PendingMessageTrackerTest, simple) { auto remove = std::make_shared<api::RemoveCommand>( makeDocumentBucket(document::BucketId(16, 1234)), document::DocumentId("id:footype:testdoc:n=1234:foo"), 1001); - remove->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 0)); + remove->setAddress(makeStorageAddress(0)); tracker.insert(remove); { @@ -186,7 +186,7 @@ PendingMessageTrackerTest::insertMessages(PendingMessageTracker& tracker) auto remove = std::make_shared<api::RemoveCommand>( makeDocumentBucket(document::BucketId(16, 1234)), document::DocumentId(ost.str()), 1000 + i); - remove->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, i % 2)); + remove->setAddress(makeStorageAddress(i % 2)); tracker.insert(remove); } @@ -194,7 +194,7 @@ PendingMessageTrackerTest::insertMessages(PendingMessageTracker& tracker) std::ostringstream ost; ost << "id:footype:testdoc:n=4567:" << i; auto remove = std::make_shared<api::RemoveCommand>(makeDocumentBucket(document::BucketId(16, 4567)), document::DocumentId(ost.str()), 2000 + i); - remove->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, i % 2)); + remove->setAddress(makeStorageAddress(i % 2)); tracker.insert(remove); } } @@ -323,7 +323,7 @@ TEST_F(PendingMessageTrackerTest, get_pending_message_types) { auto remove = std::make_shared<api::RemoveCommand>(makeDocumentBucket(bid), document::DocumentId("id:footype:testdoc:n=1234:foo"), 1001); - remove->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 0)); + remove->setAddress(makeStorageAddress(0)); tracker.insert(remove); { @@ -358,7 +358,7 @@ TEST_F(PendingMessageTrackerTest, has_pending_message) { { auto remove = std::make_shared<api::RemoveCommand>(makeDocumentBucket(bid), document::DocumentId("id:footype:testdoc:n=1234:foo"), 1001); - remove->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 1)); + remove->setAddress(makeStorageAddress(1)); tracker.insert(remove); } diff --git a/storage/src/tests/distributor/splitbuckettest.cpp b/storage/src/tests/distributor/splitbuckettest.cpp index d88b02b332e..c876f3e7ee4 100644 --- a/storage/src/tests/distributor/splitbuckettest.cpp +++ b/storage/src/tests/distributor/splitbuckettest.cpp @@ -44,6 +44,11 @@ SplitOperationTest::SplitOperationTest() { } +namespace { + vespalib::string _Storage("storage"); + api::StorageMessageAddress _Storage0Address(&_Storage, lib::NodeType::STORAGE, 0); +} + TEST_F(SplitOperationTest, simple) { enableDistributorClusterState("distributor:1 storage:1"); @@ -65,7 +70,7 @@ TEST_F(SplitOperationTest, simple) { std::shared_ptr<api::StorageCommand> msg = _sender.command(0); ASSERT_EQ(msg->getType(), api::MessageType::SPLITBUCKET); - EXPECT_EQ(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 0).toString(), + EXPECT_EQ(_Storage0Address.toString(), msg->getAddress()->toString()); std::shared_ptr<api::StorageReply> reply(msg->makeReply().release()); @@ -135,7 +140,7 @@ TEST_F(SplitOperationTest, multi_node_failure) { { std::shared_ptr<api::StorageCommand> msg = _sender.command(0); ASSERT_EQ(msg->getType(), api::MessageType::SPLITBUCKET); - EXPECT_EQ(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 0).toString(), + EXPECT_EQ(_Storage0Address.toString(), msg->getAddress()->toString()); auto* sreply = static_cast<api::SplitBucketReply*>(msg->makeReply().release()); @@ -264,8 +269,7 @@ TEST_F(SplitOperationTest, operation_blocked_by_pending_join) { }; auto joinCmd = std::make_shared<api::JoinBucketsCommand>(makeDocumentBucket(joinTarget)); joinCmd->getSourceBuckets() = joinSources; - joinCmd->setAddress( - api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 0)); + joinCmd->setAddress(_Storage0Address); tracker.insert(joinCmd); @@ -284,8 +288,7 @@ TEST_F(SplitOperationTest, operation_blocked_by_pending_join) { tracker.clearMessagesForNode(0); EXPECT_FALSE(op.isBlocked(tracker)); - joinCmd->setAddress( - api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 1)); + joinCmd->setAddress(api::StorageMessageAddress::create(&_Storage, lib::NodeType::STORAGE, 1)); tracker.insert(joinCmd); EXPECT_TRUE(op.isBlocked(tracker)); |