summaryrefslogtreecommitdiff
path: root/jstests/repl/repl1.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/repl/repl1.js')
-rw-r--r--jstests/repl/repl1.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/jstests/repl/repl1.js b/jstests/repl/repl1.js
new file mode 100644
index 0000000..60f3942
--- /dev/null
+++ b/jstests/repl/repl1.js
@@ -0,0 +1,55 @@
+// Test basic replication functionality
+
+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;
+ } );
+}
+
+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() );
+
+ rt.stop();
+}
+
+doTest( 15 ); // SIGTERM
+doTest( 9 ); // SIGKILL