mirror of
https://github.com/mongodb/mongo.git
synced 2024-12-01 09:32:32 +01:00
72 lines
2.0 KiB
JavaScript
72 lines
2.0 KiB
JavaScript
Random.setRandomSeed();
|
|
|
|
db.capped7.drop();
|
|
db._dbCommand( { create: "capped7", capped: true, size: 1000, $nExtents: 11, autoIndexId: false } );
|
|
tzz = db.capped7;
|
|
|
|
var ten = new Array( 11 ).toString().replace( /,/g, "-" );
|
|
|
|
count = 0;
|
|
|
|
function insertUntilFull() {
|
|
count = tzz.count();
|
|
var j = 0;
|
|
while( 1 ) {
|
|
tzz.save( {i:ten,j:j++} );
|
|
var newCount = tzz.count();
|
|
if ( count == newCount ) {
|
|
break;
|
|
}
|
|
count = newCount;
|
|
}
|
|
}
|
|
|
|
insertUntilFull();
|
|
|
|
oldCount = count;
|
|
|
|
assert.eq.automsg( "11", "tzz.stats().numExtents" );
|
|
var oldSize = tzz.stats().storageSize;
|
|
|
|
assert.commandWorked( db._dbCommand( { emptycapped: "capped7" } ) );
|
|
|
|
assert.eq.automsg( "11", "tzz.stats().numExtents" );
|
|
assert.eq.automsg( "oldSize", "tzz.stats().storageSize" );
|
|
|
|
assert.eq.automsg( "0", "tzz.find().itcount()" );
|
|
assert.eq.automsg( "0", "tzz.count()" );
|
|
|
|
insertUntilFull();
|
|
|
|
assert.eq.automsg( "oldCount", "count" );
|
|
assert.eq.automsg( "oldCount", "tzz.find().itcount()" );
|
|
assert.eq.automsg( "oldCount", "tzz.count()" );
|
|
|
|
assert.eq.automsg( "11", "tzz.stats().numExtents" );
|
|
var oldSize = tzz.stats().storageSize;
|
|
|
|
assert.commandWorked( db._dbCommand( { emptycapped: "capped7" } ) );
|
|
|
|
assert.eq.automsg( "11", "tzz.stats().numExtents" );
|
|
assert.eq.automsg( "oldSize", "tzz.stats().storageSize" );
|
|
|
|
var total = Random.randInt( 2000 );
|
|
for( var j = 1; j <= total; ++j ) {
|
|
tzz.save( {i:ten,j:j} );
|
|
if ( Random.rand() > 0.95 ) {
|
|
assert.automsg( "j >= tzz.count()" );
|
|
assert.eq.automsg( "tzz.count()", "tzz.find().itcount()" );
|
|
var c = tzz.find().sort( {$natural:-1} );
|
|
var k = j;
|
|
assert.automsg( "c.hasNext()" );
|
|
while( c.hasNext() ) {
|
|
assert.eq.automsg( "c.next().j", "k--" );
|
|
}
|
|
var c = tzz.find().sort( {$natural:1} );
|
|
assert.automsg( "c.hasNext()" );
|
|
while( c.hasNext() ) {
|
|
assert.eq.automsg( "c.next().j", "++k" );
|
|
}
|
|
assert.eq.automsg( "j", "k" );
|
|
}
|
|
} |