diff options
Diffstat (limited to 'src/mongo/db/repl/collection_cloner_test.cpp')
-rw-r--r-- | src/mongo/db/repl/collection_cloner_test.cpp | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/src/mongo/db/repl/collection_cloner_test.cpp b/src/mongo/db/repl/collection_cloner_test.cpp index 8322d29fdf3..9f7a31e6a93 100644 --- a/src/mongo/db/repl/collection_cloner_test.cpp +++ b/src/mongo/db/repl/collection_cloner_test.cpp @@ -1133,68 +1133,6 @@ TEST_F(CollectionClonerTest, LastBatchContainsNoDocuments) { ASSERT_FALSE(collectionCloner->isActive()); } -TEST_F(CollectionClonerTest, MiddleBatchContainsNoDocuments) { - ASSERT_OK(collectionCloner->startup()); - ASSERT_TRUE(collectionCloner->isActive()); - - { - executor::NetworkInterfaceMock::InNetworkGuard guard(getNet()); - processNetworkResponse(createCountResponse(0)); - processNetworkResponse(createListIndexesResponse(0, BSON_ARRAY(idIndexSpec))); - } - ASSERT_TRUE(collectionCloner->isActive()); - - collectionCloner->waitForDbWorker(); - ASSERT_TRUE(collectionCloner->isActive()); - ASSERT_TRUE(collectionStats.initCalled); - - BSONArray emptyArray; - { - executor::NetworkInterfaceMock::InNetworkGuard guard(getNet()); - processNetworkResponse(createCursorResponse(1, emptyArray)); - } - - collectionCloner->waitForDbWorker(); - ASSERT_TRUE(collectionCloner->isActive()); - - const BSONObj doc = BSON("_id" << 1); - { - executor::NetworkInterfaceMock::InNetworkGuard guard(getNet()); - processNetworkResponse(createCursorResponse(1, BSON_ARRAY(doc))); - } - - collectionCloner->waitForDbWorker(); - ASSERT_EQUALS(1, collectionStats.insertCount); - - ASSERT_EQUALS(getDetectableErrorStatus(), getStatus()); - ASSERT_TRUE(collectionCloner->isActive()); - - { - executor::NetworkInterfaceMock::InNetworkGuard guard(getNet()); - processNetworkResponse(createCursorResponse(1, emptyArray, "nextBatch")); - } - - collectionCloner->waitForDbWorker(); - ASSERT_EQUALS(1, collectionStats.insertCount); - - ASSERT_EQUALS(getDetectableErrorStatus(), getStatus()); - ASSERT_TRUE(collectionCloner->isActive()); - - const BSONObj doc2 = BSON("_id" << 2); - { - executor::NetworkInterfaceMock::InNetworkGuard guard(getNet()); - processNetworkResponse(createFinalCursorResponse(BSON_ARRAY(doc2))); - } - - collectionCloner->join(); - - ASSERT_EQUALS(2, collectionStats.insertCount); - ASSERT_TRUE(collectionStats.commitCalled); - - ASSERT_OK(getStatus()); - ASSERT_FALSE(collectionCloner->isActive()); -} - TEST_F(CollectionClonerTest, CollectionClonerTransitionsToCompleteIfShutdownBeforeStartup) { collectionCloner->shutdown(); ASSERT_EQUALS(ErrorCodes::ShutdownInProgress, collectionCloner->startup()); @@ -1975,99 +1913,6 @@ TEST_F(ParallelCollectionClonerTest, InsertDocumentsWithMultipleCursorsOfDiffere ASSERT_FALSE(collectionCloner->isActive()); } -TEST_F(ParallelCollectionClonerTest, MiddleBatchContainsNoDocumentsWithMultipleCursors) { - ASSERT_OK(collectionCloner->startup()); - ASSERT_TRUE(collectionCloner->isActive()); - - { - executor::NetworkInterfaceMock::InNetworkGuard guard(getNet()); - processNetworkResponse(createCountResponse(0)); - processNetworkResponse(createListIndexesResponse(0, BSON_ARRAY(idIndexSpec))); - } - ASSERT_TRUE(collectionCloner->isActive()); - - collectionCloner->waitForDbWorker(); - ASSERT_TRUE(collectionCloner->isActive()); - ASSERT_TRUE(collectionStats.initCalled); - - BSONArray emptyArray; - { - executor::NetworkInterfaceMock::InNetworkGuard guard(getNet()); - processNetworkResponse(BSON("cursors" << BSON_ARRAY(createCursorResponse(1, emptyArray) - << createCursorResponse(2, emptyArray) - << createCursorResponse(3, emptyArray)) - << "ok" - << 1)); - } - collectionCloner->waitForDbWorker(); - - auto exec = &getExecutor(); - std::vector<BSONObj> docs; - // Record the buffered documents before they are inserted so we can - // validate them. - collectionCloner->setScheduleDbWorkFn_forTest( - [&](const executor::TaskExecutor::CallbackFn& workFn) { - auto buffered = collectionCloner->getDocumentsToInsert_forTest(); - docs.insert(docs.end(), buffered.begin(), buffered.end()); - return exec->scheduleWork(workFn); - }); - - ASSERT_TRUE(collectionCloner->isActive()); - - int numDocs = 6; - std::vector<BSONObj> generatedDocs = generateDocs(numDocs); - const BSONObj doc = BSON("_id" << 1); - { - executor::NetworkInterfaceMock::InNetworkGuard guard(getNet()); - processNetworkResponse(createCursorResponse(1, BSON_ARRAY(generatedDocs[0]))); - processNetworkResponse(createCursorResponse(2, BSON_ARRAY(generatedDocs[1]))); - processNetworkResponse(createCursorResponse(3, BSON_ARRAY(generatedDocs[2]))); - } - - collectionCloner->waitForDbWorker(); - ASSERT_EQUALS(3U, docs.size()); - for (int i = 0; i < 3; i++) { - ASSERT_BSONOBJ_EQ(generatedDocs[i], docs[i]); - } - ASSERT_EQUALS(3, collectionStats.insertCount); - - ASSERT_EQUALS(getDetectableErrorStatus(), getStatus()); - ASSERT_TRUE(collectionCloner->isActive()); - - { - executor::NetworkInterfaceMock::InNetworkGuard guard(getNet()); - processNetworkResponse(createCursorResponse(1, emptyArray, "nextBatch")); - processNetworkResponse(createCursorResponse(2, emptyArray, "nextBatch")); - processNetworkResponse(createCursorResponse(3, emptyArray, "nextBatch")); - } - - collectionCloner->waitForDbWorker(); - ASSERT_EQUALS(3, collectionStats.insertCount); - - ASSERT_EQUALS(getDetectableErrorStatus(), getStatus()); - ASSERT_TRUE(collectionCloner->isActive()); - - { - executor::NetworkInterfaceMock::InNetworkGuard guard(getNet()); - processNetworkResponse(createFinalCursorResponse(BSON_ARRAY(generatedDocs[3]))); - processNetworkResponse(createFinalCursorResponse(BSON_ARRAY(generatedDocs[4]))); - processNetworkResponse(createFinalCursorResponse(BSON_ARRAY(generatedDocs[5]))); - } - - collectionCloner->join(); - - ASSERT_EQUALS(6U, docs.size()); - for (int i = 3; i < 6; i++) { - ASSERT_BSONOBJ_EQ(generatedDocs[i], docs[i]); - } - - ASSERT_EQUALS(numDocs, collectionStats.insertCount); - ASSERT_TRUE(collectionStats.commitCalled); - - ASSERT_OK(getStatus()); - ASSERT_FALSE(collectionCloner->isActive()); -} - TEST_F(ParallelCollectionClonerTest, LastBatchContainsNoDocumentsWithMultipleCursors) { ASSERT_OK(collectionCloner->startup()); ASSERT_TRUE(collectionCloner->isActive()); |