summaryrefslogtreecommitdiff
path: root/jstests/serial_run
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2017-03-03 11:23:24 -0500
committerBenety Goh <benety@mongodb.com>2017-03-03 13:53:56 -0500
commit30b80c79081ff98b513c6c61e9dbae82242689ae (patch)
treee40a7bdd7a896cef8639e0fa1818bea28ab38a08 /jstests/serial_run
parent6a6bffee00e95776f7dd50e96aa0b8874ca7a01d (diff)
downloadmongo-30b80c79081ff98b513c6c61e9dbae82242689ae.tar.gz
SERVER-28184 removed election_timing.js
Also removed jstests/libs/election_timing_test.js Since disabling the timing checks in SERVER-26142, election_timing.js is reduced to a series of test cases that trigger elections by stepping down or stopping the primary under various election configurations (protocol version 0 or 1). A typical election_timing.js test run typically takes longer than 10 minutes which is a little excessive compared to existing replica set tests. This makes election_timing.js redundant with existing C++ unit tests and JS tests in jstests/replsets.
Diffstat (limited to 'jstests/serial_run')
-rw-r--r--jstests/serial_run/election_timing.js143
1 files changed, 0 insertions, 143 deletions
diff --git a/jstests/serial_run/election_timing.js b/jstests/serial_run/election_timing.js
deleted file mode 100644
index 2d17aee5f4e..00000000000
--- a/jstests/serial_run/election_timing.js
+++ /dev/null
@@ -1,143 +0,0 @@
-// Run a small set of tests using the ElectionTimingTest framework. While this
-// reports the timing of the election, we are using it to check if any errors happen
-// during different election cycles.
-(function() {
- "use strict";
- load("jstests/libs/election_timing_test.js");
- var testStart = Date.now();
-
- var testCases = [
- {
- name: "testV1Stop",
- description: "protocolVersion 1, primary is stopped",
- protocolVersion: 1,
- // testRuns is the number of times a new ReplSetTest will be used.
- testRuns: 1,
- // testCycles is the number of election cycles that will be run per ReplSetTest lifespan.
- testCycles: 5,
- // testSetup is run after the replSet is initiated.
- // Function.prototype is the default.
- testSetup: Function.prototype,
- // Trigger an election by stepping down, stopping, or partitioning the primary.
- // stopPrimary is the default.
- electionTrigger: ElectionTimingTest.prototype.stopPrimary,
- // After the election has completed, make the old primary available again.
- // stopPrimaryReset is the default.
- testReset: ElectionTimingTest.prototype.stopPrimaryReset
- },
-
- /*
- This test case is flakey since waiting for the old primary to shutdown can take longer than
- the
- allowed timeout, even if a new primary was elected during the shutdown time.
-
- {
- name: "testV1StopTimeout1500",
- description: "protocolVersion 1, primary is stopped, electionTimeoutMillis set to 1500",
- protocolVersion: 1,
- testRuns: 1,
- testCycles: 5,
- // The settings object is merged into the replset config settings object.
- settings: {electionTimeoutMillis: 1500}
- },
- */
-
- {
- name: "testV1StepDown",
- description: "protocolVersion 1, primary is stepped down",
- protocolVersion: 1,
- testRuns: 1,
- testCycles: 5,
- electionTrigger: ElectionTimingTest.prototype.stepDownPrimary,
- testReset: ElectionTimingTest.prototype.stepDownPrimaryReset,
- },
-
- {
- name: "testV1StepDown1500",
- description: "protocolVersion 1, primary is stepped down",
- protocolVersion: 1,
- testRuns: 1,
- testCycles: 5,
- electionTrigger: ElectionTimingTest.prototype.stepDownPrimary,
- testReset: ElectionTimingTest.prototype.stepDownPrimaryReset,
- // The settings object is merged into the replset config settings object.
- settings: {electionTimeoutMillis: 1500}
- },
-
- {
- name: "testV1StepDownLargeCluster",
- description: "protocolVersion 1, primary is stepped down, 7 electable nodes",
- protocolVersion: 1,
- nodes: 7,
- testRuns: 1,
- testCycles: 5,
- electionTrigger: ElectionTimingTest.prototype.stepDownPrimary,
- testReset: function() {},
- waitForNewPrimary: function(rst, secondary) {
- rst.getPrimary();
- }
- },
-
- {
- name: "testV0Stop",
- description: "protocolVersion 0, primary is stopped",
- protocolVersion: 0,
- testRuns: 1,
- testCycles: 1
- },
-
- {
- name: "testV0StepDown",
- description: "protocolVersion 0, primary is stepped down",
- protocolVersion: 0,
- testRuns: 1,
- testCycles: 2,
- stepDownGuardTime: 30,
- // There is a guard time in pv0 that prevents an election right
- // after initiating.
- testSetup: function() {
- sleep(30 * 1000);
- },
- electionTrigger: ElectionTimingTest.prototype.stepDownPrimary,
- testReset: ElectionTimingTest.prototype.stepDownPrimaryReset
- },
-
- ];
-
- testCases.forEach(function(tc) {
- var testRun = new ElectionTimingTest(tc);
- tc.testResults = testRun.testResults;
- tc.electionTimeoutLimitMillis = testRun.electionTimeoutLimitMillis;
-
- if (testRun.testErrors.length) {
- // Stop tests if we encounter an error.
- // Dump available information for debugging.
- jsTestLog("Errors from: " + tc.name);
- printjson(tc);
- printjson(testRun.testErrors);
- throw new Error(testRun.testErrors[0].status);
- }
- // Print results of current test in case
- // we need to analyze a failed test later.
- jsTestLog("Raw Results: " + tc.name);
- printjson(tc.testResults);
- });
-
- testCases.forEach(function(tc) {
- var allResults = [];
- tc.testResults.forEach(function(tr) {
- allResults = allResults.concat(tr.results);
- });
-
- var resAvg = Array.avg(allResults);
- var resMin = Math.min(...allResults);
- var resMax = Math.max(...allResults);
- var resStdDev = Array.stdDev(allResults);
-
- jsTestLog("Results: " + tc.name + " Average over " + allResults.length + " runs: " +
- resAvg + " Min: " + resMin + " Max: " + resMax + " StdDev: " +
- resStdDev.toFixed(4));
- });
-
- jsTestLog("Tests completed in: " + (Date.now() - testStart) / 1000 + " seconds");
-}());