summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/idempotency_test.cpp
diff options
context:
space:
mode:
authorA. Jesse Jiryu Davis <jesse@mongodb.com>2019-08-30 18:25:22 +0000
committerevergreen <evergreen@mongodb.com>2019-08-30 18:25:22 +0000
commitfca8f46ebfb94eebb5784ab54eb4bb774101e947 (patch)
tree87c93b1299e3150a29ee49bf14b0fea9b179aea9 /src/mongo/db/repl/idempotency_test.cpp
parent31960610ac664d0f8cd026ab8481dc7a78edb957 (diff)
downloadmongo-fca8f46ebfb94eebb5784ab54eb4bb774101e947.tar.gz
SERVER-43043 Test applyOps on missing nested fields
Diffstat (limited to 'src/mongo/db/repl/idempotency_test.cpp')
-rw-r--r--src/mongo/db/repl/idempotency_test.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mongo/db/repl/idempotency_test.cpp b/src/mongo/db/repl/idempotency_test.cpp
index e76599bc86a..96143015561 100644
--- a/src/mongo/db/repl/idempotency_test.cpp
+++ b/src/mongo/db/repl/idempotency_test.cpp
@@ -197,6 +197,21 @@ TEST_F(RandomizedIdempotencyTest, CheckUpdateSequencesAreIdempotent) {
runIdempotencyTestCase();
}
+TEST_F(IdempotencyTest, UpdateTwoFields) {
+ ASSERT_OK(
+ ReplicationCoordinator::get(_opCtx.get())->setFollowerMode(MemberState::RS_RECOVERING));
+
+ ASSERT_OK(runOpInitialSync(createCollection(kUuid)));
+ ASSERT_OK(runOpInitialSync(insert(fromjson("{_id: 1, y: [0]}"))));
+
+ auto updateOp1 = update(1, fromjson("{$set: {x: 1}}"));
+ auto updateOp2 = update(1, fromjson("{$set: {x: 2, 'y.0': 2}}"));
+ auto updateOp3 = update(1, fromjson("{$set: {y: 3}}"));
+
+ auto ops = {updateOp1, updateOp2, updateOp3};
+ testOpsAreIdempotent(ops);
+}
+
} // namespace
} // namespace repl
} // namespace mongo