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 ); 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" );