diff options
author | Bernard Gorman <bernard.gorman@gmail.com> | 2019-06-14 13:47:53 +0100 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-07-10 00:33:17 +0000 |
commit | 669cbdd833c9fa18b543a61b615834dca69b2b8f (patch) | |
tree | 628605dd6a4a2a7682f57666330f39a4c461ec54 | |
parent | 12797e8c4aa195727d853f8518fd155e76d1ff6e (diff) | |
download | mongo-669cbdd833c9fa18b543a61b615834dca69b2b8f.tar.gz |
SERVER-41741 Improve robustness of change_streams_shell_helper_resume_token.js
(cherry picked from commit 4ecc335c610d457e5e063c8710c1820833fe45d9)
-rw-r--r-- | jstests/noPassthrough/change_streams_shell_helper_resume_token.js | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/jstests/noPassthrough/change_streams_shell_helper_resume_token.js b/jstests/noPassthrough/change_streams_shell_helper_resume_token.js index 8be3ca532f4..8b31de419ed 100644 --- a/jstests/noPassthrough/change_streams_shell_helper_resume_token.js +++ b/jstests/noPassthrough/change_streams_shell_helper_resume_token.js @@ -35,11 +35,14 @@ // Test that advancing the oplog time updates the postBatchResumeToken, even with no results. assert.commandWorked(otherCollection.insert({})); - assert(!csCursor.hasNext()); // Causes a getMore to be dispatched. let prevResumeToken = curResumeToken; - curResumeToken = csCursor.getResumeToken(); - assert.neq(undefined, curResumeToken); - assert.gt(bsonWoCompare(curResumeToken, prevResumeToken), 0); + assert.soon(() => { + assert(!csCursor.hasNext()); // Causes a getMore to be dispatched. + prevResumeToken = curResumeToken; + curResumeToken = csCursor.getResumeToken(); + assert.neq(undefined, curResumeToken); + return bsonWoCompare(curResumeToken, prevResumeToken) > 0; + }); // Insert 9 documents into the collection, followed by a write to the unrelated collection. for (let i = 0; i < 9; ++i) { @@ -48,7 +51,7 @@ assert.commandWorked(otherCollection.insert({})); // Retrieve the first batch of events from the cursor. - assert(csCursor.hasNext()); // Causes a getMore to be dispatched. + assert.soon(() => csCursor.hasNext()); // Causes a getMore to be dispatched. // We have not yet iterated any of the events. Verify that the resume token is unchanged. assert.docEq(curResumeToken, csCursor.getResumeToken()); @@ -64,14 +67,14 @@ } // Retrieve the second batch of events from the cursor. - assert(csCursor.hasNext()); // Causes a getMore to be dispatched. + assert.soon(() => csCursor.hasNext()); // Causes a getMore to be dispatched. // We haven't pulled any events out of the cursor yet, so the resumeToken should be unchanged. assert.docEq(curResumeToken, csCursor.getResumeToken()); // For all but the final event, the resume token should match the document's _id. while ((currentDoc = csCursor.next()).fullDocument._id < docId) { - assert(csCursor.hasNext()); + assert.soon(() => csCursor.hasNext()); prevResumeToken = curResumeToken; curResumeToken = csCursor.getResumeToken(); assert.docEq(curResumeToken, currentDoc._id); |