summaryrefslogtreecommitdiff
path: root/jstests/capped3.js
blob: d6d2b23975b0f0b32dd665b359e19f2072714fbe (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
t = db.jstests_capped3;
t2 = db.jstests_capped3_clone;
t.drop();
t2.drop();
for( i = 0; i < 1000; ++i ) {
    t.save( {i:i} );
}
assert.commandWorked( db.runCommand( { cloneCollectionAsCapped:"jstests_capped3", toCollection:"jstests_capped3_clone", size:100000 } ), "A" );
c = t2.find();
for( i = 0; i < 1000; ++i ) {
    assert.eq( i, c.next().i, "B" );
}
assert( !c.hasNext(), "C" );

t.drop();
t2.drop();

for( i = 0; i < 1000; ++i ) {
    t.save( {i:i} );
}
assert.commandWorked( db.runCommand( { cloneCollectionAsCapped:"jstests_capped3", toCollection:"jstests_capped3_clone", size:1000 } ), "D" );
c = t2.find().sort( {$natural:-1} );
i = 999;
while( c.hasNext() ) {
    assert.eq( i--, c.next().i, "E" );
}
//print( "i: " + i );
var str = tojson( t2.stats() );
//print( "stats: " + tojson( t2.stats() ) );
assert( i < 990, "F" );

t.drop();
t2.drop();

for( i = 0; i < 1000; ++i ) {
    t.save( {i:i} );
}
assert.commandWorked( t.convertToCapped( 1000 ), "G" );
c = t.find().sort( {$natural:-1} );
i = 999;
while( c.hasNext() ) {
    assert.eq( i--, c.next().i, "H" );
}
assert( i < 990, "I" );
assert( i > 900, "J" );