diff options
author | Andrii Dobroshynski <andrii.dobroshynski@mongodb.com> | 2022-04-25 17:19:00 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-05-17 14:08:19 +0000 |
commit | df8faf83a1a63cf72dcad52ad3cb0083794564f1 (patch) | |
tree | bde2be2da7fdba0b5ab7c9e26fac545509bfa00c | |
parent | c900fa624cda490f8664bff6facfca9f38d243ae (diff) | |
download | mongo-df8faf83a1a63cf72dcad52ad3cb0083794564f1.tar.gz |
SERVER-65152 Update change_stream_null_existence_eq_rewrite_test.js for newly-added events
(cherry picked from commit 5a611b4f0dd3c2117b0f7dd7a7ccf9469dae796b)
-rw-r--r-- | jstests/change_streams/oplog_rewrite/change_stream_null_existence_eq_rewrite_test.js | 13 | ||||
-rw-r--r-- | jstests/libs/change_stream_rewrite_util.js | 21 |
2 files changed, 30 insertions, 4 deletions
diff --git a/jstests/change_streams/oplog_rewrite/change_stream_null_existence_eq_rewrite_test.js b/jstests/change_streams/oplog_rewrite/change_stream_null_existence_eq_rewrite_test.js index 323b94f5956..b211ad65a0c 100644 --- a/jstests/change_streams/oplog_rewrite/change_stream_null_existence_eq_rewrite_test.js +++ b/jstests/change_streams/oplog_rewrite/change_stream_null_existence_eq_rewrite_test.js @@ -12,14 +12,18 @@ "use strict"; load("jstests/libs/change_stream_rewrite_util.js"); // For rewrite helpers. +load('jstests/libs/change_stream_util.js'); // For isChangeStreamsVisibilityEnabled. const dbName = "change_stream_rewrite_null_existence_test"; const collName = "coll1"; +const testDB = db.getSiblingDB(dbName); +if (!isChangeStreamsVisibilityEnabled(testDB)) { + return; +} + // Establish a resume token at a point before anything actually happens in the test. const startPoint = db.getMongo().watch().getResumeToken(); - -const testDB = db.getSiblingDB(dbName); const numDocs = 8; // Generate a write workload for the change stream to consume. @@ -83,7 +87,8 @@ function traverseEvent(event, outputMap, prefixPath = "") { } // Obtain a list of all events that occurred during the write workload. -const allEvents = getAllChangeStreamEvents(testDB, [], {fullDocument: "updateLookup"}, startPoint); +const allEvents = getAllChangeStreamEvents( + testDB, [], {fullDocument: "updateLookup", showExpandedEvents: true}, startPoint); jsTestLog(`All events: ${tojson(allEvents)}`); @@ -160,7 +165,7 @@ function generateExprFilters(fieldPath) { const failedTestCases = []; // Confirm that the output of an optimized change stream matches an unoptimized stream. -for (let csConfig of [{fullDocument: "updateLookup"}]) { +for (let csConfig of [{fullDocument: "updateLookup", showExpandedEvents: true}]) { for (let fieldToTest in fieldsToBeTested) { const predicatesToTest = generateMatchFilters(fieldToTest).concat(generateExprFilters(fieldToTest)); diff --git a/jstests/libs/change_stream_rewrite_util.js b/jstests/libs/change_stream_rewrite_util.js index 0da3b8fb77b..ebbb0937222 100644 --- a/jstests/libs/change_stream_rewrite_util.js +++ b/jstests/libs/change_stream_rewrite_util.js @@ -27,6 +27,22 @@ function generateChangeStreamWriteWorkload(db, collName, numDocs, includInvalida })); assert.commandWorked(testColl.dropIndex({a: 1})); + // Modify the collection's validation options. + assert.commandWorked(testColl.runCommand({ + collMod: collName, + validator: {}, + validationLevel: "off", + validationAction: "warn", + })); + + // Change the validation options back. + assert.commandWorked(testColl.runCommand({ + collMod: collName, + validator: {}, + validationLevel: "strict", + validationAction: "error", + })); + // Insert some documents. for (let i = 0; i < numDocs; ++i) { assert.commandWorked(testColl.insert( @@ -56,6 +72,11 @@ function generateChangeStreamWriteWorkload(db, collName, numDocs, includInvalida assert.commandWorked(testColl.remove({_id: i, shardKey: i})); } + // Create, modify, and drop a view on the collection. + assert.commandWorked(db.createView("view", collName, [])); + assert.commandWorked(db.runCommand({collMod: "view", viewOn: "viewOnView", pipeline: []})); + assertDropCollection(db, "view"); + // If the caller is prepared to handle potential invalidations, include the following events. if (includInvalidatingEvents) { // Rename the collection. |