summaryrefslogtreecommitdiff
path: root/src/mongo/db/record_id_test.cpp
diff options
context:
space:
mode:
authorLouis Williams <louis.williams@mongodb.com>2021-05-13 17:53:18 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-05-13 23:46:50 +0000
commit72ed8227aa029afd554aa5809d36529ac145c3e8 (patch)
tree9e9e3bdfec2e0bc11aab5b933bc6d35faacaf817 /src/mongo/db/record_id_test.cpp
parent9c33afdc8a9e78537bc695b07c1bf6af2e56b3a2 (diff)
downloadmongo-72ed8227aa029afd554aa5809d36529ac145c3e8.tar.gz
SERVER-56233 Support wildcard multikey paths on clustered collections
Diffstat (limited to 'src/mongo/db/record_id_test.cpp')
-rw-r--r--src/mongo/db/record_id_test.cpp37
1 files changed, 34 insertions, 3 deletions
diff --git a/src/mongo/db/record_id_test.cpp b/src/mongo/db/record_id_test.cpp
index 5e40c3ea05d..821440ef34d 100644
--- a/src/mongo/db/record_id_test.cpp
+++ b/src/mongo/db/record_id_test.cpp
@@ -143,13 +143,44 @@ TEST(RecordId, OidTestCompare) {
ASSERT_GT(oidMax, rid0);
}
-TEST(RecordId, Reservations) {
+TEST(RecordId, ReservationsLong) {
// It's important that reserved IDs like this never change.
RecordId ridReserved(RecordId::kMaxRepr - (1024 * 1024));
ASSERT_EQ(ridReserved,
- RecordIdReservations::reservedIdFor(ReservationId::kWildcardMultikeyMetadataId));
- ASSERT(RecordIdReservations::isReserved(ridReserved));
+ record_id_helpers::reservedIdFor(
+ record_id_helpers::ReservationId::kWildcardMultikeyMetadataId, KeyFormat::Long));
+ ASSERT(record_id_helpers::isReserved(ridReserved));
ASSERT(ridReserved.isValid());
+
+ // Create a new RecordId in the reserved range and ensure it is considered reserved and unique.
+ RecordId inReservedRange(RecordId::kMaxRepr - 1);
+ ASSERT(record_id_helpers::isReserved(inReservedRange));
+ ASSERT(inReservedRange.isValid());
+ ASSERT_NE(inReservedRange,
+ record_id_helpers::reservedIdFor(
+ record_id_helpers::ReservationId::kWildcardMultikeyMetadataId, KeyFormat::Long));
+}
+
+TEST(RecordId, ReservationsStr) {
+ // It's important that reserved IDs like this never change.
+ constexpr char buf[] = {static_cast<char>(0xFF), 0};
+ RecordId ridReserved(buf, sizeof(buf));
+ ASSERT_EQ(
+ ridReserved,
+ record_id_helpers::reservedIdFor(
+ record_id_helpers::ReservationId::kWildcardMultikeyMetadataId, KeyFormat::String));
+ ASSERT(record_id_helpers::isReserved(ridReserved));
+ ASSERT(ridReserved.isValid());
+
+ // Create a new RecordId in the reserved range and ensure it is considered reserved and unique.
+ constexpr char buf2[] = {static_cast<char>(0xFF), static_cast<char>(0xFF)};
+ RecordId inReservedRange(buf2, sizeof(buf2));
+ ASSERT(record_id_helpers::isReserved(inReservedRange));
+ ASSERT(inReservedRange.isValid());
+ ASSERT_NE(
+ inReservedRange,
+ record_id_helpers::reservedIdFor(
+ record_id_helpers::ReservationId::kWildcardMultikeyMetadataId, KeyFormat::String));
}
TEST(RecordId, RoundTripSerialize) {