summaryrefslogtreecommitdiff
path: root/jstests/replsets/test_command.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/replsets/test_command.js')
-rw-r--r--jstests/replsets/test_command.js255
1 files changed, 126 insertions, 129 deletions
diff --git a/jstests/replsets/test_command.js b/jstests/replsets/test_command.js
index cc4ef0f0d0f..a8228464cef 100644
--- a/jstests/replsets/test_command.js
+++ b/jstests/replsets/test_command.js
@@ -3,143 +3,140 @@
// waitForDrainFinish - waits for primary to finish draining its applier queue.
(function() {
- 'use strict';
- var name = 'test_command';
- var replSet = new ReplSetTest({name: name, nodes: 3});
- var nodes = replSet.nodeList();
- replSet.startSet();
- replSet.initiate({
- _id: name,
- members: [
- {_id: 0, host: nodes[0], priority: 3},
- {_id: 1, host: nodes[1]},
- {_id: 2, host: nodes[2], arbiterOnly: true},
- ],
- });
-
- // Stabilize replica set with node 0 as primary.
-
- assert.commandWorked(replSet.nodes[0].adminCommand({
+'use strict';
+var name = 'test_command';
+var replSet = new ReplSetTest({name: name, nodes: 3});
+var nodes = replSet.nodeList();
+replSet.startSet();
+replSet.initiate({
+ _id: name,
+ members: [
+ {_id: 0, host: nodes[0], priority: 3},
+ {_id: 1, host: nodes[1]},
+ {_id: 2, host: nodes[2], arbiterOnly: true},
+ ],
+});
+
+// Stabilize replica set with node 0 as primary.
+
+assert.commandWorked(replSet.nodes[0].adminCommand({
+ replSetTest: 1,
+ waitForMemberState: ReplSetTest.State.PRIMARY,
+ timeoutMillis: 60 * 1000,
+}),
+ 'node 0' + replSet.nodes[0].host + ' failed to become primary');
+
+// We need the try/catch to handle that the node may have hung up the connection due
+// to a state change.
+try {
+ assert.commandWorked(replSet.nodes[1].adminCommand({
replSetTest: 1,
- waitForMemberState: ReplSetTest.State.PRIMARY,
+ waitForMemberState: ReplSetTest.State.SECONDARY,
timeoutMillis: 60 * 1000,
- }),
- 'node 0' + replSet.nodes[0].host + ' failed to become primary');
-
- // We need the try/catch to handle that the node may have hung up the connection due
- // to a state change.
- try {
- assert.commandWorked(replSet.nodes[1].adminCommand({
- replSetTest: 1,
- waitForMemberState: ReplSetTest.State.SECONDARY,
- timeoutMillis: 60 * 1000,
- }));
- } catch (e) {
- jsTestLog(e);
- assert.commandWorked(replSet.nodes[1].adminCommand({
- replSetTest: 1,
- waitForMemberState: ReplSetTest.State.SECONDARY,
- timeoutMillis: 60 * 1000,
- }),
- 'node 1' + replSet.nodes[1].host + ' failed to become secondary');
- }
-
- var primary = replSet.getPrimary();
- var secondary = replSet.getSecondary();
-
- // Check replication mode.
-
- assert.commandFailedWithCode(primary.getDB(name).runCommand({
- replSetTest: 1,
- }),
- ErrorCodes.Unauthorized,
- 'replSetTest should fail against non-admin database');
-
- assert.commandWorked(primary.adminCommand({
+ }));
+} catch (e) {
+ jsTestLog(e);
+ assert.commandWorked(replSet.nodes[1].adminCommand({
replSetTest: 1,
+ waitForMemberState: ReplSetTest.State.SECONDARY,
+ timeoutMillis: 60 * 1000,
}),
- 'failed to check replication mode');
-
- // waitForMemberState tests.
-
- assert.commandFailedWithCode(
- primary.adminCommand({
- replSetTest: 1,
- waitForMemberState: 'what state',
- timeoutMillis: 1000,
- }),
- ErrorCodes.TypeMismatch,
- 'replSetTest waitForMemberState should fail on non-numerical state');
-
- assert.commandFailedWithCode(
- primary.adminCommand({
- replSetTest: 1,
- waitForMemberState: ReplSetTest.State.PRIMARY,
- timeoutMillis: "what timeout",
- }),
- ErrorCodes.TypeMismatch,
- 'replSetTest waitForMemberState should fail on non-numerical timeout');
-
- assert.commandFailedWithCode(primary.adminCommand({
+ 'node 1' + replSet.nodes[1].host + ' failed to become secondary');
+}
+
+var primary = replSet.getPrimary();
+var secondary = replSet.getSecondary();
+
+// Check replication mode.
+
+assert.commandFailedWithCode(primary.getDB(name).runCommand({
+ replSetTest: 1,
+}),
+ ErrorCodes.Unauthorized,
+ 'replSetTest should fail against non-admin database');
+
+assert.commandWorked(primary.adminCommand({
+ replSetTest: 1,
+}),
+ 'failed to check replication mode');
+
+// waitForMemberState tests.
+
+assert.commandFailedWithCode(primary.adminCommand({
+ replSetTest: 1,
+ waitForMemberState: 'what state',
+ timeoutMillis: 1000,
+}),
+ ErrorCodes.TypeMismatch,
+ 'replSetTest waitForMemberState should fail on non-numerical state');
+
+assert.commandFailedWithCode(primary.adminCommand({
+ replSetTest: 1,
+ waitForMemberState: ReplSetTest.State.PRIMARY,
+ timeoutMillis: "what timeout",
+}),
+ ErrorCodes.TypeMismatch,
+ 'replSetTest waitForMemberState should fail on non-numerical timeout');
+
+assert.commandFailedWithCode(primary.adminCommand({
+ replSetTest: 1,
+ waitForMemberState: 9999,
+ timeoutMillis: 1000,
+}),
+ ErrorCodes.BadValue,
+ 'replSetTest waitForMemberState should fail on invalid state');
+
+assert.commandFailedWithCode(primary.adminCommand({
+ replSetTest: 1,
+ waitForMemberState: ReplSetTest.State.PRIMARY,
+ timeoutMillis: -1000,
+}),
+ ErrorCodes.BadValue,
+ 'replSetTest waitForMemberState should fail on negative timeout');
+
+assert.commandFailedWithCode(
+ primary.adminCommand({
replSetTest: 1,
- waitForMemberState: 9999,
+ waitForMemberState: ReplSetTest.State.SECONDARY,
timeoutMillis: 1000,
}),
- ErrorCodes.BadValue,
- 'replSetTest waitForMemberState should fail on invalid state');
-
- assert.commandFailedWithCode(primary.adminCommand({
- replSetTest: 1,
- waitForMemberState: ReplSetTest.State.PRIMARY,
- timeoutMillis: -1000,
- }),
- ErrorCodes.BadValue,
- 'replSetTest waitForMemberState should fail on negative timeout');
-
- assert.commandFailedWithCode(
- primary.adminCommand({
- replSetTest: 1,
- waitForMemberState: ReplSetTest.State.SECONDARY,
- timeoutMillis: 1000,
- }),
- ErrorCodes.ExceededTimeLimit,
- 'replSetTest waitForMemberState(SECONDARY) should time out on node 0 ' + primary.host);
-
- assert.commandWorked(
- secondary.adminCommand({
- replSetTest: 1,
- waitForMemberState: ReplSetTest.State.SECONDARY,
- timeoutMillis: 1000,
- }),
- 'replSetTest waitForMemberState(SECONDARY) failed on node 1 ' + secondary.host);
-
- // waitForDrainFinish tests.
-
- assert.commandFailedWithCode(
- primary.adminCommand({
- replSetTest: 1,
- waitForDrainFinish: 'what state',
- }),
- ErrorCodes.TypeMismatch,
- 'replSetTest waitForDrainFinish should fail on non-numerical timeout');
-
- assert.commandFailedWithCode(primary.adminCommand({
- replSetTest: 1,
- waitForDrainFinish: -1000,
- }),
- ErrorCodes.BadValue,
- 'replSetTest waitForDrainFinish should fail on negative timeout');
+ ErrorCodes.ExceededTimeLimit,
+ 'replSetTest waitForMemberState(SECONDARY) should time out on node 0 ' + primary.host);
- assert.commandWorked(primary.adminCommand({
+assert.commandWorked(
+ secondary.adminCommand({
replSetTest: 1,
- waitForDrainFinish: 1000,
- }),
- 'node 0' + primary.host + ' failed to wait for drain to finish');
-
- assert.commandWorked(secondary.adminCommand({
- replSetTest: 1,
- waitForDrainFinish: 0,
+ waitForMemberState: ReplSetTest.State.SECONDARY,
+ timeoutMillis: 1000,
}),
- 'node 1' + primary.host + ' failed to wait for drain to finish');
- replSet.stopSet();
+ 'replSetTest waitForMemberState(SECONDARY) failed on node 1 ' + secondary.host);
+
+// waitForDrainFinish tests.
+
+assert.commandFailedWithCode(primary.adminCommand({
+ replSetTest: 1,
+ waitForDrainFinish: 'what state',
+}),
+ ErrorCodes.TypeMismatch,
+ 'replSetTest waitForDrainFinish should fail on non-numerical timeout');
+
+assert.commandFailedWithCode(primary.adminCommand({
+ replSetTest: 1,
+ waitForDrainFinish: -1000,
+}),
+ ErrorCodes.BadValue,
+ 'replSetTest waitForDrainFinish should fail on negative timeout');
+
+assert.commandWorked(primary.adminCommand({
+ replSetTest: 1,
+ waitForDrainFinish: 1000,
+}),
+ 'node 0' + primary.host + ' failed to wait for drain to finish');
+
+assert.commandWorked(secondary.adminCommand({
+ replSetTest: 1,
+ waitForDrainFinish: 0,
+}),
+ 'node 1' + primary.host + ' failed to wait for drain to finish');
+replSet.stopSet();
})();