summaryrefslogtreecommitdiff
path: root/jstests
diff options
context:
space:
mode:
Diffstat (limited to 'jstests')
-rw-r--r--jstests/aggregation/bugs/cursor_timeout.js3
-rw-r--r--jstests/aggregation/bugs/lookup_unwind_getmore.js3
-rw-r--r--jstests/aggregation/bugs/lookup_unwind_killcursor.js3
-rw-r--r--jstests/aggregation/bugs/server3253.js5
-rw-r--r--jstests/aggregation/bugs/server6179.js5
-rw-r--r--jstests/aggregation/bugs/server7781.js5
-rw-r--r--jstests/aggregation/mongos_merge.js6
-rw-r--r--jstests/aggregation/mongos_slaveok.js6
-rw-r--r--jstests/aggregation/shard_targeting.js6
-rw-r--r--jstests/aggregation/sources/addFields/use_cases.js5
-rw-r--r--jstests/aggregation/sources/addFields/weather.js5
-rw-r--r--jstests/aggregation/sources/collStats/shard_host_info.js5
-rw-r--r--jstests/aggregation/sources/facet/use_cases.js5
-rw-r--r--jstests/aggregation/sources/replaceRoot/address.js5
-rw-r--r--jstests/aggregation/testSlave.js5
-rw-r--r--jstests/change_streams/lookup_post_image.js5
-rw-r--r--jstests/change_streams/only_wake_getmore_for_relevant_changes.js3
-rw-r--r--jstests/core/apply_ops1.js10
-rw-r--r--jstests/core/auth1.js1
-rw-r--r--jstests/core/automation_setparameter.js5
-rw-r--r--jstests/core/awaitdata_getmore_cmd.js3
-rw-r--r--jstests/core/bench_test1.js5
-rw-r--r--jstests/core/bench_test2.js5
-rw-r--r--jstests/core/bench_test3.js5
-rw-r--r--jstests/core/capped6.js5
-rw-r--r--jstests/core/capped_empty.js7
-rw-r--r--jstests/core/capped_update.js5
-rw-r--r--jstests/core/collection_truncate.js6
-rw-r--r--jstests/core/commands_namespace_parsing.js3
-rw-r--r--jstests/core/compact_keeps_indexes.js5
-rw-r--r--jstests/core/connection_status.js11
-rw-r--r--jstests/core/connection_string_validation.js3
-rw-r--r--jstests/core/count10.js2
-rw-r--r--jstests/core/count_plan_summary.js2
-rw-r--r--jstests/core/create_indexes.js5
-rw-r--r--jstests/core/currentop.js5
-rw-r--r--jstests/core/cursora.js12
-rw-r--r--jstests/core/dbhash2.js5
-rw-r--r--jstests/core/distinct3.js5
-rw-r--r--jstests/core/dropdb_race.js1
-rw-r--r--jstests/core/find_and_modify_concurrent_update.js14
-rw-r--r--jstests/core/geo_update_btree.js1
-rw-r--r--jstests/core/geo_update_btree2.js7
-rw-r--r--jstests/core/insert2.js6
-rw-r--r--jstests/core/kill_cursors.js5
-rw-r--r--jstests/core/killop_drop_collection.js5
-rw-r--r--jstests/core/list_all_sessions.js5
-rw-r--r--jstests/core/list_collections_no_views.js3
-rw-r--r--jstests/core/list_sessions.js5
-rw-r--r--jstests/core/loadserverscripts.js6
-rw-r--r--jstests/core/logprocessdetails.js5
-rw-r--r--jstests/core/max_time_ms.js4
-rw-r--r--jstests/core/mr_killop.js6
-rw-r--r--jstests/core/notablescan.js1
-rw-r--r--jstests/core/opcounters_write_cmd.js3
-rw-r--r--jstests/core/profile1.js1
-rw-r--r--jstests/core/profile3.js6
-rw-r--r--jstests/core/queryoptimizer3.js6
-rw-r--r--jstests/core/remove9.js6
-rw-r--r--jstests/core/removeb.js6
-rw-r--r--jstests/core/removec.js5
-rw-r--r--jstests/core/rename8.js5
-rw-r--r--jstests/core/role_management_helpers.js7
-rw-r--r--jstests/core/set_param1.js5
-rw-r--r--jstests/core/shell_connection_strings.js3
-rw-r--r--jstests/core/shellstartparallel.js5
-rw-r--r--jstests/core/splitvector.js22
-rw-r--r--jstests/core/stages_and_hash.js5
-rw-r--r--jstests/core/stages_and_sorted.js5
-rw-r--r--jstests/core/stages_collection_scan.js5
-rw-r--r--jstests/core/stages_delete.js1
-rw-r--r--jstests/core/stages_fetch.js5
-rw-r--r--jstests/core/stages_ixscan.js5
-rw-r--r--jstests/core/stages_limit_skip.js5
-rw-r--r--jstests/core/stages_mergesort.js5
-rw-r--r--jstests/core/stages_or.js5
-rw-r--r--jstests/core/stages_text.js5
-rw-r--r--jstests/core/updatef.js6
-rw-r--r--jstests/core/user_management_helpers.js11
-rw-r--r--jstests/core/validate_user_documents.js9
-rw-r--r--jstests/core/views/duplicate_ns.js5
-rw-r--r--jstests/core/views/invalid_system_views.js10
-rw-r--r--jstests/core/views/views_all_commands.js3
-rw-r--r--jstests/core/views/views_change.js6
-rw-r--r--jstests/core/views/views_creation.js3
-rw-r--r--jstests/core/views/views_drop.js5
-rw-r--r--jstests/core/views/views_rename.js6
87 files changed, 342 insertions, 117 deletions
diff --git a/jstests/aggregation/bugs/cursor_timeout.js b/jstests/aggregation/bugs/cursor_timeout.js
index 817465a0218..f579fba407d 100644
--- a/jstests/aggregation/bugs/cursor_timeout.js
+++ b/jstests/aggregation/bugs/cursor_timeout.js
@@ -2,6 +2,9 @@
* Tests that an aggregation cursor is killed when it is timed out by the ClientCursorMonitor.
*
* This test was designed to reproduce SERVER-25585.
+ * @tags: [
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
'use strict';
diff --git a/jstests/aggregation/bugs/lookup_unwind_getmore.js b/jstests/aggregation/bugs/lookup_unwind_getmore.js
index 9eaece9bfe8..3ba7dbf4007 100644
--- a/jstests/aggregation/bugs/lookup_unwind_getmore.js
+++ b/jstests/aggregation/bugs/lookup_unwind_getmore.js
@@ -3,6 +3,9 @@
* changes as it unwinds the results.
*
* This test was designed to reproduce SERVER-22537.
+ * @tags: [
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
'use strict';
diff --git a/jstests/aggregation/bugs/lookup_unwind_killcursor.js b/jstests/aggregation/bugs/lookup_unwind_killcursor.js
index 503bbf70e8d..45da6350c2f 100644
--- a/jstests/aggregation/bugs/lookup_unwind_killcursor.js
+++ b/jstests/aggregation/bugs/lookup_unwind_killcursor.js
@@ -3,6 +3,9 @@
* client for the aggregation pipeline is killed.
*
* This test was designed to reproduce SERVER-24386.
+ * @tags: [
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
'use strict';
diff --git a/jstests/aggregation/bugs/server3253.js b/jstests/aggregation/bugs/server3253.js
index 51e355cad0b..5df6736e88f 100644
--- a/jstests/aggregation/bugs/server3253.js
+++ b/jstests/aggregation/bugs/server3253.js
@@ -1,6 +1,9 @@
// Cannot implicitly shard accessed collections because unsupported use of sharded collection
// for output collection of aggregation pipeline.
-// @tags: [assumes_unsharded_collection]
+// @tags: [
+// assumes_superuser_permissions,
+// assumes_unsharded_collection,
+// ]
// server-3253 Unsharded support for $out
load('jstests/aggregation/extras/utils.js');
diff --git a/jstests/aggregation/bugs/server6179.js b/jstests/aggregation/bugs/server6179.js
index 2e8a3445004..a5e934a9e89 100644
--- a/jstests/aggregation/bugs/server6179.js
+++ b/jstests/aggregation/bugs/server6179.js
@@ -1,5 +1,8 @@
// SERVER-6179: support for two $groups in sharded agg
-// @tags: [requires_sharding]
+// @tags: [
+// requires_sharding,
+// requires_spawning_own_processes,
+// ]
(function() {
'use strict';
diff --git a/jstests/aggregation/bugs/server7781.js b/jstests/aggregation/bugs/server7781.js
index 9f227513c87..f755a6af0ad 100644
--- a/jstests/aggregation/bugs/server7781.js
+++ b/jstests/aggregation/bugs/server7781.js
@@ -1,5 +1,8 @@
// SERVER-7781 $geoNear pipeline stage
-// @tags: [requires_sharding]
+// @tags: [
+// requires_sharding,
+// requires_spawning_own_processes,
+// ]
(function() {
'use strict';
diff --git a/jstests/aggregation/mongos_merge.js b/jstests/aggregation/mongos_merge.js
index ecd40b782b9..67a6d433312 100644
--- a/jstests/aggregation/mongos_merge.js
+++ b/jstests/aggregation/mongos_merge.js
@@ -10,7 +10,11 @@
* and will therefore invalidate the results of the test cases below, we tag this test to prevent it
* running under the 'aggregation_facet_unwind' passthrough.
*
- * @tags: [do_not_wrap_aggregations_in_facets, requires_sharding]
+ * @tags: [
+ * do_not_wrap_aggregations_in_facets,
+ * requires_sharding,
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
diff --git a/jstests/aggregation/mongos_slaveok.js b/jstests/aggregation/mongos_slaveok.js
index 9261bf6c594..24346e407f0 100644
--- a/jstests/aggregation/mongos_slaveok.js
+++ b/jstests/aggregation/mongos_slaveok.js
@@ -1,7 +1,11 @@
/**
* Tests aggregate command against mongos with slaveOk. For more tests on read preference,
* please refer to jstests/sharding/read_pref_cmd.js.
- * @tags: [requires_sharding, requires_replication]
+ * @tags: [
+ * requires_replication,
+ * requires_sharding,
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
load('jstests/replsets/rslib.js');
diff --git a/jstests/aggregation/shard_targeting.js b/jstests/aggregation/shard_targeting.js
index 48e2f3791ca..800357ab324 100644
--- a/jstests/aggregation/shard_targeting.js
+++ b/jstests/aggregation/shard_targeting.js
@@ -15,7 +15,11 @@
* and will therefore invalidate the results of the test cases below, we tag this test to prevent it
* running under the 'aggregation_facet_unwind' passthrough.
*
- * @tags: [do_not_wrap_aggregations_in_facets, requires_sharding]
+ * @tags: [
+ * do_not_wrap_aggregations_in_facets,
+ * requires_sharding,
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
load("jstests/libs/profiler.js"); // For profilerHas*OrThrow helper functions.
diff --git a/jstests/aggregation/sources/addFields/use_cases.js b/jstests/aggregation/sources/addFields/use_cases.js
index 8857c3b9e66..b6f92fdb7b7 100644
--- a/jstests/aggregation/sources/addFields/use_cases.js
+++ b/jstests/aggregation/sources/addFields/use_cases.js
@@ -2,7 +2,10 @@
* $addFields can be used to add fixed and computed fields to documents while preserving the
* original document. Verify that using $addFields and adding computed fields in a $project yield
* the same result.
- * @tags: [requires_sharding]
+ * @tags: [
+ * requires_sharding,
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
diff --git a/jstests/aggregation/sources/addFields/weather.js b/jstests/aggregation/sources/addFields/weather.js
index 93b0f503287..79916ee13d6 100644
--- a/jstests/aggregation/sources/addFields/weather.js
+++ b/jstests/aggregation/sources/addFields/weather.js
@@ -2,7 +2,10 @@
* $addFields can be used to add fixed and computed fields to documents while preserving the
* original document. Verify that using $addFields and adding computed fields in a $project yield
* the same result. Use the sample case of computing weather metadata.
- * @tags: [requires_sharding]
+ * @tags: [
+ * requires_sharding,
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
diff --git a/jstests/aggregation/sources/collStats/shard_host_info.js b/jstests/aggregation/sources/collStats/shard_host_info.js
index 6151ec302fa..34e1d8a195e 100644
--- a/jstests/aggregation/sources/collStats/shard_host_info.js
+++ b/jstests/aggregation/sources/collStats/shard_host_info.js
@@ -1,7 +1,10 @@
/**
* Verifies that the $collStats aggregation stage includes the shard and hostname for each output
* document when run via mongoS, and that the former is absent when run on a non-shard mongoD.
- * @tags: [requires_sharding]
+ * @tags: [
+ * requires_sharding,
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
"use strict";
diff --git a/jstests/aggregation/sources/facet/use_cases.js b/jstests/aggregation/sources/facet/use_cases.js
index a54f4c3674f..a6f1def408e 100644
--- a/jstests/aggregation/sources/facet/use_cases.js
+++ b/jstests/aggregation/sources/facet/use_cases.js
@@ -1,6 +1,9 @@
/**
* Tests some practical use cases of the $facet stage.
- * @tags: [requires_sharding]
+ * @tags: [
+ * requires_sharding,
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
"use strict";
diff --git a/jstests/aggregation/sources/replaceRoot/address.js b/jstests/aggregation/sources/replaceRoot/address.js
index 2f04d7bd9ec..5cfe51856cd 100644
--- a/jstests/aggregation/sources/replaceRoot/address.js
+++ b/jstests/aggregation/sources/replaceRoot/address.js
@@ -1,6 +1,9 @@
/**
* $replaceRoot can be used to extract parts of a document; here we test a simple address case.
- * @tags: [requires_sharding]
+ * @tags: [
+ * requires_sharding,
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
diff --git a/jstests/aggregation/testSlave.js b/jstests/aggregation/testSlave.js
index ce6ee597218..1b3d302be95 100644
--- a/jstests/aggregation/testSlave.js
+++ b/jstests/aggregation/testSlave.js
@@ -1,5 +1,8 @@
// This test just make sure that aggregation is possible on a secondary node.
-// @tags: [requires_replication]
+// @tags: [
+// requires_replication,
+// requires_spawning_own_processes,
+// ]
var replTest = new ReplSetTest({name: 'aggTestSlave', nodes: 2});
var nodes = replTest.startSet();
replTest.initiate();
diff --git a/jstests/change_streams/lookup_post_image.js b/jstests/change_streams/lookup_post_image.js
index 7d1a0a1a457..be267f5feea 100644
--- a/jstests/change_streams/lookup_post_image.js
+++ b/jstests/change_streams/lookup_post_image.js
@@ -1,7 +1,10 @@
// Tests the 'fullDocument' argument to the $changeStream stage.
//
// The $changeStream stage is not allowed within a $facet stage.
-// @tags: [do_not_wrap_aggregations_in_facets]
+// @tags: [
+// do_not_wrap_aggregations_in_facets,
+// uses_multiple_connections,
+// ]
(function() {
"use strict";
diff --git a/jstests/change_streams/only_wake_getmore_for_relevant_changes.js b/jstests/change_streams/only_wake_getmore_for_relevant_changes.js
index 63be5783fa5..19f5433c8e9 100644
--- a/jstests/change_streams/only_wake_getmore_for_relevant_changes.js
+++ b/jstests/change_streams/only_wake_getmore_for_relevant_changes.js
@@ -1,4 +1,7 @@
// Test that an insert to an unrelated collection will not cause a $changeStream getMore to
+// @tags: [
+// uses_multiple_connections,
+// ]
// return early.
(function() {
"use strict";
diff --git a/jstests/core/apply_ops1.js b/jstests/core/apply_ops1.js
index 0dc0586e43e..dd2e4ceb79b 100644
--- a/jstests/core/apply_ops1.js
+++ b/jstests/core/apply_ops1.js
@@ -1,9 +1,9 @@
// @tags: [
-// requires_non_retryable_commands,
-// requires_fastcount,
-//
-// # applyOps uses the oplog that require replication support
-// requires_replication,
+// assumes_superuser_permissions,
+// requires_fastcount,
+// requires_non_retryable_commands,
+// # applyOps uses the oplog that require replication support
+// requires_replication,
// ]
(function() {
diff --git a/jstests/core/auth1.js b/jstests/core/auth1.js
index 4f2a869ab44..a71f35fb747 100644
--- a/jstests/core/auth1.js
+++ b/jstests/core/auth1.js
@@ -1,4 +1,5 @@
// @tags: [
+// assumes_superuser_permissions,
// assumes_write_concern_unchanged,
// creates_and_authenticates_user,
// requires_auth,
diff --git a/jstests/core/automation_setparameter.js b/jstests/core/automation_setparameter.js
index d2bc41b676a..5e8ea62f338 100644
--- a/jstests/core/automation_setparameter.js
+++ b/jstests/core/automation_setparameter.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// assumes_superuser_permissions,
+// does_not_support_stepdowns,
+// ]
// Tests that using setParameter to update the parameter 'automationServiceDescriptor' causes a
// field with that name to be echoed back in isMaster. See SERVER-18399 for more details.
diff --git a/jstests/core/awaitdata_getmore_cmd.js b/jstests/core/awaitdata_getmore_cmd.js
index 1b417e7a8f1..11e178f0136 100644
--- a/jstests/core/awaitdata_getmore_cmd.js
+++ b/jstests/core/awaitdata_getmore_cmd.js
@@ -5,8 +5,9 @@
// # former operation may be routed to a secondary in the replica set, whereas the latter must be
// # routed to the primary.
// assumes_read_preference_unchanged,
-// requires_getmore,
// requires_capped,
+// requires_getmore,
+// uses_multiple_connections,
// ]
(function() {
diff --git a/jstests/core/bench_test1.js b/jstests/core/bench_test1.js
index 2f35be513fc..683b5be4713 100644
--- a/jstests/core/bench_test1.js
+++ b/jstests/core/bench_test1.js
@@ -1,6 +1,9 @@
// Cannot implicitly shard accessed collections because of extra shard key index in sharded
// collection.
-// @tags: [assumes_no_implicit_index_creation]
+// @tags: [
+// assumes_no_implicit_index_creation,
+// uses_multiple_connections,
+// ]
t = db.bench_test1;
t.drop();
diff --git a/jstests/core/bench_test2.js b/jstests/core/bench_test2.js
index a5918a5de1f..566a91f6592 100644
--- a/jstests/core/bench_test2.js
+++ b/jstests/core/bench_test2.js
@@ -1,4 +1,9 @@
+/**
+ * @tags: [
+ * uses_multiple_connections,
+ * ]
+ */
t = db.bench_test2;
t.drop();
diff --git a/jstests/core/bench_test3.js b/jstests/core/bench_test3.js
index e10a65eee07..312618a34c6 100644
--- a/jstests/core/bench_test3.js
+++ b/jstests/core/bench_test3.js
@@ -1,3 +1,8 @@
+/**
+ * @tags: [
+ * uses_multiple_connections,
+ * ]
+ */
t = db.bench_test3;
t.drop();
diff --git a/jstests/core/capped6.js b/jstests/core/capped6.js
index 8d725c5e79c..6955f65662a 100644
--- a/jstests/core/capped6.js
+++ b/jstests/core/capped6.js
@@ -5,9 +5,10 @@
// # documents using the captrunc command. The former operations may be routed to a secondary in
// # the replica set, whereas the latter must be routed to the primary.
// assumes_read_preference_unchanged,
-// requires_non_retryable_commands,
-// requires_fastcount,
// requires_capped,
+// requires_fastcount,
+// requires_non_retryable_commands,
+// uses_testing_only_commands,
// ]
(function() {
var coll = db.capped6;
diff --git a/jstests/core/capped_empty.js b/jstests/core/capped_empty.js
index 2b10a513b4d..ca342040630 100644
--- a/jstests/core/capped_empty.js
+++ b/jstests/core/capped_empty.js
@@ -1,4 +1,9 @@
-// @tags: [requires_non_retryable_commands, requires_fastcount, requires_capped]
+// @tags: [
+// requires_capped,
+// requires_fastcount,
+// requires_non_retryable_commands,
+// uses_testing_only_commands,
+// ]
t = db.capped_empty;
t.drop();
diff --git a/jstests/core/capped_update.js b/jstests/core/capped_update.js
index 47e938cb210..b75ecb8243e 100644
--- a/jstests/core/capped_update.js
+++ b/jstests/core/capped_update.js
@@ -2,7 +2,10 @@
* Tests various update scenarios on capped collections:
* -- SERVER-20529: Ensure capped document sizes do not change
* -- SERVER-11983: Don't create _id field on capped updates
- * @tags: [requires_capped]
+ * @tags: [
+ * requires_capped,
+ * uses_testing_only_commands,
+ * ]
*/
(function() {
'use strict';
diff --git a/jstests/core/collection_truncate.js b/jstests/core/collection_truncate.js
index dc97c5d5b38..66b6d44db59 100644
--- a/jstests/core/collection_truncate.js
+++ b/jstests/core/collection_truncate.js
@@ -1,4 +1,8 @@
-// @tags: [requires_non_retryable_commands, requires_collstats]
+// @tags: [
+// requires_collstats,
+// requires_non_retryable_commands,
+// uses_testing_only_commands,
+// ]
// SERVER-15033 truncate on a regular collection
diff --git a/jstests/core/commands_namespace_parsing.js b/jstests/core/commands_namespace_parsing.js
index db61de2b07b..ab9750bfbb5 100644
--- a/jstests/core/commands_namespace_parsing.js
+++ b/jstests/core/commands_namespace_parsing.js
@@ -4,9 +4,10 @@
// @tags: [
// assumes_unsharded_collection,
// does_not_support_stepdowns,
+// requires_fastcount,
// requires_getmore,
// requires_non_retryable_commands,
-// requires_fastcount,
+// uses_testing_only_commands,
// ]
// This file tests that commands namespace parsing rejects embedded null bytes.
diff --git a/jstests/core/compact_keeps_indexes.js b/jstests/core/compact_keeps_indexes.js
index 71969d2e005..1a050d27469 100644
--- a/jstests/core/compact_keeps_indexes.js
+++ b/jstests/core/compact_keeps_indexes.js
@@ -2,8 +2,9 @@
// SERVER-16967 Make sure compact doesn't crash while collections are being dropped
// in a different database.
// @tags: [
-// # compact command is not available on embedded
-// incompatible_with_embedded
+// # compact command is not available on embedded
+// incompatible_with_embedded,
+// uses_multiple_connections,
// ]
(function() {
diff --git a/jstests/core/connection_status.js b/jstests/core/connection_status.js
index 33d11149657..efb3eb3fd4f 100644
--- a/jstests/core/connection_status.js
+++ b/jstests/core/connection_status.js
@@ -1,9 +1,10 @@
// @tags: [
-// assumes_write_concern_unchanged,
-// creates_and_authenticates_user,
-// requires_auth,
-// requires_non_retryable_commands,
-// ]
+// assumes_superuser_permissions,
+// assumes_write_concern_unchanged,
+// creates_and_authenticates_user,
+// requires_auth,
+// requires_non_retryable_commands,
+// ]
// Tests the connectionStatus command
(function() {
diff --git a/jstests/core/connection_string_validation.js b/jstests/core/connection_string_validation.js
index d10f9b70164..742206ef052 100644
--- a/jstests/core/connection_string_validation.js
+++ b/jstests/core/connection_string_validation.js
@@ -1,4 +1,7 @@
// Test validation of connection strings passed to the JavaScript "connect()" function.
+// @tags: [
+// uses_multiple_connections,
+// ]
// Related to SERVER-8030.
port = "27017";
diff --git a/jstests/core/count10.js b/jstests/core/count10.js
index 007c4e6918b..63c788c15a6 100644
--- a/jstests/core/count10.js
+++ b/jstests/core/count10.js
@@ -6,9 +6,9 @@
// # routed to the primary.
// assumes_read_preference_unchanged,
// does_not_support_stepdowns,
-//
// # Uses $where operator
// requires_scripting,
+// uses_multiple_connections,
// ]
t = db.count10;
diff --git a/jstests/core/count_plan_summary.js b/jstests/core/count_plan_summary.js
index 79c6712a7f9..ed30956d917 100644
--- a/jstests/core/count_plan_summary.js
+++ b/jstests/core/count_plan_summary.js
@@ -6,9 +6,9 @@
// # routed to the primary.
// assumes_read_preference_unchanged,
// does_not_support_stepdowns,
-//
// # Uses $where operator
// requires_scripting,
+// uses_multiple_connections,
// ]
var t = db.jstests_count_plan_summary;
diff --git a/jstests/core/create_indexes.js b/jstests/core/create_indexes.js
index f6e38ea20fc..45db4c9ef76 100644
--- a/jstests/core/create_indexes.js
+++ b/jstests/core/create_indexes.js
@@ -1,3 +1,8 @@
+/**
+ * @tags: [
+ * assumes_superuser_permissions,
+ * ]
+ */
(function() {
'use strict';
diff --git a/jstests/core/currentop.js b/jstests/core/currentop.js
index e4c94dd67ea..9345f900596 100644
--- a/jstests/core/currentop.js
+++ b/jstests/core/currentop.js
@@ -2,8 +2,9 @@
* Tests that long-running operations show up in currentOp and report the locks they are holding.
*
* @tags: [
- * # fsync command is not available on embedded
- * incompatible_with_embedded
+ * assumes_superuser_permissions,
+ * # fsync command is not available on embedded
+ * incompatible_with_embedded,
* ]
*/
diff --git a/jstests/core/cursora.js b/jstests/core/cursora.js
index 153e2929593..93113055497 100644
--- a/jstests/core/cursora.js
+++ b/jstests/core/cursora.js
@@ -1,10 +1,10 @@
// @tags: [
-// requires_getmore,
-// requires_non_retryable_writes,
-// requires_fastcount,
-//
-// # Uses $where operator
-// requires_scripting,
+// requires_fastcount,
+// requires_getmore,
+// requires_non_retryable_writes,
+// # Uses $where operator
+// requires_scripting,
+// uses_multiple_connections,
// ]
(function() {
diff --git a/jstests/core/dbhash2.js b/jstests/core/dbhash2.js
index 93c78a35f26..39860cc225b 100644
--- a/jstests/core/dbhash2.js
+++ b/jstests/core/dbhash2.js
@@ -1,6 +1,7 @@
// @tags: [
-// # dbhash command is not available on embedded
-// incompatible_with_embedded,
+// assumes_superuser_permissions,
+// # dbhash command is not available on embedded
+// incompatible_with_embedded,
// ]
mydb = db.getSisterDB("config");
diff --git a/jstests/core/distinct3.js b/jstests/core/distinct3.js
index 94a289c8fa6..23557820bec 100644
--- a/jstests/core/distinct3.js
+++ b/jstests/core/distinct3.js
@@ -1,4 +1,7 @@
-// @tags: [requires_non_retryable_writes]
+// @tags: [
+// requires_non_retryable_writes,
+// uses_multiple_connections,
+// ]
// Yield and delete test case for query optimizer cursor. SERVER-4401
diff --git a/jstests/core/dropdb_race.js b/jstests/core/dropdb_race.js
index 40557dc8551..8ec97188639 100644
--- a/jstests/core/dropdb_race.js
+++ b/jstests/core/dropdb_race.js
@@ -1,6 +1,7 @@
// test dropping a db with simultaneous commits
//
// @tags: [
+// assumes_superuser_permissions,
// assumes_write_concern_unchanged,
// does_not_support_stepdowns,
// ]
diff --git a/jstests/core/find_and_modify_concurrent_update.js b/jstests/core/find_and_modify_concurrent_update.js
index 52916f4c9b8..80b737cfbed 100644
--- a/jstests/core/find_and_modify_concurrent_update.js
+++ b/jstests/core/find_and_modify_concurrent_update.js
@@ -1,11 +1,11 @@
// @tags: [
-// # Cannot implicitly shard accessed collections because of following errmsg: A single
-// # update/delete on a sharded collection must contain an exact match on _id or contain the
-// # shard key.
-// assumes_unsharded_collection,
-//
-// # Uses $where operator
-// requires_scripting,
+// # Cannot implicitly shard accessed collections because of following errmsg: A single
+// # update/delete on a sharded collection must contain an exact match on _id or contain the shard
+// # key.
+// assumes_unsharded_collection,
+// # Uses $where operator
+// requires_scripting,
+// uses_multiple_connections,
// ]
// Ensures that find and modify will not apply an update to a document which, due to a concurrent
diff --git a/jstests/core/geo_update_btree.js b/jstests/core/geo_update_btree.js
index 6aa12733654..476921b5c2f 100644
--- a/jstests/core/geo_update_btree.js
+++ b/jstests/core/geo_update_btree.js
@@ -3,6 +3,7 @@
// @tags: [
// assumes_write_concern_unchanged,
// requires_non_retryable_writes,
+// uses_multiple_connections,
// ]
var coll = db.getCollection("jstests_geo_update_btree");
diff --git a/jstests/core/geo_update_btree2.js b/jstests/core/geo_update_btree2.js
index 972b579163d..1d25ba3d7c8 100644
--- a/jstests/core/geo_update_btree2.js
+++ b/jstests/core/geo_update_btree2.js
@@ -1,4 +1,9 @@
-// @tags: [does_not_support_stepdowns, requires_getmore, requires_non_retryable_writes]
+// @tags: [
+// assumes_superuser_permissions,
+// does_not_support_stepdowns,
+// requires_getmore,
+// requires_non_retryable_writes,
+// ]
// Tests whether the geospatial search is stable under btree updates
//
diff --git a/jstests/core/insert2.js b/jstests/core/insert2.js
index 6c6141f8cb9..6052f1eeb8d 100644
--- a/jstests/core/insert2.js
+++ b/jstests/core/insert2.js
@@ -1,6 +1,10 @@
// Cannot implicitly shard accessed collections because of collection existing when none
// expected.
-// @tags: [assumes_no_implicit_collection_creation_after_drop, requires_collstats]
+// @tags: [
+// assumes_no_implicit_collection_creation_after_drop,
+// requires_collstats,
+// uses_multiple_connections,
+// ]
// Create a new connection object so it won't affect the global connection when we modify
// it's settings.
diff --git a/jstests/core/kill_cursors.js b/jstests/core/kill_cursors.js
index a45ac60596a..096d8962d2a 100644
--- a/jstests/core/kill_cursors.js
+++ b/jstests/core/kill_cursors.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
//
// Does not support stepdowns because if a stepdown were to occur between running find() and
// calling killCursors on the cursor ID returned by find(), the killCursors might be sent to
diff --git a/jstests/core/killop_drop_collection.js b/jstests/core/killop_drop_collection.js
index ce263201ca0..621b5c4ace9 100644
--- a/jstests/core/killop_drop_collection.js
+++ b/jstests/core/killop_drop_collection.js
@@ -5,8 +5,9 @@
* successfully.
*
* @tags: [
- * # Uses index building in background
- * requires_background_index,
+ * assumes_superuser_permissions,
+ * # Uses index building in background
+ * requires_background_index,
* ]
*/
(function() {
diff --git a/jstests/core/list_all_sessions.js b/jstests/core/list_all_sessions.js
index 57dcd1f2490..88bd83da628 100644
--- a/jstests/core/list_all_sessions.js
+++ b/jstests/core/list_all_sessions.js
@@ -1,6 +1,9 @@
// Sessions are asynchronously flushed to disk, so a stepdown immediately after calling
// startSession may cause this test to fail to find the returned sessionId.
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
// Basic tests for the $listSessions {allUsers:true} aggregation stage.
diff --git a/jstests/core/list_collections_no_views.js b/jstests/core/list_collections_no_views.js
index b380f8c3db6..1b454eb7978 100644
--- a/jstests/core/list_collections_no_views.js
+++ b/jstests/core/list_collections_no_views.js
@@ -1,4 +1,7 @@
// SERVER-25942 Test that views are not validated in the case that only collections are queried.
+// @tags: [
+// assumes_superuser_permissions,
+// ]
(function() {
'use strict';
let mydb = db.getSiblingDB('list_collections_no_views');
diff --git a/jstests/core/list_sessions.js b/jstests/core/list_sessions.js
index 552d661d606..9b04d3c1aa5 100644
--- a/jstests/core/list_sessions.js
+++ b/jstests/core/list_sessions.js
@@ -1,6 +1,9 @@
// Sessions are asynchronously flushed to disk, so a stepdown immediately after calling
// startSession may cause this test to fail to find the returned sessionId.
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
// Basic tests for the $listSessions aggregation stage.
diff --git a/jstests/core/loadserverscripts.js b/jstests/core/loadserverscripts.js
index 459daea093d..a2373a33dc8 100644
--- a/jstests/core/loadserverscripts.js
+++ b/jstests/core/loadserverscripts.js
@@ -1,4 +1,8 @@
-// @tags: [requires_non_retryable_writes, requires_fastcount]
+// @tags: [
+// requires_fastcount,
+// requires_non_retryable_writes,
+// uses_multiple_connections,
+// ]
// Test db.loadServerScripts()
diff --git a/jstests/core/logprocessdetails.js b/jstests/core/logprocessdetails.js
index 1987393341e..7357798c9b7 100644
--- a/jstests/core/logprocessdetails.js
+++ b/jstests/core/logprocessdetails.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// assumes_superuser_permissions,
+// does_not_support_stepdowns,
+// ]
/**
* SERVER-7140 test. Checks that process info is re-logged on log rotation
diff --git a/jstests/core/max_time_ms.js b/jstests/core/max_time_ms.js
index 0c2d84bd3cd..b6d9477c310 100644
--- a/jstests/core/max_time_ms.js
+++ b/jstests/core/max_time_ms.js
@@ -5,11 +5,11 @@
// # failpoint. The former operations may be routed to a secondary in the replica set, whereas the
// # latter must be routed to the primary.
// assumes_read_preference_unchanged,
-// requires_getmore,
// requires_fastcount,
-//
+// requires_getmore,
// # Uses $where operator
// requires_scripting,
+// uses_testing_only_commands,
// ]
var t = db.max_time_ms;
diff --git a/jstests/core/mr_killop.js b/jstests/core/mr_killop.js
index f2bf64fba2c..bbe7fe509fa 100644
--- a/jstests/core/mr_killop.js
+++ b/jstests/core/mr_killop.js
@@ -1,7 +1,11 @@
// Cannot implicitly shard accessed collections because the "command" field in the currentOp()
// output is reported as {"mapreduce.shardedfinish": { mapreduce: "jstests_mr_killop", ... }, ... }
// when the "finalize" option to the "mapReduce" command is used on a sharded collection.
-// @tags: [assumes_unsharded_collection, does_not_support_stepdowns]
+// @tags: [
+// assumes_unsharded_collection,
+// does_not_support_stepdowns,
+// uses_multiple_connections,
+// ]
// Test killop applied to m/r operations and child ops of m/r operations.
diff --git a/jstests/core/notablescan.js b/jstests/core/notablescan.js
index 69da1e9c547..d9917af5889 100644
--- a/jstests/core/notablescan.js
+++ b/jstests/core/notablescan.js
@@ -5,6 +5,7 @@
// # parameter. The former operations may be routed to a secondary in the replica set, whereas the
// # latter must be routed to the primary.
// assumes_read_preference_unchanged,
+// assumes_superuser_permissions,
// does_not_support_stepdowns,
// ]
diff --git a/jstests/core/opcounters_write_cmd.js b/jstests/core/opcounters_write_cmd.js
index 0baaa7e260e..2aef8fe72c5 100644
--- a/jstests/core/opcounters_write_cmd.js
+++ b/jstests/core/opcounters_write_cmd.js
@@ -1,4 +1,7 @@
// Test that opcounters get incremented properly.
+// @tags: [
+// uses_multiple_connections,
+// ]
// Legacy write mode test also available at jstests/gle.
var mongo = new Mongo(db.getMongo().host);
diff --git a/jstests/core/profile1.js b/jstests/core/profile1.js
index 76c82e52a09..09f1655937c 100644
--- a/jstests/core/profile1.js
+++ b/jstests/core/profile1.js
@@ -1,4 +1,5 @@
// @tags: [
+// assumes_superuser_permissions,
// creates_and_authenticates_user,
// does_not_support_stepdowns,
// requires_capped,
diff --git a/jstests/core/profile3.js b/jstests/core/profile3.js
index b59e0b1f674..71baa67e563 100644
--- a/jstests/core/profile3.js
+++ b/jstests/core/profile3.js
@@ -1,4 +1,8 @@
-// @tags: [requires_profiling, creates_and_authenticates_user]
+// @tags: [
+// assumes_superuser_permissions,
+// creates_and_authenticates_user,
+// requires_profiling,
+// ]
// special db so that it can be run in parallel tests
var stddb = db;
var db = db.getSisterDB("profile3");
diff --git a/jstests/core/queryoptimizer3.js b/jstests/core/queryoptimizer3.js
index d5a1b856d95..277ad738ce1 100644
--- a/jstests/core/queryoptimizer3.js
+++ b/jstests/core/queryoptimizer3.js
@@ -6,7 +6,11 @@
// starved frequently.
// Note: this tag can be safely removed once PM-697 is complete and replaces distlocks with a
// LockManager that has a fairness policy, which distlocks lack.
-// @tags: [assumes_against_mongod_not_mongos, requires_non_retryable_writes]
+// @tags: [
+// assumes_against_mongod_not_mongos,
+// requires_non_retryable_writes,
+// uses_multiple_connections,
+// ]
(function() {
'use strict';
diff --git a/jstests/core/remove9.js b/jstests/core/remove9.js
index 138df6647be..8762e3944ff 100644
--- a/jstests/core/remove9.js
+++ b/jstests/core/remove9.js
@@ -1,4 +1,8 @@
-// @tags: [requires_getmore, requires_non_retryable_writes]
+// @tags: [
+// requires_getmore,
+// requires_non_retryable_writes,
+// uses_multiple_connections,
+// ]
// SERVER-2009 Count odd numbered entries while updating and deleting even numbered entries.
diff --git a/jstests/core/removeb.js b/jstests/core/removeb.js
index d73e9394d3b..4cf00d46ffa 100644
--- a/jstests/core/removeb.js
+++ b/jstests/core/removeb.js
@@ -1,4 +1,8 @@
-// @tags: [requires_non_retryable_writes, requires_fastcount]
+// @tags: [
+// requires_fastcount,
+// requires_non_retryable_writes,
+// uses_multiple_connections,
+// ]
// Test removal of Records that have been reused since the remove operation began. SERVER-5198
diff --git a/jstests/core/removec.js b/jstests/core/removec.js
index 64d486285e9..0e5d3e65ad2 100644
--- a/jstests/core/removec.js
+++ b/jstests/core/removec.js
@@ -1,4 +1,7 @@
-// @tags: [requires_non_retryable_writes]
+// @tags: [
+// requires_non_retryable_writes,
+// uses_multiple_connections,
+// ]
// Sanity test for removing documents with adjacent index keys. SERVER-2008
diff --git a/jstests/core/rename8.js b/jstests/core/rename8.js
index 923b0a52cec..8a775bafecb 100644
--- a/jstests/core/rename8.js
+++ b/jstests/core/rename8.js
@@ -1,4 +1,7 @@
-// @tags: [requires_non_retryable_commands]
+// @tags: [
+// assumes_superuser_permissions,
+// requires_non_retryable_commands,
+// ]
// SERVER-12591: prevent renaming to arbitrary system collections.
diff --git a/jstests/core/role_management_helpers.js b/jstests/core/role_management_helpers.js
index 445d85cc74e..b0f1762acf9 100644
--- a/jstests/core/role_management_helpers.js
+++ b/jstests/core/role_management_helpers.js
@@ -1,7 +1,8 @@
// @tags: [
-// requires_non_retryable_commands,
-// requires_auth,
-// assumes_write_concern_unchanged,
+// assumes_superuser_permissions,
+// assumes_write_concern_unchanged,
+// requires_auth,
+// requires_non_retryable_commands,
// ]
// This test is a basic sanity check of the shell helpers for manipulating role objects
diff --git a/jstests/core/set_param1.js b/jstests/core/set_param1.js
index 06b1365cbeb..7910c01aa96 100644
--- a/jstests/core/set_param1.js
+++ b/jstests/core/set_param1.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// assumes_superuser_permissions,
+// does_not_support_stepdowns,
+// ]
// Tests for accessing logLevel server parameter using getParameter/setParameter commands
// and shell helpers.
diff --git a/jstests/core/shell_connection_strings.js b/jstests/core/shell_connection_strings.js
index 22861e6ce25..ff9aa727480 100644
--- a/jstests/core/shell_connection_strings.js
+++ b/jstests/core/shell_connection_strings.js
@@ -1,4 +1,7 @@
// Test mongo shell connect strings.
+// @tags: [
+// uses_multiple_connections,
+// ]
(function() {
'use strict';
diff --git a/jstests/core/shellstartparallel.js b/jstests/core/shellstartparallel.js
index 8dfd1604dcc..947ddf24bf4 100644
--- a/jstests/core/shellstartparallel.js
+++ b/jstests/core/shellstartparallel.js
@@ -1,4 +1,7 @@
-// @tags: [requires_fastcount]
+// @tags: [
+// requires_fastcount,
+// uses_multiple_connections,
+// ]
function f() {
throw Error("intentional_throw_to_test_assert_throws");
diff --git a/jstests/core/splitvector.js b/jstests/core/splitvector.js
index 77a13f9e932..f30d2fdc386 100644
--- a/jstests/core/splitvector.js
+++ b/jstests/core/splitvector.js
@@ -1,15 +1,15 @@
// @tags: [
-// # Cannot implicitly shard accessed collections because the "splitVector" command cannot be
-// # run on a sharded collection
-// assumes_unsharded_collection,
-// requires_fastcount,
-// requires_collstats,
-// # rollbacks make WT RecordStore dataSize go out of sync, which negatively impacts the
-// # splitVector calculations.
-// does_not_support_stepdowns,
-//
-// # splitVector command is not available on embedded
-// incompatible_with_embedded,
+// assumes_superuser_permissions,
+// # Cannot implicitly shard accessed collections because the "splitVector" command cannot be run
+// # on a sharded collection
+// assumes_unsharded_collection,
+// # rollbacks make WT RecordStore dataSize go out of sync, which negatively impacts the
+// # splitVector calculations.
+// does_not_support_stepdowns,
+// # splitVector command is not available on embedded
+// incompatible_with_embedded,
+// requires_collstats,
+// requires_fastcount,
// ]
// -------------------------
diff --git a/jstests/core/stages_and_hash.js b/jstests/core/stages_and_hash.js
index 512ca9bcb38..aa91f27e542 100644
--- a/jstests/core/stages_and_hash.js
+++ b/jstests/core/stages_and_hash.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
t = db.stages_and_hashed;
t.drop();
diff --git a/jstests/core/stages_and_sorted.js b/jstests/core/stages_and_sorted.js
index 0df186f0f2b..97387d84064 100644
--- a/jstests/core/stages_and_sorted.js
+++ b/jstests/core/stages_and_sorted.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
t = db.stages_and_sorted;
t.drop();
diff --git a/jstests/core/stages_collection_scan.js b/jstests/core/stages_collection_scan.js
index df9612947be..d1b6dc178f8 100644
--- a/jstests/core/stages_collection_scan.js
+++ b/jstests/core/stages_collection_scan.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
// Test basic query stage collection scan functionality.
t = db.stages_collection_scan;
diff --git a/jstests/core/stages_delete.js b/jstests/core/stages_delete.js
index e7d32c268f7..88d70a39ec3 100644
--- a/jstests/core/stages_delete.js
+++ b/jstests/core/stages_delete.js
@@ -4,6 +4,7 @@
// assumes_write_concern_unchanged,
// does_not_support_stepdowns,
// requires_fastcount,
+// uses_testing_only_commands,
// ]
// Test basic delete stage functionality.
diff --git a/jstests/core/stages_fetch.js b/jstests/core/stages_fetch.js
index a2c826739cc..48d761e53e7 100644
--- a/jstests/core/stages_fetch.js
+++ b/jstests/core/stages_fetch.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
// Test basic fetch functionality.
t = db.stages_fetch;
diff --git a/jstests/core/stages_ixscan.js b/jstests/core/stages_ixscan.js
index 9eb6d9ebfbc..7bfa4c5b4c4 100644
--- a/jstests/core/stages_ixscan.js
+++ b/jstests/core/stages_ixscan.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
// Test basic query stage index scan functionality.
t = db.stages_ixscan;
diff --git a/jstests/core/stages_limit_skip.js b/jstests/core/stages_limit_skip.js
index eec25de69ff..b2621623260 100644
--- a/jstests/core/stages_limit_skip.js
+++ b/jstests/core/stages_limit_skip.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
// Test limit and skip
t = db.stages_limit_skip;
diff --git a/jstests/core/stages_mergesort.js b/jstests/core/stages_mergesort.js
index 670efbb18d6..c4c4125c1f3 100644
--- a/jstests/core/stages_mergesort.js
+++ b/jstests/core/stages_mergesort.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
// Test query stage merge sorting.
t = db.stages_mergesort;
diff --git a/jstests/core/stages_or.js b/jstests/core/stages_or.js
index c5305e3ee37..0fd78bdfc5c 100644
--- a/jstests/core/stages_or.js
+++ b/jstests/core/stages_or.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
// Test basic OR functionality
t = db.stages_or;
diff --git a/jstests/core/stages_text.js b/jstests/core/stages_text.js
index 0abe8b82007..50182b04bb4 100644
--- a/jstests/core/stages_text.js
+++ b/jstests/core/stages_text.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
// Test very basic functionality of text stage
diff --git a/jstests/core/updatef.js b/jstests/core/updatef.js
index 78c7e6173c7..75b61e299cd 100644
--- a/jstests/core/updatef.js
+++ b/jstests/core/updatef.js
@@ -1,4 +1,8 @@
-// @tags: [requires_non_retryable_commands, requires_non_retryable_writes]
+// @tags: [
+// requires_non_retryable_commands,
+// requires_non_retryable_writes,
+// uses_multiple_connections,
+// ]
// Test unsafe management of nsdt on update command yield SERVER-3208
diff --git a/jstests/core/user_management_helpers.js b/jstests/core/user_management_helpers.js
index 3d3b1b49c68..4bd64d51864 100644
--- a/jstests/core/user_management_helpers.js
+++ b/jstests/core/user_management_helpers.js
@@ -1,9 +1,10 @@
// @tags: [
-// assumes_write_concern_unchanged,
-// creates_and_authenticates_user,
-// requires_auth,
-// requires_non_retryable_commands,
-// ]
+// assumes_superuser_permissions,
+// assumes_write_concern_unchanged,
+// creates_and_authenticates_user,
+// requires_auth,
+// requires_non_retryable_commands,
+// ]
// This test is a basic sanity check of the shell helpers for manipulating user objects
// It is not a comprehensive test of the functionality of the user manipulation commands
diff --git a/jstests/core/validate_user_documents.js b/jstests/core/validate_user_documents.js
index a9b2b96d526..3ab4ef1e1fd 100644
--- a/jstests/core/validate_user_documents.js
+++ b/jstests/core/validate_user_documents.js
@@ -1,8 +1,9 @@
// @tags: [
-// requires_non_retryable_commands,
-// requires_auth,
-// assumes_write_concern_unchanged
-// ]
+// assumes_superuser_permissions,
+// assumes_write_concern_unchanged,
+// requires_auth,
+// requires_non_retryable_commands,
+// ]
// Ensure that inserts and updates of the system.users collection validate the schema of inserted
// documents.
diff --git a/jstests/core/views/duplicate_ns.js b/jstests/core/views/duplicate_ns.js
index 1053226e2d4..2ef02cd6bc1 100644
--- a/jstests/core/views/duplicate_ns.js
+++ b/jstests/core/views/duplicate_ns.js
@@ -1,4 +1,7 @@
-// @tags: [requires_non_retryable_writes]
+// @tags: [
+// assumes_superuser_permissions,
+// requires_non_retryable_writes,
+// ]
// Test the creation of view with a duplicate name to a collection.
diff --git a/jstests/core/views/invalid_system_views.js b/jstests/core/views/invalid_system_views.js
index 6924268105d..c7d758415a7 100644
--- a/jstests/core/views/invalid_system_views.js
+++ b/jstests/core/views/invalid_system_views.js
@@ -3,11 +3,11 @@
* collections.
*
* @tags: [
- * requires_non_retryable_commands,
- * requires_non_retryable_writes,
- *
- * # applyOps uses the oplog that require replication support
- * requires_replication,
+ * assumes_superuser_permissions,
+ * requires_non_retryable_commands,
+ * requires_non_retryable_writes,
+ * # applyOps uses the oplog that require replication support
+ * requires_replication,
* ]
*/
diff --git a/jstests/core/views/views_all_commands.js b/jstests/core/views/views_all_commands.js
index 3b6f73796bc..06956366f6b 100644
--- a/jstests/core/views/views_all_commands.js
+++ b/jstests/core/views/views_all_commands.js
@@ -1,9 +1,10 @@
// @tags: [
+// assumes_superuser_permissions,
// does_not_support_stepdowns,
+// requires_fastcount,
// requires_getmore,
// requires_non_retryable_commands,
// requires_non_retryable_writes,
-// requires_fastcount,
// ]
/*
diff --git a/jstests/core/views/views_change.js b/jstests/core/views/views_change.js
index c8035642ddf..f3bd8880a8c 100644
--- a/jstests/core/views/views_change.js
+++ b/jstests/core/views/views_change.js
@@ -1,6 +1,10 @@
/**
* Tests the behavior of views when the backing view or collection is changed.
- * @tags: [requires_find_command, requires_non_retryable_commands]
+ * @tags: [
+ * assumes_superuser_permissions,
+ * requires_find_command,
+ * requires_non_retryable_commands,
+ * ]
*/
(function() {
"use strict";
diff --git a/jstests/core/views/views_creation.js b/jstests/core/views/views_creation.js
index 02d5a426f83..2312b78e646 100644
--- a/jstests/core/views/views_creation.js
+++ b/jstests/core/views/views_creation.js
@@ -1,4 +1,7 @@
// Test the creation of views with various options.
+// @tags: [
+// assumes_superuser_permissions,
+// ]
(function() {
"use strict";
diff --git a/jstests/core/views/views_drop.js b/jstests/core/views/views_drop.js
index bf3498d85a6..d93def18eae 100644
--- a/jstests/core/views/views_drop.js
+++ b/jstests/core/views/views_drop.js
@@ -1,7 +1,10 @@
/**
* Tests the behavior of views when its backing collection is dropped, as well as the behavior of
* system.views when views are dropped.
- * @tags: [requires_find_command]
+ * @tags: [
+ * assumes_superuser_permissions,
+ * requires_find_command,
+ * ]
*/
(function() {
"use strict";
diff --git a/jstests/core/views/views_rename.js b/jstests/core/views/views_rename.js
index 2d6de5290d3..3ece5d8269c 100644
--- a/jstests/core/views/views_rename.js
+++ b/jstests/core/views/views_rename.js
@@ -1,4 +1,8 @@
-// @tags: [requires_non_retryable_commands, requires_fastcount]
+// @tags: [
+// assumes_superuser_permissions,
+// requires_fastcount,
+// requires_non_retryable_commands,
+// ]
(function() {
// SERVER-30406 Test that renaming system.views correctly invalidates the view catalog