diff options
Diffstat (limited to 'storageapi/src/tests/mbusprot/storageprotocoltest.cpp')
-rw-r--r-- | storageapi/src/tests/mbusprot/storageprotocoltest.cpp | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/storageapi/src/tests/mbusprot/storageprotocoltest.cpp b/storageapi/src/tests/mbusprot/storageprotocoltest.cpp index 8690d89e12b..b1a754bbbab 100644 --- a/storageapi/src/tests/mbusprot/storageprotocoltest.cpp +++ b/storageapi/src/tests/mbusprot/storageprotocoltest.cpp @@ -108,7 +108,7 @@ std::string version_as_gtest_string(TestParamInfo<vespalib::Version> info) { // TODO replace with INSTANTIATE_TEST_SUITE_P on newer gtest versions INSTANTIATE_TEST_CASE_P(MultiVersionTest, StorageProtocolTest, Values(vespalib::Version(6, 240, 0), - vespalib::Version(7, 40, 5)), + vespalib::Version(7, 41, 19)), version_as_gtest_string); namespace { @@ -191,7 +191,58 @@ TEST_P(StorageProtocolTest, response_without_remapped_bucket_preserves_original_ EXPECT_FALSE(reply2->hasBeenRemapped()); EXPECT_EQ(_bucket_id, reply2->getBucketId()); EXPECT_EQ(document::BucketId(), reply2->getOriginalBucketId()); +} + +TEST_P(StorageProtocolTest, invalid_bucket_info_is_propagated) { + auto cmd = std::make_shared<PutCommand>(_bucket, _testDoc, 14); + auto cmd2 = copyCommand(cmd); + auto reply = std::make_shared<PutReply>(*cmd2); + BucketInfo invalid_info; + EXPECT_FALSE(invalid_info.valid()); + reply->setBucketInfo(invalid_info); + auto reply2 = copyReply(reply); + + EXPECT_EQ(invalid_info, reply2->getBucketInfo()); + EXPECT_FALSE(reply2->getBucketInfo().valid()); +} + +TEST_P(StorageProtocolTest, all_zero_bucket_info_is_propagated) { + auto cmd = std::make_shared<PutCommand>(_bucket, _testDoc, 14); + auto cmd2 = copyCommand(cmd); + auto reply = std::make_shared<PutReply>(*cmd2); + BucketInfo zero_info(0, 0, 0, 0, 0, false, false, 0); + reply->setBucketInfo(zero_info); + auto reply2 = copyReply(reply); + EXPECT_EQ(zero_info, reply2->getBucketInfo()); +} + +TEST_P(StorageProtocolTest, request_metadata_is_propagated) { + auto cmd = std::make_shared<PutCommand>(_bucket, _testDoc, 14); + cmd->forceMsgId(12345); + cmd->setPriority(50); + cmd->setLoadType(_loadTypes["foo"]); + cmd->setSourceIndex(321); + auto cmd2 = copyCommand(cmd); + EXPECT_EQ(12345, cmd2->getMsgId()); + EXPECT_EQ(50, cmd2->getPriority()); + EXPECT_EQ(_loadTypes["foo"].getId(), cmd2->getLoadType().getId()); + EXPECT_EQ(321, cmd2->getSourceIndex()); +} + +TEST_P(StorageProtocolTest, response_metadata_is_propagated) { + auto cmd = std::make_shared<PutCommand>(_bucket, _testDoc, 14); + auto cmd2 = copyCommand(cmd); + auto reply = std::make_shared<PutReply>(*cmd2); + reply->forceMsgId(1234); + reply->setPriority(101); + ReturnCode result(ReturnCode::TEST_AND_SET_CONDITION_FAILED, "foo is not bar"); + reply->setResult(result); + + auto reply2 = copyReply(reply); + EXPECT_EQ(result, reply2->getResult()); + EXPECT_EQ(1234, reply->getMsgId()); + EXPECT_EQ(101, reply->getPriority()); } TEST_P(StorageProtocolTest, update) { |