// 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; }