summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Gorman <bernard.gorman@gmail.com>2019-06-14 13:47:53 +0100
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-07-10 00:33:17 +0000
commit669cbdd833c9fa18b543a61b615834dca69b2b8f (patch)
tree628605dd6a4a2a7682f57666330f39a4c461ec54
parent12797e8c4aa195727d853f8518fd155e76d1ff6e (diff)
downloadmongo-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.js17
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);