diff options
author | Aaron <aaron@10gen.com> | 2009-04-03 15:06:08 -0400 |
---|---|---|
committer | Aaron <aaron@10gen.com> | 2009-04-03 15:06:08 -0400 |
commit | ebaf4292d6a78eb84ef027380beedb829b278082 (patch) | |
tree | b82d2a3a8553fccd2f55701fa9358cb193ce9416 | |
parent | 15abe0c3887c77d780ee6d9bae0731c04ab8bbb0 (diff) | |
download | mongo-ebaf4292d6a78eb84ef027380beedb829b278082.tar.gz |
disconnect / reconnect one node at a time
-rw-r--r-- | jstests/repl/pair3.js | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/jstests/repl/pair3.js b/jstests/repl/pair3.js index e406223864b..eb7038a7bba 100644 --- a/jstests/repl/pair3.js +++ b/jstests/repl/pair3.js @@ -107,6 +107,80 @@ doTest = function() { return ( lm == -3 ); } ); + // reconnect + connect(); + assert.soon( function() { + lm = ismaster( l ); + rm = ismaster( r ); + + assert( lm == -3 || lm == 0, "lm value invalid" ); + assert( rm == -3 || rm == 1, "rm value invalid" ); + + return ( lm == 0 && rm == 1 ); + } ); + + // disconnect l ( slave ) + + stopMongoProgram( alPort ); + stopMongoProgram( lpPort ); + stopMongoProgram( rpPort ); + + assert.soon( function() { + lm = ismaster( l ); + rm = ismaster( r ); + + assert( lm == 0 || lm == -3, "lm value invalid" ); + assert( rm == 1, "rm value invalid" ); + + return ( lm == -3 ); + } ); + + // reconnect l + + startMongoProgram( "mongobridge", "--port", alPort, "--dest", "localhost:" + aPort ); + startMongoProgram( "mongobridge", "--port", lpPort, "--dest", "localhost:" + lPort ); + startMongoProgram( "mongobridge", "--port", rpPort, "--dest", "localhost:" + rPort ); + + assert.soon( function() { + lm = ismaster( l ); + rm = ismaster( r ); + + assert( lm == 0 || lm == -3, "lm value invalid" ); + assert( rm == 1, "rm value invalid" ); + + return ( lm == 0 ); + } ); + + // disconnect r ( master ) + stopMongoProgram( arPort ); + stopMongoProgram( lpPort ); + stopMongoProgram( rpPort ); + + assert.soon( function() { + lm = ismaster( l ); + rm = ismaster( r ); + + assert( lm == 0 || lm == 1, "lm value invalid" ); + assert( rm == 1 || rm == -3, "rm value invalid" ); + + return ( rm == -3 && lm == 1 ); + } ); + + // reconnect r + startMongoProgram( "mongobridge", "--port", arPort, "--dest", "localhost:" + aPort ); + startMongoProgram( "mongobridge", "--port", lpPort, "--dest", "localhost:" + lPort ); + startMongoProgram( "mongobridge", "--port", rpPort, "--dest", "localhost:" + rPort ); + + assert.soon( function() { + lm = ismaster( l ); + rm = ismaster( r ); + + assert( rm == 0 || rm == -3, "lm value invalid" ); + assert( lm == 1, "rm value invalid" ); + + return ( rm == 0 ); + } ); + } doTest(); |