summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands/command_mirroring_test.cpp
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-11 15:07:35 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-11 15:07:35 -0300
commit4cb8841196d0625dfa3825aa326f071cd27c7b8b (patch)
tree1682a647d4463397c119183369ae6f750d5fdcff /src/mongo/db/commands/command_mirroring_test.cpp
parentaa03c6362cbaa767638e6eed9b031d86dd2643d1 (diff)
parent8f0827553e09872941945a093b647a4211a9db7f (diff)
Update upstream source from tag 'upstream/6.0.0'master
Update to upstream version '6.0.0' with Debian dir 5604a80ec1c96ca76f25f40d78e6ef855abec322
Diffstat (limited to 'src/mongo/db/commands/command_mirroring_test.cpp')
-rw-r--r--src/mongo/db/commands/command_mirroring_test.cpp109
1 files changed, 22 insertions, 87 deletions
diff --git a/src/mongo/db/commands/command_mirroring_test.cpp b/src/mongo/db/commands/command_mirroring_test.cpp
index 8222cc9b74e..286d20813a2 100644
--- a/src/mongo/db/commands/command_mirroring_test.cpp
+++ b/src/mongo/db/commands/command_mirroring_test.cpp
@@ -38,7 +38,6 @@
#include "mongo/unittest/unittest.h"
namespace mongo {
-
namespace {
class CommandMirroringTest : public unittest::Test {
@@ -109,7 +108,6 @@ public:
void setUp() override {
CommandMirroringTest::setUp();
shardVersion = boost::none;
- databaseVersion = boost::none;
}
std::string commandName() override {
@@ -121,10 +119,6 @@ public:
if (shardVersion) {
args.push_back(shardVersion.get());
}
- if (databaseVersion) {
- args.push_back(databaseVersion.value());
- }
-
auto request = CommandMirroringTest::makeCommand(coll, args);
// Directly add `updates` to `OpMsg::sequences` to emulate `OpMsg::parse()` behavior.
@@ -140,7 +134,6 @@ public:
}
boost::optional<BSONObj> shardVersion;
- boost::optional<BSONObj> databaseVersion;
};
TEST_F(UpdateCommandTest, NoQuery) {
@@ -199,26 +192,21 @@ TEST_F(UpdateCommandTest, MultipleQueries) {
ASSERT_EQ(mirroredObj["batchSize"].Int(), 1);
}
-TEST_F(UpdateCommandTest, ValidateShardVersionAndDatabaseVersion) {
+TEST_F(UpdateCommandTest, ValidateShardVersion) {
auto update = BSON("q" << BSONObj() << "u" << BSON("$set" << BSON("_id" << 1)));
{
auto mirroredObj = createCommandAndGetMirrored(kCollection, {update});
ASSERT_FALSE(mirroredObj.hasField("shardVersion"));
- ASSERT_FALSE(mirroredObj.hasField("databaseVersion"));
}
const auto kShardVersion = 123;
- const auto kDatabaseVersion = 456;
shardVersion = BSON("shardVersion" << kShardVersion);
- databaseVersion = BSON("databaseVersion" << kDatabaseVersion);
{
auto mirroredObj = createCommandAndGetMirrored(kCollection, {update});
ASSERT_TRUE(mirroredObj.hasField("shardVersion"));
- ASSERT_TRUE(mirroredObj.hasField("databaseVersion"));
ASSERT_EQ(mirroredObj["shardVersion"].Int(), kShardVersion);
- ASSERT_EQ(mirroredObj["databaseVersion"].Int(), kDatabaseVersion);
}
}
@@ -240,8 +228,7 @@ public:
"max",
"batchSize",
"singleBatch",
- "shardVersion",
- "databaseVersion"};
+ "shardVersion"};
}
void checkFieldNamesAreAllowed(BSONObj& mirroredObj) {
@@ -276,8 +263,7 @@ TEST_F(FindCommandTest, MirrorableKeys) {
BSON("awaitData" << true),
BSON("allowPartialResults" << true),
BSON("collation" << BSONObj()),
- BSON("shardVersion" << BSONObj()),
- BSON("databaseVersion" << BSONObj())};
+ BSON("shardVersion" << BSONObj())};
auto mirroredObj = createCommandAndGetMirrored(kCollection, findArgs);
checkFieldNamesAreAllowed(mirroredObj);
@@ -305,8 +291,7 @@ TEST_F(FindCommandTest, ValidateMirroredQuery) {
const auto min = BSONObj();
const auto max = BSONObj();
- const auto shardVersion = BSON("v" << 123);
- const auto databaseVersion = BSON("v" << 456);
+ const auto shardVersion = BSONObj();
auto findArgs = {BSON("filter" << filter),
BSON("skip" << skip),
@@ -316,8 +301,7 @@ TEST_F(FindCommandTest, ValidateMirroredQuery) {
BSON("collation" << collation),
BSON("min" << min),
BSON("max" << max),
- BSON("shardVersion" << shardVersion),
- BSON("databaseVersion" << databaseVersion)};
+ BSON("shardVersion" << shardVersion)};
auto mirroredObj = createCommandAndGetMirrored(kCollection, findArgs);
@@ -331,27 +315,21 @@ TEST_F(FindCommandTest, ValidateMirroredQuery) {
ASSERT(compareBSONObjs(mirroredObj["min"].Obj(), min));
ASSERT(compareBSONObjs(mirroredObj["max"].Obj(), max));
ASSERT(compareBSONObjs(mirroredObj["shardVersion"].Obj(), shardVersion));
- ASSERT(compareBSONObjs(mirroredObj["databaseVersion"].Obj(), databaseVersion));
}
-TEST_F(FindCommandTest, ValidateShardVersionAndDatabaseVersion) {
+TEST_F(FindCommandTest, ValidateShardVersion) {
std::vector<BSONObj> findArgs = {BSON("filter" << BSONObj())};
{
auto mirroredObj = createCommandAndGetMirrored(kCollection, findArgs);
ASSERT_FALSE(mirroredObj.hasField("shardVersion"));
- ASSERT_FALSE(mirroredObj.hasField("databaseVersion"));
}
const auto kShardVersion = 123;
- const auto kDatabaseVersion = 456;
findArgs.push_back(BSON("shardVersion" << kShardVersion));
- findArgs.push_back(BSON("databaseVersion" << kDatabaseVersion));
{
auto mirroredObj = createCommandAndGetMirrored(kCollection, findArgs);
ASSERT_TRUE(mirroredObj.hasField("shardVersion"));
- ASSERT_TRUE(mirroredObj.hasField("databaseVersion"));
ASSERT_EQ(mirroredObj["shardVersion"].Int(), kShardVersion);
- ASSERT_EQ(mirroredObj["databaseVersion"].Int(), kDatabaseVersion);
}
}
@@ -362,14 +340,7 @@ public:
}
std::vector<std::string> getAllowedKeys() const override {
- return {"sort",
- "collation",
- "find",
- "filter",
- "batchSize",
- "singleBatch",
- "shardVersion",
- "databaseVersion"};
+ return {"sort", "collation", "find", "filter", "batchSize", "singleBatch", "shardVersion"};
}
};
@@ -385,9 +356,7 @@ TEST_F(FindAndModifyCommandTest, MirrorableKeys) {
BSON("writeConcern" << BSONObj()),
BSON("maxTimeMS" << 100),
BSON("collation" << BSONObj()),
- BSON("arrayFilters" << BSONArray()),
- BSON("shardVersion" << 123),
- BSON("databaseVersion" << 456)};
+ BSON("arrayFilters" << BSONArray())};
auto mirroredObj = createCommandAndGetMirrored(kCollection, findAndModifyArgs);
checkFieldNamesAreAllowed(mirroredObj);
@@ -412,16 +381,12 @@ TEST_F(FindAndModifyCommandTest, ValidateMirroredQuery) {
constexpr auto upsert = true;
const auto collation = BSON("locale"
<< "\"fr\"");
- const auto shardVersion = BSON("v" << 123);
- const auto databaseVersion = BSON("v" << 456);
auto findAndModifyArgs = {BSON("query" << query),
BSON("sort" << sortObj),
BSON("update" << update),
BSON("upsert" << upsert),
- BSON("collation" << collation),
- BSON("shardVersion" << shardVersion),
- BSON("databaseVersion" << databaseVersion)};
+ BSON("collation" << collation)};
auto mirroredObj = createCommandAndGetMirrored(kCollection, findAndModifyArgs);
@@ -430,11 +395,9 @@ TEST_F(FindAndModifyCommandTest, ValidateMirroredQuery) {
ASSERT(compareBSONObjs(mirroredObj["filter"].Obj(), query));
ASSERT(compareBSONObjs(mirroredObj["sort"].Obj(), sortObj));
ASSERT(compareBSONObjs(mirroredObj["collation"].Obj(), collation));
- ASSERT(compareBSONObjs(mirroredObj["shardVersion"].Obj(), shardVersion));
- ASSERT(compareBSONObjs(mirroredObj["databaseVersion"].Obj(), databaseVersion));
}
-TEST_F(FindAndModifyCommandTest, ValidateShardVersionAndDatabaseVersion) {
+TEST_F(FindAndModifyCommandTest, ValidateShardVersion) {
std::vector<BSONObj> findAndModifyArgs = {BSON("query" << BSON("name"
<< "Andy")),
BSON("update" << BSON("$inc" << BSON("score" << 1)))};
@@ -442,19 +405,14 @@ TEST_F(FindAndModifyCommandTest, ValidateShardVersionAndDatabaseVersion) {
{
auto mirroredObj = createCommandAndGetMirrored(kCollection, findAndModifyArgs);
ASSERT_FALSE(mirroredObj.hasField("shardVersion"));
- ASSERT_FALSE(mirroredObj.hasField("databaseVersion"));
}
const auto kShardVersion = 123;
- const auto kDatabaseVersion = 456;
findAndModifyArgs.push_back(BSON("shardVersion" << kShardVersion));
- findAndModifyArgs.push_back(BSON("databaseVersion" << kDatabaseVersion));
{
auto mirroredObj = createCommandAndGetMirrored(kCollection, findAndModifyArgs);
ASSERT_TRUE(mirroredObj.hasField("shardVersion"));
- ASSERT_TRUE(mirroredObj.hasField("databaseVersion"));
ASSERT_EQ(mirroredObj["shardVersion"].Int(), kShardVersion);
- ASSERT_EQ(mirroredObj["databaseVersion"].Int(), kDatabaseVersion);
}
}
@@ -465,7 +423,7 @@ public:
}
std::vector<std::string> getAllowedKeys() const override {
- return {"distinct", "key", "query", "collation", "shardVersion", "databaseVersion"};
+ return {"distinct", "key", "query", "collation", "shardVersion"};
}
};
@@ -475,8 +433,7 @@ TEST_F(DistinctCommandTest, MirrorableKeys) {
BSON("query" << BSONObj()),
BSON("readConcern" << BSONObj()),
BSON("collation" << BSONObj()),
- BSON("shardVersion" << BSONObj()),
- BSON("databaseVersion" << BSONObj())};
+ BSON("shardVersion" << BSONObj())};
auto mirroredObj = createCommandAndGetMirrored(kCollection, distinctArgs);
checkFieldNamesAreAllowed(mirroredObj);
@@ -489,15 +446,13 @@ TEST_F(DistinctCommandTest, ValidateMirroredQuery) {
const auto readConcern = BSON("level"
<< "majority");
const auto collation = BSON("strength" << 1);
- const auto shardVersion = BSON("v" << 123);
- const auto databaseVersion = BSON("v" << 456);
+ const auto shardVersion = BSONObj();
auto distinctArgs = {BSON("key" << key),
BSON("query" << query),
BSON("readConcern" << readConcern),
BSON("collation" << collation),
- BSON("shardVersion" << shardVersion),
- BSON("databaseVersion" << databaseVersion)};
+ BSON("shardVersion" << shardVersion)};
auto mirroredObj = createCommandAndGetMirrored(kCollection, distinctArgs);
@@ -507,27 +462,23 @@ TEST_F(DistinctCommandTest, ValidateMirroredQuery) {
ASSERT(compareBSONObjs(mirroredObj["query"].Obj(), query));
ASSERT(compareBSONObjs(mirroredObj["collation"].Obj(), collation));
ASSERT(compareBSONObjs(mirroredObj["shardVersion"].Obj(), shardVersion));
- ASSERT(compareBSONObjs(mirroredObj["databaseVersion"].Obj(), databaseVersion));
}
-TEST_F(DistinctCommandTest, ValidateShardVersionAndDatabaseVersion) {
+TEST_F(DistinctCommandTest, ValidateShardVersion) {
+ const auto kCollection = "test";
+
std::vector<BSONObj> distinctArgs = {BSON("distinct" << BSONObj())};
{
auto mirroredObj = createCommandAndGetMirrored(kCollection, distinctArgs);
ASSERT_FALSE(mirroredObj.hasField("shardVersion"));
- ASSERT_FALSE(mirroredObj.hasField("databaseVersion"));
}
const auto kShardVersion = 123;
- const auto kDatabaseVersion = 456;
distinctArgs.push_back(BSON("shardVersion" << kShardVersion));
- distinctArgs.push_back(BSON("databaseVersion" << kDatabaseVersion));
{
auto mirroredObj = createCommandAndGetMirrored(kCollection, distinctArgs);
ASSERT_TRUE(mirroredObj.hasField("shardVersion"));
- ASSERT_TRUE(mirroredObj.hasField("databaseVersion"));
ASSERT_EQ(mirroredObj["shardVersion"].Int(), kShardVersion);
- ASSERT_EQ(mirroredObj["databaseVersion"].Int(), kDatabaseVersion);
}
}
@@ -538,14 +489,7 @@ public:
}
std::vector<std::string> getAllowedKeys() const override {
- return {"count",
- "query",
- "skip",
- "limit",
- "hint",
- "collation",
- "shardVersion",
- "databaseVersion"};
+ return {"count", "query", "skip", "limit", "hint", "collation", "shardVersion"};
}
};
@@ -556,8 +500,7 @@ TEST_F(CountCommandTest, MirrorableKeys) {
BSON("hint" << BSONObj()),
BSON("readConcern" << BSONObj()),
BSON("collation" << BSONObj()),
- BSON("shardVersion" << BSONObj()),
- BSON("databaseVersion" << BSONObj())};
+ BSON("shardVersion" << BSONObj())};
auto mirroredObj = createCommandAndGetMirrored(kCollection, countArgs);
checkFieldNamesAreAllowed(mirroredObj);
@@ -568,14 +511,12 @@ TEST_F(CountCommandTest, ValidateMirroredQuery) {
<< "Delivered");
const auto hint = BSON("status" << 1);
constexpr auto limit = 1000;
- const auto shardVersion = BSON("v" << 123);
- const auto databaseVersion = BSON("v" << 456);
+ const auto shardVersion = BSONObj();
auto countArgs = {BSON("query" << query),
BSON("hint" << hint),
BSON("limit" << limit),
- BSON("shardVersion" << shardVersion),
- BSON("databaseVersion" << databaseVersion)};
+ BSON("shardVersion" << shardVersion)};
auto mirroredObj = createCommandAndGetMirrored(kCollection, countArgs);
ASSERT_EQ(mirroredObj["count"].String(), kCollection);
@@ -585,27 +526,21 @@ TEST_F(CountCommandTest, ValidateMirroredQuery) {
ASSERT(compareBSONObjs(mirroredObj["hint"].Obj(), hint));
ASSERT_EQ(mirroredObj["limit"].Int(), limit);
ASSERT(compareBSONObjs(mirroredObj["shardVersion"].Obj(), shardVersion));
- ASSERT(compareBSONObjs(mirroredObj["databaseVersion"].Obj(), databaseVersion));
}
-TEST_F(CountCommandTest, ValidateShardVersionAndDatabaseVersion) {
+TEST_F(CountCommandTest, ValidateShardVersion) {
std::vector<BSONObj> countArgs = {BSON("count" << BSONObj())};
{
auto mirroredObj = createCommandAndGetMirrored(kCollection, countArgs);
ASSERT_FALSE(mirroredObj.hasField("shardVersion"));
- ASSERT_FALSE(mirroredObj.hasField("databaseVersion"));
}
const auto kShardVersion = 123;
- const auto kDatabaseVersion = 456;
countArgs.push_back(BSON("shardVersion" << kShardVersion));
- countArgs.push_back(BSON("databaseVersion" << kDatabaseVersion));
{
auto mirroredObj = createCommandAndGetMirrored(kCollection, countArgs);
ASSERT_TRUE(mirroredObj.hasField("shardVersion"));
- ASSERT_TRUE(mirroredObj.hasField("databaseVersion"));
ASSERT_EQ(mirroredObj["shardVersion"].Int(), kShardVersion);
- ASSERT_EQ(mirroredObj["databaseVersion"].Int(), kDatabaseVersion);
}
}