summaryrefslogtreecommitdiff
path: root/jstests/repl/repl16.js
blob: 143bab60968465dbe7b15e3b5a072be33b7f34e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Test deduping of new documents with, and without, _ids.
// SERVER-4940

if ( 0 ) {

function doTest( insert ) {
        
    rt = new ReplTest( "repl16tests" );
    master = rt.start( true );
    master.getDB( 'd' ).createCollection( 'c', { capped:true, size:5*1024, autoIndexId:false } );
    mc = master.getDB( 'd' )[ 'c' ];

    insert( {a:1} );
    insert( {a:2} );

    slave = rt.start( false );
    sc = slave.getDB( 'd' )[ 'c' ];

    // Wait for the slave to copy the documents.
    assert.soon( function() { return sc.count() == 2; } );
    
    insert( {a:1} );
    insert( {a:2} );
    insert( {a:3} );
    assert.eq( 5, mc.count() );
    
    // Wait for the slave to apply the operations.
    assert.soon( function() { return sc.count() == 5; } );

    rt.stop();

}

function insertWithIds( obj ) {
    mc.insert( obj );
}

function insertWithoutIds( obj ) {
    // Insert 'obj' via an upsert operation with a match expression that cannot match any documents.
    // The insert operation is avoided because the mongo shell adds an _id on insert.
    mc.update( { $where:'false' }, obj, true );
}

doTest( insertWithIds );
doTest( insertWithoutIds );

}