// Test persistence of list of dbs to add. var getDBNamesNoThrow = function(conn) { try { return conn.getDBNames(); } catch (e) { printjson(e); return [""]; } } doTest = function(signal, extraOpts) { rt = new ReplTest( "repl7tests" ); m = rt.start( true ); for( n = "a"; n != "aaaaa"; n += "a" ) { m.getDB( n ).a.save( {x:1} ); } s = rt.start(false, extraOpts); assert.soon( function() { return -1 != getDBNamesNoThrow(s).indexOf( "aa" ); }, "aa timeout", 60000, 1000 ); rt.stop( false, signal ); s = rt.start(false, extraOpts, signal); assert.soon( function() { for( n = "a"; n != "aaaaa"; n += "a" ) { if ( -1 == getDBNamesNoThrow(s).indexOf( n ) ) return false; } return true; }, "a-aaaa timeout", 60000, 1000 ); assert.soon( function() { for( n = "a"; n != "aaaaa"; n += "a" ) { if ( 1 != m.getDB( n ).a.find().count() ) { return false; } } return true; }, "a-aaaa count timeout" ); sleep( 300 ); rt.stop(); } doTest( 15 ); // SIGTERM doTest(9, { journal: null }); // SIGKILL