Files
mongo/jstests/core/evalb.js
2016-03-09 12:18:14 -05:00

47 lines
1.1 KiB
JavaScript

// Check the return value of a db.eval function running a database query, and ensure the function's
// contents are logged in the profile log.
// Use a reserved database name to avoid a conflict in the parallel test suite.
var stddb = db;
var db = db.getSisterDB('evalb');
function profileCursor() {
return db.system.profile.find({user: username + "@" + db.getName()});
}
function lastOp() {
return profileCursor().sort({$natural: -1}).next();
}
try {
username = 'jstests_evalb_user';
db.dropUser(username);
db.createUser({user: username, pwd: 'password', roles: jsTest.basicUserRoles});
db.auth(username, 'password');
t = db.evalb;
t.drop();
t.save({x: 3});
assert.eq(3,
db.eval(function() {
return db.evalb.findOne().x;
}),
'A');
db.setProfilingLevel(2);
assert.eq(3,
db.eval(function() {
return db.evalb.findOne().x;
}),
'B');
o = lastOp();
assert(tojson(o).indexOf('findOne().x') > 0, 'C : ' + tojson(o));
} finally {
db.setProfilingLevel(0);
db = stddb;
}