summaryrefslogtreecommitdiff
path: root/jstests
diff options
context:
space:
mode:
authorMax Hirschhorn <max.hirschhorn@mongodb.com>2019-03-11 18:18:58 -0400
committerMax Hirschhorn <max.hirschhorn@mongodb.com>2019-03-11 18:18:58 -0400
commit8d817350fbf32a61a9280c84a864222cc99faf27 (patch)
tree6ca794afb0be3f7000952eeb5bcc5cdf9e0622fc /jstests
parent2d58509b392be9a2c98fb4326ae052d7a5b9f4ea (diff)
downloadmongo-8d817350fbf32a61a9280c84a864222cc99faf27.tar.gz
SERVER-40076 Tag JS tests with reason they're unable to run in Atlas.
There are likely more JavaScript tests which have been added since r3.6.9 that still need to be tagged. (cherry picked from commit 05ec08fa62771582fb3f45160fff2e0ff184d6d9)
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/graphLookup/sharded.js5
-rw-r--r--jstests/aggregation/sources/lookup/lookup.js5
-rw-r--r--jstests/aggregation/sources/replaceRoot/address.js5
-rw-r--r--jstests/aggregation/testSlave.js5
-rw-r--r--jstests/aggregation/testshard1.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/auth_copydb.js9
-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/index_bigkeys_nofail.js7
-rw-r--r--jstests/core/index_bigkeys_validation.js5
-rw-r--r--jstests/core/indexes_on_indexes.js3
-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_local_cursors.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.js16
-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
95 files changed, 373 insertions, 124 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 5ed2d58a10e..7bb227b013f 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 d81f6e91cc8..b2eb8176377 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 1295f638910..d599dbb5ee6 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/graphLookup/sharded.js b/jstests/aggregation/sources/graphLookup/sharded.js
index b78649d5824..2082e7a89ea 100644
--- a/jstests/aggregation/sources/graphLookup/sharded.js
+++ b/jstests/aggregation/sources/graphLookup/sharded.js
@@ -1,6 +1,9 @@
// In SERVER-23725, $graphLookup was introduced. In this file, we test that the expression behaves
// correctly on a sharded collection.
-// @tags: [requires_sharding]
+// @tags: [
+// requires_sharding,
+// requires_spawning_own_processes,
+// ]
load("jstests/aggregation/extras/utils.js"); // For assertErrorCode.
(function() {
diff --git a/jstests/aggregation/sources/lookup/lookup.js b/jstests/aggregation/sources/lookup/lookup.js
index ecfdac3f7b9..af2c15cb8b2 100644
--- a/jstests/aggregation/sources/lookup/lookup.js
+++ b/jstests/aggregation/sources/lookup/lookup.js
@@ -1,5 +1,8 @@
// Basic $lookup regression tests.
-// @tags: [requires_sharding]
+// @tags: [
+// requires_sharding,
+// requires_spawning_own_processes,
+// ]
load("jstests/aggregation/extras/utils.js"); // For assertErrorCode.
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/aggregation/testshard1.js b/jstests/aggregation/testshard1.js
index 25cb0689e97..4ae3091b0e1 100644
--- a/jstests/aggregation/testshard1.js
+++ b/jstests/aggregation/testshard1.js
@@ -1,4 +1,7 @@
-// @tags: [requires_sharding]
+// @tags: [
+// requires_sharding,
+// requires_spawning_own_processes,
+// ]
load('jstests/aggregation/extras/utils.js');
load('jstests/libs/analyze_plan.js'); // For planHasStage.
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 cbafe90076e..e667651f8cf 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 e71c33ad9b6..42e3f8f8c01 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/auth_copydb.js b/jstests/core/auth_copydb.js
index b8a85ae1c03..73df1aec8ca 100644
--- a/jstests/core/auth_copydb.js
+++ b/jstests/core/auth_copydb.js
@@ -1,8 +1,9 @@
// @tags: [
-// requires_non_retryable_commands,
-// requires_fastcount,
-// requires_auth,
-// assumes_write_concern_unchanged
+// assumes_superuser_permissions,
+// assumes_write_concern_unchanged,
+// requires_auth,
+// requires_fastcount,
+// requires_non_retryable_commands,
// ]
a = db.getSisterDB("copydb2-test-a");
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 584b06c5703..5b6f0cd3f39 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 30301cd04dd..5d9533f3739 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 a88c0ded2bf..29215c5fff1 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/index_bigkeys_nofail.js b/jstests/core/index_bigkeys_nofail.js
index be58427ba6d..8253ad1a212 100644
--- a/jstests/core/index_bigkeys_nofail.js
+++ b/jstests/core/index_bigkeys_nofail.js
@@ -1,4 +1,9 @@
-// @tags: [does_not_support_stepdowns, requires_non_retryable_writes, requires_fastcount]
+// @tags: [
+// assumes_superuser_permissions,
+// does_not_support_stepdowns,
+// requires_fastcount,
+// requires_non_retryable_writes,
+// ]
// SERVER-16497: Check that failIndexKeyTooLong setting works
(function() {
diff --git a/jstests/core/index_bigkeys_validation.js b/jstests/core/index_bigkeys_validation.js
index bfe620e174a..67d0548a35e 100644
--- a/jstests/core/index_bigkeys_validation.js
+++ b/jstests/core/index_bigkeys_validation.js
@@ -1,4 +1,7 @@
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// assumes_superuser_permissions,
+// does_not_support_stepdowns,
+// ]
// Tests that index validation succeeds for long keys when failIndexKeyTooLong is set to false.
// See: SERVER-22234
diff --git a/jstests/core/indexes_on_indexes.js b/jstests/core/indexes_on_indexes.js
index b7c4b7edcb5..487d8638ce9 100644
--- a/jstests/core/indexes_on_indexes.js
+++ b/jstests/core/indexes_on_indexes.js
@@ -1,4 +1,7 @@
// Ensure an index cannot be created on system.indexes
+// @tags: [
+// assumes_superuser_permissions,
+// ]
(function() {
var t = db.getSiblingDB("indexes_on_indexes");
t.dropDatabase();
diff --git a/jstests/core/insert2.js b/jstests/core/insert2.js
index c039444ed0f..8e75918cef7 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_local_cursors.js b/jstests/core/list_all_local_cursors.js
index 09397467b55..dcedee4f666 100644
--- a/jstests/core/list_all_local_cursors.js
+++ b/jstests/core/list_all_local_cursors.js
@@ -1,5 +1,8 @@
// $listLocalCursors relies on in-memory state, which may not survive failovers.
-// @tags: [does_not_support_stepdowns]
+// @tags: [
+// does_not_support_stepdowns,
+// uses_testing_only_commands,
+// ]
// Basic tests for the $listLocalCursors aggregation stage.
diff --git a/jstests/core/list_all_sessions.js b/jstests/core/list_all_sessions.js
index 1e61e6cfed4..fb06e2ac5c7 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 7ff19c9adce..eb9463faa97 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 70f3ea48372..06a7693dcaf 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 3a810ea142f..e692802e726 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 57205de6b5e..f2f5d6ac9a3 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 d0a2a2fea60..f98cc68a333 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 9880560233b..f8670318157 100644
--- a/jstests/core/splitvector.js
+++ b/jstests/core/splitvector.js
@@ -1,12 +1,12 @@
// @tags: [
-// # Cannot implicitly shard accessed collections because the "splitVector" command cannot be
-// # run on a sharded collection
-// assumes_unsharded_collection,
-// requires_fastcount,
-// requires_collstats,
-//
-// # 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,
+// # 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 b2491097ba9..548dafbd2f0 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 007cbcf42cc..a5d902c9ad9 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 651795b3564..f18f1b8cad9 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 bc2a654415e..5fe0c1b4bae 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