2009-05-18 19:25:30 +02:00
|
|
|
t = db.jstests_capped3;
|
|
|
|
t2 = db.jstests_capped3_clone;
|
|
|
|
t.drop();
|
|
|
|
t2.drop();
|
|
|
|
for( i = 0; i < 1000; ++i ) {
|
|
|
|
t.save( {i:i} );
|
|
|
|
}
|
2010-02-10 02:20:20 +01:00
|
|
|
assert.commandWorked( db.runCommand( { cloneCollectionAsCapped:"jstests_capped3", toCollection:"jstests_capped3_clone", size:100000 } ), "A" );
|
2009-05-18 19:25:30 +02:00
|
|
|
c = t2.find();
|
|
|
|
for( i = 0; i < 1000; ++i ) {
|
2010-02-10 02:20:20 +01:00
|
|
|
assert.eq( i, c.next().i, "B" );
|
2009-05-18 19:25:30 +02:00
|
|
|
}
|
2010-02-10 02:20:20 +01:00
|
|
|
assert( !c.hasNext(), "C" );
|
2009-05-18 19:25:30 +02:00
|
|
|
|
|
|
|
t.drop();
|
|
|
|
t2.drop();
|
|
|
|
|
|
|
|
for( i = 0; i < 1000; ++i ) {
|
|
|
|
t.save( {i:i} );
|
|
|
|
}
|
2010-02-10 02:20:20 +01:00
|
|
|
assert.commandWorked( db.runCommand( { cloneCollectionAsCapped:"jstests_capped3", toCollection:"jstests_capped3_clone", size:1000 } ), "D" );
|
2009-05-18 19:25:30 +02:00
|
|
|
c = t2.find().sort( {$natural:-1} );
|
|
|
|
i = 999;
|
|
|
|
while( c.hasNext() ) {
|
2010-02-10 02:20:20 +01:00
|
|
|
assert.eq( i--, c.next().i, "E" );
|
2009-05-18 19:25:30 +02:00
|
|
|
}
|
2010-03-15 18:30:11 +01:00
|
|
|
print( "i: " + i );
|
|
|
|
print( "stats: " + tojson( t2.stats() ) );
|
2010-02-10 02:20:20 +01:00
|
|
|
assert( i < 990, "F" );
|
2009-05-18 22:25:17 +02:00
|
|
|
|
|
|
|
t.drop();
|
|
|
|
t2.drop();
|
|
|
|
|
|
|
|
for( i = 0; i < 1000; ++i ) {
|
|
|
|
t.save( {i:i} );
|
|
|
|
}
|
2010-02-10 02:20:20 +01:00
|
|
|
assert.commandWorked( t.convertToCapped( 1000 ), "G" );
|
2009-05-18 22:25:17 +02:00
|
|
|
c = t.find().sort( {$natural:-1} );
|
|
|
|
i = 999;
|
|
|
|
while( c.hasNext() ) {
|
2010-02-10 02:20:20 +01:00
|
|
|
assert.eq( i--, c.next().i, "H" );
|
2009-05-18 22:25:17 +02:00
|
|
|
}
|
2010-02-10 02:20:20 +01:00
|
|
|
assert( i < 990, "I" );
|
|
|
|
assert( i > 900, "J" );
|