diff options
Diffstat (limited to 'jstests/gle/block2.js')
-rw-r--r-- | jstests/gle/block2.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/jstests/gle/block2.js b/jstests/gle/block2.js new file mode 100644 index 00000000000..142d51519b2 --- /dev/null +++ b/jstests/gle/block2.js @@ -0,0 +1,58 @@ +/** + * Basic gle testing for master/slave environment. Write command version also + * available at jstests/repl. + */ + +var rt = new ReplTest( "block1" ); + +var m = rt.start( true ); +var s = rt.start( false ); + +if (m.writeMode() == 'commands') { + jsTest.log('Skipping test since commands mode is already tested in repl/'); +} +else { + + function setup(){ + + dbm = m.getDB( "foo" ); + dbs = s.getDB( "foo" ); + + tm = dbm.bar; + ts = dbs.bar; + } + setup(); + + function check( msg ){ + assert.eq( tm.count() , ts.count() , "check: " + msg ); + } + + function worked( w , wtimeout ){ + var gle = dbm.getLastError( w , wtimeout ); + if (gle != null) { + printjson(gle); + } + return gle == null; + } + + check( "A" ); + + tm.save( { x : 1 } ); + assert( worked( 2 ) , "B" ); + + tm.save( { x : 2 } ); + assert( worked( 2 , 3000 ) , "C" ); + + rt.stop( false ); + tm.save( { x : 3 } ); + assert.eq( 3 , tm.count() , "D1" ); + assert( ! worked( 2 , 3000 ) , "D2" ); + + s = rt.start( false ); + setup(); + assert( worked( 2 , 30000 ) , "E" ); + +} + +rt.stop(); + |