/** * 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();