summaryrefslogtreecommitdiff
path: root/src/mongo/db/ops/write_ops_retryability_test.cpp
diff options
context:
space:
mode:
authorRandolph Tan <randolph@10gen.com>2017-09-28 10:45:49 -0400
committerRandolph Tan <randolph@10gen.com>2017-09-28 10:45:49 -0400
commitf24fbb0011c6ded9101f08574e7cd07e63690a9b (patch)
treee1452828e142748f1f03be61a00c32dbb3ed6bc1 /src/mongo/db/ops/write_ops_retryability_test.cpp
parentd293f6857bcb36b26ca8fa03d90299714fe060de (diff)
downloadmongo-f24fbb0011c6ded9101f08574e7cd07e63690a9b.tar.gz
Revert "Revert "Revert "SERVER-30894 Implement command for transferring session information during migration"""
This reverts commit aaa0c96532ba6a8ea9146e4298c6bf1cc6b27f9e.
Diffstat (limited to 'src/mongo/db/ops/write_ops_retryability_test.cpp')
-rw-r--r--src/mongo/db/ops/write_ops_retryability_test.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mongo/db/ops/write_ops_retryability_test.cpp b/src/mongo/db/ops/write_ops_retryability_test.cpp
index a50c51eba58..f3415ae2427 100644
--- a/src/mongo/db/ops/write_ops_retryability_test.cpp
+++ b/src/mongo/db/ops/write_ops_retryability_test.cpp
@@ -273,6 +273,23 @@ TEST_F(FindAndModifyRetryability, NestedUpsert) {
ASSERT_BSONOBJ_EQ(BSON("x" << 1), result.getValue());
}
+TEST_F(FindAndModifyRetryability, ErrorIfRequestIsUpsertButOplogIsUpdate) {
+ auto request = FindAndModifyRequest::makeUpdate(kNs, BSONObj(), BSONObj());
+ request.setUpsert(true);
+
+ Timestamp imageTs(120, 3);
+ repl::OplogEntry noteOplog(
+ repl::OpTime(imageTs, 1), 0, repl::OpTypeEnum::kNoop, kNs, BSON("x" << 1 << "z" << 1));
+
+ insertOplogEntry(noteOplog);
+
+ repl::OplogEntry oplog(
+ repl::OpTime(), 0, repl::OpTypeEnum::kUpdate, kNs, BSON("x" << 1), BSON("y" << 1));
+ oplog.setPreImageTs(imageTs);
+
+ ASSERT_THROWS(parseOplogEntryForFindAndModify(opCtx(), request, oplog), AssertionException);
+}
+
TEST_F(FindAndModifyRetryability, AttemptingToRetryUpsertWithUpdateWithoutUpsertErrors) {
auto request = FindAndModifyRequest::makeUpdate(kNs, BSONObj(), BSONObj());
request.setUpsert(false);