summaryrefslogtreecommitdiff
path: root/jstests/noPassthrough/skip_sharding_configuration_checks.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/noPassthrough/skip_sharding_configuration_checks.js')
-rw-r--r--jstests/noPassthrough/skip_sharding_configuration_checks.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/jstests/noPassthrough/skip_sharding_configuration_checks.js b/jstests/noPassthrough/skip_sharding_configuration_checks.js
new file mode 100644
index 00000000000..d2a6651084d
--- /dev/null
+++ b/jstests/noPassthrough/skip_sharding_configuration_checks.js
@@ -0,0 +1,55 @@
+/**
+ * Starts standalone RS with skipShardingConfigurationChecks.
+ * This test requires users to persist across a restart.
+ * @tags: [requires_persistence]
+ */
+(function() {
+ 'use strict';
+
+ function expectState(rst, state) {
+ assert.soon(function() {
+ var status = rst.status();
+ if (status.myState != state) {
+ print("Waiting for state " + state + " in replSetGetStatus output: " +
+ tojson(status));
+ }
+ return status.myState == state;
+ });
+ }
+
+ var configSvr = MongoRunner.runMongod(
+ {configsvr: "", setParameter: 'skipShardingConfigurationChecks=true'});
+ assert.eq(configSvr, null);
+
+ var shardSvr = MongoRunner.runMongod(
+ {shardsvr: "", setParameter: 'skipShardingConfigurationChecks=true'});
+ assert.eq(shardSvr, null);
+
+ var st =
+ new ShardingTest({name: "skipConfig", shards: {rs0: {nodes: 1}}, other: {sync: false}});
+ var configRS = st.configRS;
+ var shardRS = st.rs0;
+
+ st.stopAllMongos();
+ shardRS.stopSet(15, true);
+ configRS.stopSet(undefined, true);
+
+ jsTestLog("Restarting configRS as a standalone ReplicaSet");
+
+ for (var i = 0; i < configRS.nodes.length; i++) {
+ delete configRS.nodes[i].fullOptions.configsvr;
+ configRS.nodes[i].fullOptions.setParameter = 'skipShardingConfigurationChecks=true';
+ }
+ configRS.startSet({}, true);
+ expectState(configRS, ReplSetTest.State.PRIMARY);
+ configRS.stopSet();
+
+ jsTestLog("Restarting shardRS as a standalone ReplicaSet");
+ for (var i = 0; i < shardRS.nodes.length; i++) {
+ delete shardRS.nodes[i].fullOptions.shardsvr;
+ shardRS.nodes[i].fullOptions.setParameter = 'skipShardingConfigurationChecks=true';
+ }
+ shardRS.startSet({}, true);
+ expectState(shardRS, ReplSetTest.State.PRIMARY);
+ shardRS.stopSet();
+})();