summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrii Dobroshynski <andrii.dobroshynski@mongodb.com>2022-04-25 17:19:00 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-05-17 14:08:19 +0000
commitdf8faf83a1a63cf72dcad52ad3cb0083794564f1 (patch)
treebde2be2da7fdba0b5ab7c9e26fac545509bfa00c
parentc900fa624cda490f8664bff6facfca9f38d243ae (diff)
downloadmongo-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.js13
-rw-r--r--jstests/libs/change_stream_rewrite_util.js21
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.