summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Hirschhorn <max.hirschhorn@mongodb.com>2019-01-22 22:12:08 -0500
committerMax Hirschhorn <max.hirschhorn@mongodb.com>2019-01-22 22:12:08 -0500
commit05ec08fa62771582fb3f45160fff2e0ff184d6d9 (patch)
treee386f539f71b56a4f7c07f4e61487b0d1e223546
parent167861a164723168adfaaa866f310cb94010428f (diff)
downloadmongo-v3.6.9-dbaas-testing.tar.gz
SERVER-39097 Tag JS tests with reason they're unable to run in Atlas.v3.6.9-dbaas-testing
-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.js3
-rw-r--r--jstests/aggregation/bugs/server7781.js3
-rw-r--r--jstests/aggregation/mongos_merge.js5
-rw-r--r--jstests/aggregation/mongos_slaveok.js3
-rw-r--r--jstests/aggregation/shard_targeting.js5
-rw-r--r--jstests/aggregation/sources/addFields/use_cases.js3
-rw-r--r--jstests/aggregation/sources/addFields/weather.js3
-rw-r--r--jstests/aggregation/sources/collStats/shard_host_info.js3
-rw-r--r--jstests/aggregation/sources/facet/use_cases.js3
-rw-r--r--jstests/aggregation/sources/graphLookup/sharded.js3
-rw-r--r--jstests/aggregation/sources/lookup/lookup.js3
-rw-r--r--jstests/aggregation/sources/replaceRoot/address.js3
-rw-r--r--jstests/aggregation/testSlave.js3
-rw-r--r--jstests/aggregation/testshard1.js4
-rw-r--r--jstests/change_streams/invalid_namespaces.js5
-rw-r--r--jstests/change_streams/lookup_post_image.js5
-rw-r--r--jstests/change_streams/lookup_post_image_resume_after.js5
-rw-r--r--jstests/change_streams/only_wake_getmore_for_relevant_changes.js3
-rw-r--r--jstests/core/apply_ops1.js6
-rw-r--r--jstests/core/apply_ops_atomicity.js5
-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.js1
-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.js3
-rw-r--r--jstests/core/capped_empty.js6
-rw-r--r--jstests/core/capped_update.js3
-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.js3
-rw-r--r--jstests/core/connection_status.js1
-rw-r--r--jstests/core/connection_string_validation.js3
-rw-r--r--jstests/core/count10.js1
-rw-r--r--jstests/core/count_plan_summary.js1
-rw-r--r--jstests/core/create_indexes.js5
-rw-r--r--jstests/core/currentop.js3
-rw-r--r--jstests/core/cursora.js7
-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.js5
-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.js3
-rw-r--r--jstests/core/list_all_local_cursors.js6
-rw-r--r--jstests/core/list_all_sessions.js6
-rw-r--r--jstests/core/list_collections_no_views.js3
-rw-r--r--jstests/core/list_sessions.js6
-rw-r--r--jstests/core/loadserverscripts.js6
-rw-r--r--jstests/core/logprocessdetails.js5
-rw-r--r--jstests/core/max_time_ms.js3
-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.js5
-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.js7
-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.js1
-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.js6
-rw-r--r--jstests/core/views/views_all_commands.js5
-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
98 files changed, 357 insertions, 66 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 a8d00d9a07b..d9d96e20197 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 4e98ee17eb5..168cd9c2df6 100644
--- a/jstests/aggregation/bugs/server6179.js
+++ b/jstests/aggregation/bugs/server6179.js
@@ -1,4 +1,7 @@
// SERVER-6179: support for two $groups in sharded agg
+// @tags: [
+// requires_spawning_own_processes,
+// ]
(function() {
'use strict';
diff --git a/jstests/aggregation/bugs/server7781.js b/jstests/aggregation/bugs/server7781.js
index cfa10c699ed..737a73270de 100644
--- a/jstests/aggregation/bugs/server7781.js
+++ b/jstests/aggregation/bugs/server7781.js
@@ -1,4 +1,7 @@
// SERVER-7781 $geoNear pipeline stage
+// @tags: [
+// requires_spawning_own_processes,
+// ]
(function() {
'use strict';
diff --git a/jstests/aggregation/mongos_merge.js b/jstests/aggregation/mongos_merge.js
index ca03cbbe42e..09103907699 100644
--- a/jstests/aggregation/mongos_merge.js
+++ b/jstests/aggregation/mongos_merge.js
@@ -10,7 +10,10 @@
* 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]
+ * @tags: [
+ * do_not_wrap_aggregations_in_facets,
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
diff --git a/jstests/aggregation/mongos_slaveok.js b/jstests/aggregation/mongos_slaveok.js
index 58440deed14..fd868d2bbd1 100644
--- a/jstests/aggregation/mongos_slaveok.js
+++ b/jstests/aggregation/mongos_slaveok.js
@@ -1,6 +1,9 @@
/**
* Tests aggregate command against mongos with slaveOk. For more tests on read preference,
* please refer to jstests/sharding/read_pref_cmd.js.
+ * @tags: [
+ * 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 c78bb93a29a..1e6855b4287 100644
--- a/jstests/aggregation/shard_targeting.js
+++ b/jstests/aggregation/shard_targeting.js
@@ -20,7 +20,10 @@
* 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]
+ * @tags: [
+ * do_not_wrap_aggregations_in_facets,
+ * 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 725408fb40d..51d53b95853 100644
--- a/jstests/aggregation/sources/addFields/use_cases.js
+++ b/jstests/aggregation/sources/addFields/use_cases.js
@@ -2,6 +2,9 @@
* $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_spawning_own_processes,
+ * ]
*/
(function() {
diff --git a/jstests/aggregation/sources/addFields/weather.js b/jstests/aggregation/sources/addFields/weather.js
index 7e2be837329..d5009b42821 100644
--- a/jstests/aggregation/sources/addFields/weather.js
+++ b/jstests/aggregation/sources/addFields/weather.js
@@ -2,6 +2,9 @@
* $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_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 0c78137930f..e56d420661c 100644
--- a/jstests/aggregation/sources/collStats/shard_host_info.js
+++ b/jstests/aggregation/sources/collStats/shard_host_info.js
@@ -1,6 +1,9 @@
/**
* 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_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 45791cab5d3..0dfd835083d 100644
--- a/jstests/aggregation/sources/facet/use_cases.js
+++ b/jstests/aggregation/sources/facet/use_cases.js
@@ -1,5 +1,8 @@
/**
* Tests some practical use cases of the $facet stage.
+ * @tags: [
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
"use strict";
diff --git a/jstests/aggregation/sources/graphLookup/sharded.js b/jstests/aggregation/sources/graphLookup/sharded.js
index 78429a5af6d..d07e596e609 100644
--- a/jstests/aggregation/sources/graphLookup/sharded.js
+++ b/jstests/aggregation/sources/graphLookup/sharded.js
@@ -1,4 +1,7 @@
// In SERVER-23725, $graphLookup was introduced. In this file, we test that the expression behaves
+// @tags: [
+// requires_spawning_own_processes,
+// ]
// correctly on a sharded collection.
load("jstests/aggregation/extras/utils.js"); // For assertErrorCode.
diff --git a/jstests/aggregation/sources/lookup/lookup.js b/jstests/aggregation/sources/lookup/lookup.js
index 90b4669d886..97b15fa2b35 100644
--- a/jstests/aggregation/sources/lookup/lookup.js
+++ b/jstests/aggregation/sources/lookup/lookup.js
@@ -1,4 +1,7 @@
// Basic $lookup regression tests.
+// @tags: [
+// 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 0d2b22224a8..fd688d1a653 100644
--- a/jstests/aggregation/sources/replaceRoot/address.js
+++ b/jstests/aggregation/sources/replaceRoot/address.js
@@ -1,5 +1,8 @@
/**
* $replaceRoot can be used to extract parts of a document; here we test a simple address case.
+ * @tags: [
+ * requires_spawning_own_processes,
+ * ]
*/
(function() {
diff --git a/jstests/aggregation/testSlave.js b/jstests/aggregation/testSlave.js
index 0a03d68a49b..68459f2db2e 100644
--- a/jstests/aggregation/testSlave.js
+++ b/jstests/aggregation/testSlave.js
@@ -1,4 +1,7 @@
// This test just make sure that aggregation is possible on a secondary node.
+// @tags: [
+// 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 3445dc8363d..77834114096 100644
--- a/jstests/aggregation/testshard1.js
+++ b/jstests/aggregation/testshard1.js
@@ -1,3 +1,7 @@
+// @tags: [
+// requires_spawning_own_processes,
+// ]
+
load('jstests/aggregation/extras/utils.js');
load('jstests/libs/analyze_plan.js'); // For planHasStage.
diff --git a/jstests/change_streams/invalid_namespaces.js b/jstests/change_streams/invalid_namespaces.js
index ed1c98af9f7..7f2cfc36879 100644
--- a/jstests/change_streams/invalid_namespaces.js
+++ b/jstests/change_streams/invalid_namespaces.js
@@ -1,7 +1,10 @@
// Tests that the namespace being watched cannot be a system namespace.
// Mark as assumes_read_preference_unchanged since reading from the non-replicated "system.profile"
// collection results in a failure in the secondary reads suite.
-// @tags: [assumes_read_preference_unchanged]
+// @tags: [
+// assumes_read_preference_unchanged,
+// assumes_superuser_permissions,
+// ]
(function() {
"use strict";
diff --git a/jstests/change_streams/lookup_post_image.js b/jstests/change_streams/lookup_post_image.js
index ce22137f09c..d6973a12b96 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/lookup_post_image_resume_after.js b/jstests/change_streams/lookup_post_image_resume_after.js
index b2d8e345679..e1d43e08a03 100644
--- a/jstests/change_streams/lookup_post_image_resume_after.js
+++ b/jstests/change_streams/lookup_post_image_resume_after.js
@@ -1,6 +1,9 @@
// Tests the behavior of using fullDocument: "updateLookup" with a resumeToken, possibly from far
// enough in the past that the document doesn't exist yet.
-// @tags: [uses_resume_after]
+// @tags: [
+// uses_multiple_connections,
+// uses_resume_after,
+// ]
(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 8a42a176628..a4de03a2205 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 1e6efcfa126..c57f22d1c43 100644
--- a/jstests/core/apply_ops1.js
+++ b/jstests/core/apply_ops1.js
@@ -1,4 +1,8 @@
-// @tags: [requires_non_retryable_commands, requires_fastcount]
+// @tags: [
+// assumes_superuser_permissions,
+// requires_fastcount,
+// requires_non_retryable_commands,
+// ]
(function() {
"use strict";
diff --git a/jstests/core/apply_ops_atomicity.js b/jstests/core/apply_ops_atomicity.js
index ad494a2f7c1..be11344fce4 100644
--- a/jstests/core/apply_ops_atomicity.js
+++ b/jstests/core/apply_ops_atomicity.js
@@ -1,4 +1,7 @@
-// @tags: [requires_non_retryable_commands]
+// @tags: [
+// assumes_superuser_permissions,
+// requires_non_retryable_commands,
+// ]
// SERVER-23326: Make applyOps atomic for CRUD operations
(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 359bde9d973..9c0c048be1e 100644
--- a/jstests/core/awaitdata_getmore_cmd.js
+++ b/jstests/core/awaitdata_getmore_cmd.js
@@ -6,6 +6,7 @@
// # routed to the primary.
// assumes_read_preference_unchanged,
// 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 6905a0f1f13..c2bf576583a 100644
--- a/jstests/core/capped6.js
+++ b/jstests/core/capped6.js
@@ -5,8 +5,9 @@
// # 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_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 aaac7639f2a..46181390338 100644
--- a/jstests/core/capped_empty.js
+++ b/jstests/core/capped_empty.js
@@ -1,4 +1,8 @@
-// @tags: [requires_non_retryable_commands, requires_fastcount]
+// @tags: [
+// 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 3ae434a8334..a7df680327b 100644
--- a/jstests/core/capped_update.js
+++ b/jstests/core/capped_update.js
@@ -2,6 +2,9 @@
* 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: [
+ * 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 f2da7597cdf..ff04a3a9451 100644
--- a/jstests/core/compact_keeps_indexes.js
+++ b/jstests/core/compact_keeps_indexes.js
@@ -1,4 +1,7 @@
// SERVER-16676 Make sure compact doesn't leave the collection with bad indexes
+// @tags: [
+// uses_multiple_connections,
+// ]
// SERVER-16967 Make sure compact doesn't crash while collections are being dropped
// in a different database.
diff --git a/jstests/core/connection_status.js b/jstests/core/connection_status.js
index 536443aaf9b..efb3eb3fd4f 100644
--- a/jstests/core/connection_status.js
+++ b/jstests/core/connection_status.js
@@ -1,4 +1,5 @@
// @tags: [
+// assumes_superuser_permissions,
// assumes_write_concern_unchanged,
// creates_and_authenticates_user,
// requires_auth,
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 75838521527..1c8682e94c4 100644
--- a/jstests/core/count10.js
+++ b/jstests/core/count10.js
@@ -6,6 +6,7 @@
// # routed to the primary.
// assumes_read_preference_unchanged,
// does_not_support_stepdowns,
+// uses_multiple_connections,
// ]
t = db.count10;
diff --git a/jstests/core/count_plan_summary.js b/jstests/core/count_plan_summary.js
index b928eb287fc..7d1075d8f91 100644
--- a/jstests/core/count_plan_summary.js
+++ b/jstests/core/count_plan_summary.js
@@ -6,6 +6,7 @@
// # routed to the primary.
// assumes_read_preference_unchanged,
// does_not_support_stepdowns,
+// 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 e10b86a4e64..16eef935835 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 a27fbbd47e2..ab1e2a26dc1 100644
--- a/jstests/core/currentop.js
+++ b/jstests/core/currentop.js
@@ -1,5 +1,8 @@
/**
* Tests that long-running operations show up in currentOp and report the locks they are holding.
+ * @tags: [
+ * assumes_superuser_permissions,
+ * ]
*/
(function() {
"use strict";
diff --git a/jstests/core/cursora.js b/jstests/core/cursora.js
index fc6b1bf6192..c30090bed32 100644
--- a/jstests/core/cursora.js
+++ b/jstests/core/cursora.js
@@ -1,4 +1,9 @@
-// @tags: [requires_getmore, requires_non_retryable_writes, requires_fastcount]
+// @tags: [
+// requires_fastcount,
+// requires_getmore,
+// requires_non_retryable_writes,
+// uses_multiple_connections,
+// ]
t = db.cursora;
diff --git a/jstests/core/dbhash2.js b/jstests/core/dbhash2.js
index 85fd63f6362..e283e056ef9 100644
--- a/jstests/core/dbhash2.js
+++ b/jstests/core/dbhash2.js
@@ -1,4 +1,9 @@
+/**
+ * @tags: [
+ * assumes_superuser_permissions,
+ * ]
+ */
mydb = db.getSisterDB("config");
t = mydb.foo;
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 ead81732ecc..1209681ef8d 100644
--- a/jstests/core/find_and_modify_concurrent_update.js
+++ b/jstests/core/find_and_modify_concurrent_update.js
@@ -1,7 +1,10 @@
// 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.
-// @tags: [assumes_unsharded_collection]
+// @tags: [
+// assumes_unsharded_collection,
+// uses_multiple_connections,
+// ]
// Ensures that find and modify will not apply an update to a document which, due to a concurrent
// modification, no longer matches the query predicate.
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 bcf6b860c7c..f7886042003 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 e825c6bd8bf..a6416513f39 100644
--- a/jstests/core/kill_cursors.js
+++ b/jstests/core/kill_cursors.js
@@ -1,4 +1,7 @@
-// @tags: [requires_getmore]
+// @tags: [
+// requires_getmore,
+// uses_testing_only_commands,
+// ]
// Test the killCursors command.
(function() {
diff --git a/jstests/core/killop_drop_collection.js b/jstests/core/killop_drop_collection.js
index 9fa00efa97e..98b187002be 100644
--- a/jstests/core/killop_drop_collection.js
+++ b/jstests/core/killop_drop_collection.js
@@ -3,6 +3,9 @@
* to complete. Interrupting a collection drop could leave the database in an inconsistent state.
* This test confirms that killOp won't interrupt a collection drop, and that the drop occurs
* successfully.
+ * @tags: [
+ * assumes_superuser_permissions,
+ * ]
*/
(function() {
"use strict";
diff --git a/jstests/core/list_all_local_cursors.js b/jstests/core/list_all_local_cursors.js
index 0462f6f88eb..5cc34fd32bf 100644
--- a/jstests/core/list_all_local_cursors.js
+++ b/jstests/core/list_all_local_cursors.js
@@ -2,7 +2,11 @@
//
// $listLocalCursors relies on in-memory state, which may not survive failovers.
// Uses features that require featureCompatibilityVersion 3.6.
-// @tags: [does_not_support_stepdowns, requires_fcv36]
+// @tags: [
+// does_not_support_stepdowns,
+// requires_fcv36,
+// uses_testing_only_commands,
+// ]
(function() {
"use strict";
diff --git a/jstests/core/list_all_sessions.js b/jstests/core/list_all_sessions.js
index 02b9cfec297..7809ab2ee0d 100644
--- a/jstests/core/list_all_sessions.js
+++ b/jstests/core/list_all_sessions.js
@@ -3,7 +3,11 @@
// Sessions are asynchronously flushed to disk, so a stepdown immediately after calling
// startSession may cause this test to fail to find the returned sessionId.
// Uses features that require featureCompatibilityVersion 3.6.
-// @tags: [does_not_support_stepdowns, requires_fcv36]
+// @tags: [
+// does_not_support_stepdowns,
+// requires_fcv36,
+// uses_testing_only_commands,
+// ]
(function() {
'use strict';
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 ad684c1360d..85b42ac4141 100644
--- a/jstests/core/list_sessions.js
+++ b/jstests/core/list_sessions.js
@@ -3,7 +3,11 @@
// Sessions are asynchronously flushed to disk, so a stepdown immediately after calling
// startSession may cause this test to fail to find the returned sessionId.
// Uses features that require featureCompatibilityVersion 3.6.
-// @tags: [does_not_support_stepdowns, requires_fcv36]
+// @tags: [
+// does_not_support_stepdowns,
+// requires_fcv36,
+// uses_testing_only_commands,
+// ]
(function() {
'use strict';
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 57bd184f92e..b6875782800 100644
--- a/jstests/core/max_time_ms.js
+++ b/jstests/core/max_time_ms.js
@@ -5,8 +5,9 @@
// # 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_fastcount,
// requires_getmore,
-// requires_fastcount
+// 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 b2afe735e01..4b92d9f5dac 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 21e42be16b5..9e2fdaee3a1 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 730bb91a33a..99487fb2321 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_collstats,
diff --git a/jstests/core/profile3.js b/jstests/core/profile3.js
index 02c6d272f8e..56d995305b4 100644
--- a/jstests/core/profile3.js
+++ b/jstests/core/profile3.js
@@ -1,4 +1,7 @@
-// @tags: [creates_and_authenticates_user]
+// @tags: [
+// assumes_superuser_permissions,
+// creates_and_authenticates_user,
+// ]
// 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 a0c3c0cc1d4..66c28369cd0 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 e7c0373972c..b87c747f03e 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 f5b038bf2c8..c1dcf1e0f54 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 8766089e89b..bebdc70b151 100644
--- a/jstests/core/splitvector.js
+++ b/jstests/core/splitvector.js
@@ -1,7 +1,12 @@
// Cannot implicitly shard accessed collections because the "splitVector" command cannot be run
// on a sharded collection
//
-// @tags: [assumes_unsharded_collection, requires_fastcount, requires_collstats]
+// @tags: [
+// assumes_superuser_permissions,
+// assumes_unsharded_collection,
+// requires_collstats,
+// requires_fastcount,
+// ]
// -------------------------
// SPLITVECTOR TEST UTILS
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 65d5a37cd43..1e83f875bdb 100644
--- a/jstests/core/user_management_helpers.js
+++ b/jstests/core/user_management_helpers.js
@@ -1,4 +1,5 @@
// @tags: [
+// assumes_superuser_permissions,
// assumes_write_concern_unchanged,
// creates_and_authenticates_user,
// requires_auth,
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 f1b734e92ea..3c224d89676 100644
--- a/jstests/core/views/invalid_system_views.js
+++ b/jstests/core/views/invalid_system_views.js
@@ -1,4 +1,8 @@
-// @tags: [requires_non_retryable_commands, requires_non_retryable_writes]
+// @tags: [
+// assumes_superuser_permissions,
+// requires_non_retryable_commands,
+// requires_non_retryable_writes,
+// ]
/**
* Tests that invalid view definitions in system.views do not impact valid commands on existing
diff --git a/jstests/core/views/views_all_commands.js b/jstests/core/views/views_all_commands.js
index fbdf3942785..69d6d1325f7 100644
--- a/jstests/core/views/views_all_commands.js
+++ b/jstests/core/views/views_all_commands.js
@@ -1,11 +1,12 @@
// Uses features that require featureCompatibilityVersion 3.6.
// @tags: [
-// requires_fcv36,
+// assumes_superuser_permissions,
// does_not_support_stepdowns,
+// requires_fastcount,
+// requires_fcv36,
// 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 c4ade5e728e..031dd6c563c 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