aboutsummaryrefslogtreecommitdiffstats
path: root/storage/src/tests/distributor
diff options
context:
space:
mode:
Diffstat (limited to 'storage/src/tests/distributor')
-rw-r--r--storage/src/tests/distributor/bucketdbupdatertest.cpp3
-rw-r--r--storage/src/tests/distributor/bucketstateoperationtest.cpp19
-rw-r--r--storage/src/tests/distributor/distributor_message_sender_stub.h4
-rw-r--r--storage/src/tests/distributor/idealstatemanagertest.cpp11
-rw-r--r--storage/src/tests/distributor/mergeoperationtest.cpp3
-rw-r--r--storage/src/tests/distributor/pendingmessagetrackertest.cpp26
-rw-r--r--storage/src/tests/distributor/splitbuckettest.cpp15
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));