diff options
Diffstat (limited to 'jstests/repl/repl1.js')
-rw-r--r-- | jstests/repl/repl1.js | 96 |
1 files changed, 49 insertions, 47 deletions
diff --git a/jstests/repl/repl1.js b/jstests/repl/repl1.js index 1bdfaa00bdd..ea8f85a6260 100644 --- a/jstests/repl/repl1.js +++ b/jstests/repl/repl1.js @@ -8,55 +8,57 @@ var baseName = "jstests_repl1test"; -soonCount = function( count ) { - assert.soon( function() { -// print( "check count" ); -// print( "count: " + s.getDB( baseName ).z.find().count() ); - return s.getDB( baseName ).a.find().count() == count; - } ); +soonCount = function(count) { + assert.soon(function() { + // print( "check count" ); + // print( "count: " + s.getDB( baseName ).z.find().count() ); + return s.getDB(baseName).a.find().count() == count; + }); }; -doTest = function( signal ) { - - rt = new ReplTest( "repl1tests" ); - - m = rt.start( true ); - s = rt.start( false ); - - am = m.getDB( baseName ).a; - - for( i = 0; i < 1000; ++i ) - am.save( { _id: new ObjectId(), i: i } ); - - soonCount( 1000 ); - as = s.getDB( baseName ).a; - assert.eq( 1, as.find( { i: 0 } ).count() ); - assert.eq( 1, as.find( { i: 999 } ).count() ); - - rt.stop( false, signal ); - - for( i = 1000; i < 1010; ++i ) - am.save( { _id: new ObjectId(), i: i } ); - - s = rt.start( false, null, true ); - soonCount( 1010 ); - as = s.getDB( baseName ).a; - assert.eq( 1, as.find( { i: 1009 } ).count() ); - - rt.stop( true, signal ); - - m = rt.start( true, null, true ); - am = m.getDB( baseName ).a; - - for( i = 1010; i < 1020; ++i ) - am.save( { _id: new ObjectId(), i: i } ); - - assert.soon( function() { return as.find().count() == 1020; } ); - assert.eq( 1, as.find( { i: 1019 } ).count() ); - - assert.automsg( "m.getDB( 'local' ).getCollection( 'oplog.$main' ).stats().size > 0" ); - +doTest = function(signal) { + + rt = new ReplTest("repl1tests"); + + m = rt.start(true); + s = rt.start(false); + + am = m.getDB(baseName).a; + + for (i = 0; i < 1000; ++i) + am.save({_id: new ObjectId(), i: i}); + + soonCount(1000); + as = s.getDB(baseName).a; + assert.eq(1, as.find({i: 0}).count()); + assert.eq(1, as.find({i: 999}).count()); + + rt.stop(false, signal); + + for (i = 1000; i < 1010; ++i) + am.save({_id: new ObjectId(), i: i}); + + s = rt.start(false, null, true); + soonCount(1010); + as = s.getDB(baseName).a; + assert.eq(1, as.find({i: 1009}).count()); + + rt.stop(true, signal); + + m = rt.start(true, null, true); + am = m.getDB(baseName).a; + + for (i = 1010; i < 1020; ++i) + am.save({_id: new ObjectId(), i: i}); + + assert.soon(function() { + return as.find().count() == 1020; + }); + assert.eq(1, as.find({i: 1019}).count()); + + assert.automsg("m.getDB( 'local' ).getCollection( 'oplog.$main' ).stats().size > 0"); + rt.stop(); }; -doTest( 15 ); // SIGTERM +doTest(15); // SIGTERM |