summaryrefslogtreecommitdiff
path: root/jstests/replsets/replset3.js
diff options
context:
space:
mode:
authorDwight <dwight@10gen.com>2010-10-04 14:02:44 -0400
committerDwight <dwight@10gen.com>2010-10-04 14:02:44 -0400
commit47e170fb0d7b306ef7c32cc79f511d11e49900df (patch)
tree693957d73e84d58e2d495b0ee05bc245cb9e800e /jstests/replsets/replset3.js
parent322b2ab6c60f89c87366a51ec29ac53066b5e5f4 (diff)
downloadmongo-47e170fb0d7b306ef7c32cc79f511d11e49900df.tar.gz
try to fix test for new rs semantics
Diffstat (limited to 'jstests/replsets/replset3.js')
-rw-r--r--jstests/replsets/replset3.js130
1 files changed, 77 insertions, 53 deletions
diff --git a/jstests/replsets/replset3.js b/jstests/replsets/replset3.js
index 8126b9d35a0..faa0627ff95 100644
--- a/jstests/replsets/replset3.js
+++ b/jstests/replsets/replset3.js
@@ -1,56 +1,80 @@
-
-doTest = function( signal ) {
-
- // Test replica set step down
-
- // Replica set testing API
- // Create a new replica set test. Specify set name and the number of nodes you want.
- var replTest = new ReplSetTest( {name: 'testSet', nodes: 3} );
-
- // call startSet() to start each mongod in the replica set
- // this returns a list of nodes
- var nodes = replTest.startSet();
-
- // Call initiate() to send the replSetInitiate command
- // This will wait for initiation
- replTest.initiate();
-
- // Get master node
- var master = replTest.getMaster();
-
- // Write some data to master
- // NOTE: this test fails unless we write some data.
- master.getDB("foo").foo.save({a: 1});
- master.getDB("foo").runCommand({getlasterror: 1, w:3, wtimeout: 20000});
-
- // Step down master
- master.getDB("admin").runCommand({replSetStepDown: true});
-
- try {
- var new_master = replTest.getMaster();
- }
- catch( err ) {
- throw( "Could not elect new master before timeout." );
- }
-
- assert( master != new_master, "Old master shouldn't be equal to new master." );
-
- // Make sure that slaves are still up
- var result = new_master.getDB("admin").runCommand({replSetGetStatus: 1});
- assert( result['ok'] == 1, "Could not verify that slaves were still up:" + result );
-
- slaves = replTest.liveNodes.slaves;
- assert.soon(function() {
- res = slaves[0].getDB("admin").runCommand({replSetGetStatus: 1})
- return res.myState == 2;
- }, "Slave 0 state not ready.");
-
- assert.soon(function() {
- res = slaves[1].getDB("admin").runCommand({replSetGetStatus: 1})
- return res.myState == 2;
- }, "Slave 1 state not ready.");
-
- replTest.stopSet( 15 );
+
+doTest = function (signal) {
+
+ // Test replica set step down
+
+ // Replica set testing API
+ // Create a new replica set test. Specify set name and the number of nodes you want.
+ var replTest = new ReplSetTest({ name: 'testSet', nodes: 3 });
+
+ // call startSet() to start each mongod in the replica set
+ // this returns a list of nodes
+ var nodes = replTest.startSet();
+
+ // Call initiate() to send the replSetInitiate command
+ // This will wait for initiation
+ replTest.initiate();
+
+ // Get master node
+ var master = replTest.getMaster();
+
+ // Write some data to master
+ // NOTE: this test fails unless we write some data.
+ master.getDB("foo").foo.save({ a: 1 });
+ master.getDB("foo").runCommand({ getlasterror: 1, w: 3, wtimeout: 20000 });
+
+ var phase = 1;
+
+ print(phase++);
+
+ // Step down master. Note: this may close our connection!
+ try {
+ master.getDB("admin").runCommand({ replSetStepDown: true });
+ } catch (err) {
+ print("caught: " + err + " on stepdown");
+ }
+
+ print(phase++);
+
+ try {
+ var new_master = replTest.getMaster();
+ }
+ catch (err) {
+ throw ("Could not elect new master before timeout.");
+ }
+
+ print(phase++);
+
+ assert(master != new_master, "Old master shouldn't be equal to new master.");
+
+ print(phase++);
+
+ // Make sure that slaves are still up
+ var result = new_master.getDB("admin").runCommand({ replSetGetStatus: 1 });
+ assert(result['ok'] == 1, "Could not verify that slaves were still up:" + result);
+
+ print(phase++);
+
+ slaves = replTest.liveNodes.slaves;
+ assert.soon(function () {
+ try {
+ res = slaves[0].getDB("admin").runCommand({ replSetGetStatus: 1 })
+ } catch (err) { }
+ return res.myState == 2;
+ }, "Slave 0 state not ready.");
+
+ print(phase++);
+
+ assert.soon(function () {
+ try {
+ res = slaves[1].getDB("admin").runCommand({ replSetGetStatus: 1 })
+ } catch (err) { }
+ return res.myState == 2;
+ }, "Slave 1 state not ready.");
+
+ print("replset3.js SUCCESS");
+
+ replTest.stopSet(15);
}
doTest( 15 );