diff options
author | dwight <dwight@dwights-MacBook-Pro.local> | 2010-07-30 11:09:00 -0400 |
---|---|---|
committer | dwight <dwight@dwights-MacBook-Pro.local> | 2010-07-30 11:09:00 -0400 |
commit | 2b8634ff6e9414bf22f1812f624d8925f369b939 (patch) | |
tree | 174e977060c9655c2f72658771e9cac1da38a9ce | |
parent | 78fc92c7bcf7ca04427f8f049e6f8581fc7f26a5 (diff) | |
parent | db8b0eb35e935df858efccb9f5d5be1adc754ad1 (diff) | |
download | mongo-2b8634ff6e9414bf22f1812f624d8925f369b939.tar.gz |
Merge branch 'master' of git@github.com:mongodb/mongo
-rw-r--r-- | jstests/replsets/replsetrestart1.js (renamed from jstests/replsets/replsetrestart.js) | 0 | ||||
-rw-r--r-- | jstests/replsets/replsetrestart2.js | 46 | ||||
-rw-r--r-- | jstests/replsets/sync1.js | 3 | ||||
-rw-r--r-- | shell/servers.js | 14 |
4 files changed, 61 insertions, 2 deletions
diff --git a/jstests/replsets/replsetrestart.js b/jstests/replsets/replsetrestart1.js index 65adaf4ae4b..65adaf4ae4b 100644 --- a/jstests/replsets/replsetrestart.js +++ b/jstests/replsets/replsetrestart1.js diff --git a/jstests/replsets/replsetrestart2.js b/jstests/replsets/replsetrestart2.js new file mode 100644 index 00000000000..a383b341b4f --- /dev/null +++ b/jstests/replsets/replsetrestart2.js @@ -0,0 +1,46 @@ +// config saved on shutdown + +var compare_configs = function(c1, c2) { + assert(c1.version == c2.version, 'version same'); + assert(c1._id == c2._id, '_id same'); + + printjson(c1); + printjson(c2); + + for (var i in c1.members) { + assert(c2.members[i] !== undefined, 'field '+i+' exists in both configs'); + assert(c1.members[i]._id == c2.members[i]._id, 'id is equal in both configs'); + assert(c1.members[i].host == c2.members[i].host, 'id is equal in both configs'); + } +} + +doTest = function( signal ) { + var replTest = new ReplSetTest( {name: 'testSet', nodes: 3} ); + replTest.startSet(); + + sleep(5000); + + replTest.initiate(); + + sleep(5000); + + var master = replTest.getMaster(); + var config = master.getDB("local").system.replset.findOne(); + + replTest.stopSet( signal ); + + replTest.restart(0); + replTest.restart(1); + replTest.restart(2); + + sleep(5000); + + master = replTest.getMaster(); + var config2 = master.getDB("local").system.replset.findOne(); + + compare_configs(config, config2); + + replTest.stopSet( signal ); +} + +doTest( 15 ); diff --git a/jstests/replsets/sync1.js b/jstests/replsets/sync1.js index 2732ea39739..a07bcf9782a 100644 --- a/jstests/replsets/sync1.js +++ b/jstests/replsets/sync1.js @@ -72,8 +72,7 @@ doTest = function( signal ) { count++; if (count == 100) { - print("replsets/sync1.js fails timing out"); - assert(false); + assert(false, "replsets/sync1.js fails timing out"); break; } } while (max1.z != max2.z); diff --git a/shell/servers.js b/shell/servers.js index e6e03551bf6..1f66780b428 100644 --- a/shell/servers.js +++ b/shell/servers.js @@ -1158,6 +1158,14 @@ ReplSetTest.prototype.awaitReplication = function() { }); } +/** + * Starts up a server. + * + * @param {int} n server number (0, 1, 2, ...) + * @param {object} [options] + * @param {boolean} [restart] If false, the data directory will be cleared + * before the server starts. Defaults to false. + */ ReplSetTest.prototype.start = function( n , options , restart ){ var lockFile = this.getPath( n ) + "/mongod.lock"; removeFile( lockFile ); @@ -1172,6 +1180,12 @@ ReplSetTest.prototype.start = function( n , options , restart ){ } } +/** + * Restarts a db without clearing the data directory. If the server is not + * stopped first, this function will not work. + * + * @param {int} n server number (0, 1, 2, ...) + */ ReplSetTest.prototype.restart = function( n , options ){ return this.start( n , options , true ); } |