There are likely more JavaScript tests which have been added since
r3.6.9 that still need to be tagged.
(cherry picked from commit 05ec08fa62)
54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
// @tags: [
|
|
// assumes_superuser_permissions,
|
|
// creates_and_authenticates_user,
|
|
// requires_profiling,
|
|
// ]
|
|
// 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());
|
|
t.insert({x: 1});
|
|
t.findOne({x: 1});
|
|
t.find({x: 1}).count();
|
|
t.update({x: 1}, {$inc: {a: 1}, $set: {big: Array(128).toString()}});
|
|
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);
|
|
db.system.profile.drop();
|
|
|
|
} finally {
|
|
db.setProfilingLevel(0);
|
|
db = stddb;
|
|
}
|