diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2022-05-25 08:11:01 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-05-25 08:54:05 +0000 |
commit | fc61f94d0d7de48aaca991da620301907cf092e0 (patch) | |
tree | d92e6bccc312a0bdca98dd777ae1c3e7b8395304 /src/mongo/s/chunk_version_test.cpp | |
parent | e15d5cf875d92e37fcc83cb83b0b02ee45663238 (diff) | |
download | mongo-fc61f94d0d7de48aaca991da620301907cf092e0.tar.gz |
SERVER-65530 Get rid of the legacy ChunkVersion format (except for moveChunk)
Diffstat (limited to 'src/mongo/s/chunk_version_test.cpp')
-rw-r--r-- | src/mongo/s/chunk_version_test.cpp | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/src/mongo/s/chunk_version_test.cpp b/src/mongo/s/chunk_version_test.cpp index 3962588b52b..f735bfd7ef0 100644 --- a/src/mongo/s/chunk_version_test.cpp +++ b/src/mongo/s/chunk_version_test.cpp @@ -36,154 +36,6 @@ namespace mongo { namespace { -TEST(ChunkVersionTest, Parsing60Format) { - const Timestamp majorMinor = Timestamp(Seconds(1), 2); - const OID epoch = OID::gen(); - const Timestamp timestamp(42); - - ChunkVersion chunkVersion(1, 2, epoch, timestamp); - // Check future format in fromBSONLegacyOrNewerFormat. - ChunkVersion futureFormatChunkVersion = ChunkVersion::fromBSONLegacyOrNewerFormat( - BSON("chunkVersion" << BSON(ChunkVersion60Format::kVersionFieldName - << majorMinor << ChunkVersion60Format::kEpochFieldName << epoch - << ChunkVersion60Format::kTimestampFieldName << timestamp)), - "chunkVersion"); - - ASSERT_EQ(1, futureFormatChunkVersion.majorVersion()); - ASSERT_EQ(2, futureFormatChunkVersion.minorVersion()); - ASSERT_EQ(epoch, futureFormatChunkVersion.epoch()); - ASSERT_EQ(timestamp, futureFormatChunkVersion.getTimestamp()); - - // Check future format in fromBSONPositionalOrNewerFormat. - ChunkVersion futureFormatChunkVersion2 = ChunkVersion::fromBSONPositionalOrNewerFormat( - BSON("chunkVersion" << BSON(ChunkVersion60Format::kVersionFieldName - << majorMinor << ChunkVersion60Format::kEpochFieldName << epoch - << ChunkVersion60Format::kTimestampFieldName - << timestamp))["chunkVersion"]); - - ASSERT_EQ(1, futureFormatChunkVersion2.majorVersion()); - ASSERT_EQ(2, futureFormatChunkVersion2.minorVersion()); - ASSERT_EQ(epoch, futureFormatChunkVersion2.epoch()); - ASSERT_EQ(timestamp, futureFormatChunkVersion2.getTimestamp()); -} - -TEST(ChunkVersionTest, ToFromBSONRoundtrip) { - ChunkVersion version(1, 2, OID::gen(), Timestamp(42)); - const auto roundTripVersion = ChunkVersion::fromBSONPositionalOrNewerFormat([&] { - BSONObjBuilder builder; - version.serializeToBSON("testVersionField", &builder); - return builder.obj(); - }()["testVersionField"]); - - ASSERT_EQ(version, roundTripVersion); -} - -TEST(ChunkVersionTest, ToFromBSONLegacyRoundtrip) { - ChunkVersion version(1, 2, OID::gen(), Timestamp(42)); - const auto roundTripVersion = ChunkVersion::fromBSONLegacyOrNewerFormat( - [&] { - BSONObjBuilder builder; - version.appendLegacyWithField(&builder, "testVersionField"); - return builder.obj(); - }(), - "testVersionField"); - - ASSERT_EQ(version, roundTripVersion); -} - -TEST(ChunkVersionTest, FromBSONMissingTimestamp) { - ASSERT_THROWS_CODE(ChunkVersion::fromBSONPositionalOrNewerFormat( - BSON("testVersionField" << BSON_ARRAY( - Timestamp(Seconds(2), 3) << OID::gen()))["testVersionField"]), - DBException, - ErrorCodes::TypeMismatch); -} - -TEST(ChunkVersionTest, FromBSON) { - const OID oid = OID::gen(); - const Timestamp timestamp(42); - ChunkVersion chunkVersionComplete = ChunkVersion::fromBSONPositionalOrNewerFormat( - BSON("testVersionField" << BSON_ARRAY(Timestamp(Seconds(2), 3) - << oid << timestamp))["testVersionField"]); - - ASSERT(chunkVersionComplete.epoch().isSet()); - ASSERT_EQ(oid, chunkVersionComplete.epoch()); - ASSERT_EQ(2u, chunkVersionComplete.majorVersion()); - ASSERT_EQ(3u, chunkVersionComplete.minorVersion()); - ASSERT_EQ(timestamp, chunkVersionComplete.getTimestamp()); -} - -TEST(ChunkVersionTest, FromBSONMissingEpoch) { - ASSERT_THROWS_CODE( - ChunkVersion::fromBSONPositionalOrNewerFormat( - BSON("testVersionField" << BSON_ARRAY(Timestamp(Seconds(2), 3)))["testVersionField"]), - DBException, - ErrorCodes::TypeMismatch); -} - -TEST(ChunkVersionTest, FromBSONMissingMajorAndMinor) { - ASSERT_THROWS_CODE(ChunkVersion::fromBSONPositionalOrNewerFormat( - BSON("testVersionField" << BSON_ARRAY(OID::gen()))["testVersionField"]), - DBException, - ErrorCodes::TypeMismatch); -} - -TEST(ChunkVersionTest, FromBSONLegacy_WithTimestamp_WithEpoch) { - const OID oid = OID::gen(); - ChunkVersion chunkVersionComplete = ChunkVersion::fromBSONLegacyOrNewerFormat( - BSON("lastmod" << Timestamp(Seconds(2), 3) << "lastmodEpoch" << oid << "lastmodTimestamp" - << Timestamp(42)), - "lastmod"); - ASSERT_EQ(Timestamp(42), chunkVersionComplete.getTimestamp()); - ASSERT_EQ(oid, chunkVersionComplete.epoch()); - ASSERT_EQ(2u, chunkVersionComplete.majorVersion()); - ASSERT_EQ(3u, chunkVersionComplete.minorVersion()); -} - -TEST(ChunkVersionTest, FromBSONLegacy_NoTimestamp_WithUnshardedEpoch) { - ChunkVersion chunkVersion = ChunkVersion::fromBSONLegacyOrNewerFormat( - BSON("lastmod" << Timestamp() << "lastmodEpoch" << ChunkVersion::UNSHARDED().epoch()), - "lastmod"); - ASSERT_EQ(ChunkVersion::UNSHARDED().getTimestamp(), chunkVersion.getTimestamp()); - ASSERT_EQ(ChunkVersion::UNSHARDED().epoch(), chunkVersion.epoch()); - ASSERT_EQ(0u, chunkVersion.majorVersion()); - ASSERT_EQ(0u, chunkVersion.minorVersion()); -} - -TEST(ChunkVersionTest, FromBSONLegacy_NoTimestamp_WithIgnoredEpoch) { - ChunkVersion chunkVersion = ChunkVersion::fromBSONLegacyOrNewerFormat( - BSON("lastmod" << Timestamp() << "lastmodEpoch" << ChunkVersion::IGNORED().epoch()), - "lastmod"); - ASSERT_EQ(ChunkVersion::IGNORED().getTimestamp(), chunkVersion.getTimestamp()); - ASSERT_EQ(ChunkVersion::IGNORED().epoch(), chunkVersion.epoch()); - ASSERT_EQ(0u, chunkVersion.majorVersion()); - ASSERT_EQ(0u, chunkVersion.minorVersion()); -} - -TEST(ChunkVersionTest, FromBSONLegacy_NoTimestamp_WithShardedEpoch_Throws) { - ASSERT_THROWS( - ChunkVersion::fromBSONLegacyOrNewerFormat( - BSON("lastmod" << Timestamp(Seconds(3), 4) << "lastmodEpoch" << OID::gen()), "lastmod"), - DBException); -} - -TEST(ChunkVersionTest, FromBSONLegacy_WithTimestamp_NoEpoch_Throws) { - ASSERT_THROWS( - ChunkVersion::fromBSONLegacyOrNewerFormat( - BSON("lastmod" << Timestamp(Seconds(3), 4) << "lastmodTimestamp" << Timestamp(42)), - "lastmod"), - DBException); -} - -TEST(ChunkVersionTest, FromBSONLegacy_NoTimestamp_NoEpoch_Throws) { - ChunkVersion chunkVersion = ChunkVersion::fromBSONLegacyOrNewerFormat( - BSON("lastmod" << Timestamp(Seconds(3), 4)), "lastmod"); - ASSERT_EQ(Timestamp(), chunkVersion.getTimestamp()); - ASSERT(!chunkVersion.epoch().isSet()); - ASSERT_EQ(3u, chunkVersion.majorVersion()); - ASSERT_EQ(4u, chunkVersion.minorVersion()); -} - TEST(ChunkVersionTest, EqualityOperators) { OID epoch = OID::gen(); Timestamp timestamp = Timestamp(1); |