diff options
Diffstat (limited to 'src/mongo/db/ops/write_ops_retryability_test.cpp')
-rw-r--r-- | src/mongo/db/ops/write_ops_retryability_test.cpp | 67 |
1 files changed, 39 insertions, 28 deletions
diff --git a/src/mongo/db/ops/write_ops_retryability_test.cpp b/src/mongo/db/ops/write_ops_retryability_test.cpp index fcdef0c6845..61738479b60 100644 --- a/src/mongo/db/ops/write_ops_retryability_test.cpp +++ b/src/mongo/db/ops/write_ops_retryability_test.cpp @@ -37,7 +37,6 @@ #include "mongo/db/ops/write_ops_exec.h" #include "mongo/db/ops/write_ops_gen.h" #include "mongo/db/ops/write_ops_retryability.h" -#include "mongo/db/query/find_and_modify_request.h" #include "mongo/db/repl/mock_repl_coord_server_fixture.h" #include "mongo/db/repl/oplog_entry.h" #include "mongo/db/repl/repl_client_info.h" @@ -99,6 +98,16 @@ void setUpTxnParticipant(OperationContext* opCtx, std::vector<int> executedStmtI txnPart.setCommittedStmtIdsForTest(std::move(executedStmtIds)); } +write_ops::FindAndModifyCommand makeFindAndModifyRequest( + NamespaceString fullNs, BSONObj query, boost::optional<write_ops::UpdateModification> update) { + auto request = write_ops::FindAndModifyCommand(fullNs); + request.setQuery(query); + if (update) { + request.setUpdate(std::move(update)); + } + return request; +} + TEST_F(WriteOpsRetryability, ParseOplogEntryForUpdate) { const auto entry = assertGet(repl::OplogEntry::parse( BSON("ts" << Timestamp(50, 10) << "t" << 1LL << "op" @@ -343,7 +352,7 @@ protected: * BSONObjBuilder. */ static BSONObj constructFindAndModifyRetryResult(OperationContext* opCtx, - const FindAndModifyRequest& request, + const write_ops::FindAndModifyCommand& request, const repl::OplogEntry& oplogEntry) { BSONObjBuilder builder; parseOplogEntryForFindAndModify(opCtx, request, oplogEntry, &builder); @@ -354,10 +363,10 @@ protected: const NamespaceString kNs("test.user"); TEST_F(FindAndModifyRetryability, BasicUpsertReturnNew) { - auto request = FindAndModifyRequest::makeUpdate( + auto request = makeFindAndModifyRequest( kNs, BSONObj(), write_ops::UpdateModification::parseFromClassicUpdate(BSONObj())); request.setUpsert(true); - request.setShouldReturnNew(true); + request.setNew(true); auto insertOplog = makeOplogEntry(repl::OpTime(), // optime repl::OpTypeEnum::kInsert, // op type @@ -378,10 +387,10 @@ TEST_F(FindAndModifyRetryability, BasicUpsertReturnNew) { } TEST_F(FindAndModifyRetryability, BasicUpsertReturnOld) { - auto request = FindAndModifyRequest::makeUpdate( + auto request = makeFindAndModifyRequest( kNs, BSONObj(), write_ops::UpdateModification::parseFromClassicUpdate(BSONObj())); request.setUpsert(true); - request.setShouldReturnNew(false); + request.setNew(false); auto insertOplog = makeOplogEntry(repl::OpTime(), // optime repl::OpTypeEnum::kInsert, // op type @@ -399,10 +408,10 @@ TEST_F(FindAndModifyRetryability, BasicUpsertReturnOld) { } TEST_F(FindAndModifyRetryability, NestedUpsert) { - auto request = FindAndModifyRequest::makeUpdate( + auto request = makeFindAndModifyRequest( kNs, BSONObj(), write_ops::UpdateModification::parseFromClassicUpdate(BSONObj())); request.setUpsert(true); - request.setShouldReturnNew(true); + request.setNew(true); auto innerOplog = makeOplogEntry(repl::OpTime(), // optime repl::OpTypeEnum::kInsert, // op type @@ -422,7 +431,7 @@ TEST_F(FindAndModifyRetryability, NestedUpsert) { } TEST_F(FindAndModifyRetryability, AttemptingToRetryUpsertWithUpdateWithoutUpsertErrors) { - auto request = FindAndModifyRequest::makeUpdate( + auto request = makeFindAndModifyRequest( kNs, BSONObj(), write_ops::UpdateModification::parseFromClassicUpdate(BSONObj())); request.setUpsert(false); @@ -436,9 +445,9 @@ TEST_F(FindAndModifyRetryability, AttemptingToRetryUpsertWithUpdateWithoutUpsert } TEST_F(FindAndModifyRetryability, ErrorIfRequestIsPostImageButOplogHasPre) { - auto request = FindAndModifyRequest::makeUpdate( + auto request = makeFindAndModifyRequest( kNs, BSONObj(), write_ops::UpdateModification::parseFromClassicUpdate(BSONObj())); - request.setShouldReturnNew(true); + request.setNew(true); repl::OpTime imageOpTime(Timestamp(120, 3), 1); auto noteOplog = makeOplogEntry(imageOpTime, // optime @@ -461,9 +470,9 @@ TEST_F(FindAndModifyRetryability, ErrorIfRequestIsPostImageButOplogHasPre) { } TEST_F(FindAndModifyRetryability, ErrorIfRequestIsUpdateButOplogIsDelete) { - auto request = FindAndModifyRequest::makeUpdate( + auto request = makeFindAndModifyRequest( kNs, BSONObj(), write_ops::UpdateModification::parseFromClassicUpdate(BSONObj())); - request.setShouldReturnNew(true); + request.setNew(true); repl::OpTime imageOpTime(Timestamp(120, 3), 1); auto noteOplog = makeOplogEntry(imageOpTime, // optime @@ -485,9 +494,9 @@ TEST_F(FindAndModifyRetryability, ErrorIfRequestIsUpdateButOplogIsDelete) { } TEST_F(FindAndModifyRetryability, ErrorIfRequestIsPreImageButOplogHasPost) { - auto request = FindAndModifyRequest::makeUpdate( + auto request = makeFindAndModifyRequest( kNs, BSONObj(), write_ops::UpdateModification::parseFromClassicUpdate(BSONObj())); - request.setShouldReturnNew(false); + request.setNew(false); repl::OpTime imageOpTime(Timestamp(120, 3), 1); auto noteOplog = makeOplogEntry(imageOpTime, // optime @@ -510,9 +519,9 @@ TEST_F(FindAndModifyRetryability, ErrorIfRequestIsPreImageButOplogHasPost) { } TEST_F(FindAndModifyRetryability, UpdateWithPreImage) { - auto request = FindAndModifyRequest::makeUpdate( + auto request = makeFindAndModifyRequest( kNs, BSONObj(), write_ops::UpdateModification::parseFromClassicUpdate(BSONObj())); - request.setShouldReturnNew(false); + request.setNew(false); repl::OpTime imageOpTime(Timestamp(120, 3), 1); auto noteOplog = makeOplogEntry(imageOpTime, // optime @@ -537,9 +546,9 @@ TEST_F(FindAndModifyRetryability, UpdateWithPreImage) { } TEST_F(FindAndModifyRetryability, NestedUpdateWithPreImage) { - auto request = FindAndModifyRequest::makeUpdate( + auto request = makeFindAndModifyRequest( kNs, BSONObj(), write_ops::UpdateModification::parseFromClassicUpdate(BSONObj())); - request.setShouldReturnNew(false); + request.setNew(false); repl::OpTime imageOpTime(Timestamp(120, 3), 1); auto noteOplog = makeOplogEntry(imageOpTime, // optime @@ -570,9 +579,9 @@ TEST_F(FindAndModifyRetryability, NestedUpdateWithPreImage) { } TEST_F(FindAndModifyRetryability, UpdateWithPostImage) { - auto request = FindAndModifyRequest::makeUpdate( + auto request = makeFindAndModifyRequest( kNs, BSONObj(), write_ops::UpdateModification::parseFromClassicUpdate(BSONObj())); - request.setShouldReturnNew(true); + request.setNew(true); repl::OpTime imageOpTime(Timestamp(120, 3), 1); auto noteOplog = makeOplogEntry(imageOpTime, // optime @@ -597,9 +606,9 @@ TEST_F(FindAndModifyRetryability, UpdateWithPostImage) { } TEST_F(FindAndModifyRetryability, NestedUpdateWithPostImage) { - auto request = FindAndModifyRequest::makeUpdate( + auto request = makeFindAndModifyRequest( kNs, BSONObj(), write_ops::UpdateModification::parseFromClassicUpdate(BSONObj())); - request.setShouldReturnNew(true); + request.setNew(true); repl::OpTime imageOpTime(Timestamp(120, 3), 1); auto noteOplog = makeOplogEntry(imageOpTime, // optime @@ -630,9 +639,9 @@ TEST_F(FindAndModifyRetryability, NestedUpdateWithPostImage) { } TEST_F(FindAndModifyRetryability, UpdateWithPostImageButOplogDoesNotExistShouldError) { - auto request = FindAndModifyRequest::makeUpdate( + auto request = makeFindAndModifyRequest( kNs, BSONObj(), write_ops::UpdateModification::parseFromClassicUpdate(BSONObj())); - request.setShouldReturnNew(true); + request.setNew(true); repl::OpTime imageOpTime(Timestamp(120, 3), 1); auto updateOplog = makeOplogEntry(repl::OpTime(), // optime @@ -648,7 +657,8 @@ TEST_F(FindAndModifyRetryability, UpdateWithPostImageButOplogDoesNotExistShouldE } TEST_F(FindAndModifyRetryability, BasicRemove) { - auto request = FindAndModifyRequest::makeRemove(kNs, BSONObj()); + auto request = makeFindAndModifyRequest(kNs, BSONObj(), boost::none); + request.setRemove(true); repl::OpTime imageOpTime(Timestamp(120, 3), 1); auto noteOplog = makeOplogEntry(imageOpTime, // optime @@ -673,7 +683,8 @@ TEST_F(FindAndModifyRetryability, BasicRemove) { } TEST_F(FindAndModifyRetryability, NestedRemove) { - auto request = FindAndModifyRequest::makeRemove(kNs, BSONObj()); + auto request = makeFindAndModifyRequest(kNs, BSONObj(), boost::none); + request.setRemove(true); repl::OpTime imageOpTime(Timestamp(120, 3), 1); auto noteOplog = makeOplogEntry(imageOpTime, // optime @@ -703,7 +714,7 @@ TEST_F(FindAndModifyRetryability, NestedRemove) { } TEST_F(FindAndModifyRetryability, AttemptingToRetryUpsertWithRemoveErrors) { - auto request = FindAndModifyRequest::makeRemove(kNs, BSONObj()); + auto request = makeFindAndModifyRequest(kNs, BSONObj(), boost::none); auto insertOplog = makeOplogEntry(repl::OpTime(), // optime repl::OpTypeEnum::kInsert, // op type |