diff options
Diffstat (limited to 'jstests/profile3.js')
-rw-r--r-- | jstests/profile3.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/jstests/profile3.js b/jstests/profile3.js new file mode 100644 index 00000000000..89fa0a33269 --- /dev/null +++ b/jstests/profile3.js @@ -0,0 +1,54 @@ + +// special db so that it can be run in parallel tests +var stddb = db; +var db = db.getSisterDB("profile3"); + +db.dropAllUsers(); +t = db.profile3; +t.drop(); + +profileCursor = function( query ) { + print( "----" ); + query = query || {}; + Object.extend( query, { user: username + "@" + db.getName() } ); + return db.system.profile.find( query ); +} + +try { + username = "jstests_profile3_user"; + db.createUser({user: username, pwd: "password", roles: jsTest.basicUserRoles}); + db.auth( username, "password" ); + + db.setProfilingLevel(0); + + db.system.profile.drop(); + assert.eq( 0 , profileCursor().count() ) + + db.setProfilingLevel(2); + + db.createCollection(t.getName(), {usePowerOf2Sizes: false}); + t.insert( { x : 1 } ); + t.findOne( { x : 1 } ); + t.find( { x : 1 } ).count(); + t.update( { x : 1 }, {$inc:{a:1}} ); + t.update( { x : 1 }, {$inc:{a:1}} ); + t.update( { x : 0 }, {$inc:{a:1}} ); + + profileCursor().forEach( printjson ) + + db.setProfilingLevel(0); + + + assert.eq(profileCursor({nMatched: {$exists:1}}).count(), 3) + assert.eq(profileCursor({nMatched: 1}).count(), 2) + assert.eq(profileCursor({nMatched: 0}).count(), 1) + assert.eq(profileCursor({nmoved: 1}).count(), 1) + + db.system.profile.drop(); + +} +finally { + db.setProfilingLevel(0); + db = stddb; +} + |