diff options
Diffstat (limited to 'jstests/core/apitest_db_profile_level.js')
-rw-r--r-- | jstests/core/apitest_db_profile_level.js | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/jstests/core/apitest_db_profile_level.js b/jstests/core/apitest_db_profile_level.js index cc01b2914ce..f32b996f8ce 100644 --- a/jstests/core/apitest_db_profile_level.js +++ b/jstests/core/apitest_db_profile_level.js @@ -3,6 +3,7 @@ * @tags: [ * does_not_support_stepdowns, * requires_profiling, + * requires_fcv_62, * ] */ @@ -19,24 +20,23 @@ assert(db.setProfilingLevel, "setProfilingLevel"); // A test-specific database is used for profiler testing so as not to interfere with // other tests that modify profiler level, when run in parallel. -var profileLevelDB = db.getSiblingDB("apitest_db_profile_level"); +const profileLevelDB = db.getSiblingDB("apitest_db_profile_level"); -// Checks for the log that was expected to be created when profile level changed. -function profilerChangeWasLogged({from, to} = {}) { +// Checks the log for the expected change in profile level and applicable database. +function profilerChangeWasLogged({from, to, db}) { const globalLog = assert.commandWorked(profileLevelDB.adminCommand({getLog: 'global'})); const fieldMatcher = {msg: "Profiler settings changed"}; - if (from && to) { - const lines = [...findMatchingLogLines(globalLog.log, fieldMatcher)]; - return lines.find(line => line.match(new RegExp(/"from":{/.source + from.source)) && - line.match(new RegExp(/"to":{/.source + to.source))); - } else { - return findMatchingLogLine(globalLog.log, fieldMatcher); - } + const lines = [...findMatchingLogLines(globalLog.log, fieldMatcher)]; + const matches = lines.filter((line) => { + const attr = JSON.parse(line).attr; + return attr.from.level == from && attr.to.level == to && attr.db == db; + }); + return matches.length ? matches : false; } profileLevelDB.getProfilingLevel(); -assert(!profilerChangeWasLogged({from: /"level":0/, to: /"level":-1/}), +assert(!profilerChangeWasLogged({from: 0, to: -1, db: profileLevelDB}), "Didn't expect anything to be logged"); assert.throws(() => { @@ -45,27 +45,27 @@ assert.throws(() => { profileLevelDB.setProfilingLevel(0); assert(profileLevelDB.getProfilingLevel() == 0, "prof level 0"); -assert(profilerChangeWasLogged({from: /"level":0/, to: /"level":0/}), +assert(profilerChangeWasLogged({from: 0, to: 0, db: profileLevelDB}), "Didn't find expected log line"); profileLevelDB.setProfilingLevel(1); assert(profileLevelDB.getProfilingLevel() == 1, "p1"); -assert(profilerChangeWasLogged({from: /"level":0/, to: /"level":1/}), +assert(profilerChangeWasLogged({from: 0, to: 1, db: profileLevelDB}), "Didn't find expected log line"); profileLevelDB.setProfilingLevel(2); assert(profileLevelDB.getProfilingLevel() == 2, "p2"); -assert(profilerChangeWasLogged({from: /"level":1/, to: /"level":2/}), +assert(profilerChangeWasLogged({from: 1, to: 2, db: profileLevelDB}), "Didn't find expected log line"); profileLevelDB.setProfilingLevel(0); assert(profileLevelDB.getProfilingLevel() == 0, "prof level 0"); -assert(profilerChangeWasLogged({from: /"level":2/, to: /"level":0/}), +assert(profilerChangeWasLogged({from: 2, to: 0, db: profileLevelDB}), "Didn't find expected log line"); assert.throws(() => { profileLevelDB.setProfilingLevel(10); }); // Check that didn't log an invalid profile level change. -assert(!profilerChangeWasLogged({from: /"level":0/, to: /"level":10/}), "Didn't expect log line"); +assert(!profilerChangeWasLogged({from: 0, to: 10, db: profileLevelDB}), "Didn't expect log line"); })(); |