diff options
Diffstat (limited to 'jstests/noPassthrough/query_yield1.js')
-rw-r--r-- | jstests/noPassthrough/query_yield1.js | 134 |
1 files changed, 68 insertions, 66 deletions
diff --git a/jstests/noPassthrough/query_yield1.js b/jstests/noPassthrough/query_yield1.js index 50b7d4bf60d..22e95a1fb32 100644 --- a/jstests/noPassthrough/query_yield1.js +++ b/jstests/noPassthrough/query_yield1.js @@ -1,89 +1,91 @@ -if (0) { // Test disabled until SERVER-8579 is finished. Reminder ticket: SERVER-8342 +if (0) { // Test disabled until SERVER-8579 is finished. Reminder ticket: SERVER-8342 -load( "jstests/libs/slow_weekly_util.js" ); -testServer = new SlowWeeklyMongod( "query_yield1" ); -db = testServer.getDB( "test" ); + load("jstests/libs/slow_weekly_util.js"); + testServer = new SlowWeeklyMongod("query_yield1"); + db = testServer.getDB("test"); -t = db.query_yield1; -t.drop(); + t = db.query_yield1; + t.drop(); -N = 20000; -i = 0; + N = 20000; + i = 0; -q = function(){ var x=this.n; for ( var i=0; i<250; i++ ){ x = x * 2; } return false; }; - -while ( true ){ - function fill(){ - var bulk = t.initializeUnorderedBulkOp(); - for ( ; i<N; i++ ){ - bulk.insert({ _id: i, n: 1 }); + q = function() { + var x = this.n; + for (var i = 0; i < 250; i++) { + x = x * 2; } - assert.writeOK(bulk.execute()); - } - - function timeQuery(){ - return Date.timeFunc( - function(){ - assert.eq( 0 , t.find( q ).itcount() ); + return false; + }; + + while (true) { + function fill() { + var bulk = t.initializeUnorderedBulkOp(); + for (; i < N; i++) { + bulk.insert({_id: i, n: 1}); } - ); - + assert.writeOK(bulk.execute()); + } + + function timeQuery() { + return Date.timeFunc(function() { + assert.eq(0, t.find(q).itcount()); + }); + } + + fill(); + timeQuery(); + timeQuery(); + time = timeQuery(); + print(N + "\t" + time); + if (time > 2000) + break; + + N *= 2; } - - fill(); - timeQuery(); - timeQuery(); - time = timeQuery(); - print( N + "\t" + time ); - if ( time > 2000 ) - break; - - N *= 2; -} -// --- test 1 + // --- test 1 -assert.eq( 0, db.currentOp().inprog.length , "setup broken" ); + assert.eq(0, db.currentOp().inprog.length, "setup broken"); -join = startParallelShell( "print( 0 == db.query_yield1.find( function(){ var x=this.n; for ( var i=0; i<500; i++ ){ x = x * 2; } return false; } ).itcount() ); " ); + join = startParallelShell( + "print( 0 == db.query_yield1.find( function(){ var x=this.n; for ( var i=0; i<500; i++ ){ x = x * 2; } return false; } ).itcount() ); "); -assert.soon( - function(){ + assert.soon(function() { var x = db.currentOp().inprog; return x.length > 0; - } , "never doing query" , 2000 , 1 -); + }, "never doing query", 2000, 1); -print( "start query" ); + print("start query"); -num = 0; -start = new Date(); -biggestMe = 0; -while ( ( (new Date()).getTime() - start ) < ( time * 2 ) ){ - var me = Date.timeFunc( function(){ t.insert( { x : 1 } ); }); - var x = db.currentOp(); + num = 0; + start = new Date(); + biggestMe = 0; + while (((new Date()).getTime() - start) < (time * 2)) { + var me = Date.timeFunc(function() { + t.insert({x: 1}); + }); + var x = db.currentOp(); - if ( num++ == 0 ){ - assert.eq( 1 , x.inprog.length , "nothing in prog" ); - } - - if ( me > biggestMe ) { - biggestMe = me; - print( "biggestMe: " + biggestMe ); - } - - assert.gt( 200 , me , "took too long for me to run" ); + if (num++ == 0) { + assert.eq(1, x.inprog.length, "nothing in prog"); + } - if ( x.inprog.length == 0 ) - break; + if (me > biggestMe) { + biggestMe = me; + print("biggestMe: " + biggestMe); + } -} + assert.gt(200, me, "took too long for me to run"); -join(); + if (x.inprog.length == 0) + break; + } -var x = db.currentOp(); -assert.eq( 0 , x.inprog.length , "weird 2" ); + join(); -testServer.stop(); + var x = db.currentOp(); + assert.eq(0, x.inprog.length, "weird 2"); + testServer.stop(); } |