diff options
Diffstat (limited to 'jstests/noPassthroughWithMongod/top_drop.js')
-rw-r--r-- | jstests/noPassthroughWithMongod/top_drop.js | 118 |
1 files changed, 59 insertions, 59 deletions
diff --git a/jstests/noPassthroughWithMongod/top_drop.js b/jstests/noPassthroughWithMongod/top_drop.js index 17949e59ff6..b280aa20efd 100644 --- a/jstests/noPassthroughWithMongod/top_drop.js +++ b/jstests/noPassthroughWithMongod/top_drop.js @@ -3,77 +3,77 @@ * TODO(SERVER-21167): Move this test from noPassthrough to core. */ (function() { - "use strict"; +"use strict"; - let topDB = db.getSiblingDB("topdrop"); - assert.commandWorked(topDB.dropDatabase()); +let topDB = db.getSiblingDB("topdrop"); +assert.commandWorked(topDB.dropDatabase()); - // Asserts that the output of top contains exactly these collection entries for topDB. - function checkTopEntries(expectedEntries) { - let res = topDB.adminCommand("top"); - assert.commandWorked(res, "Failed to run the top command"); +// Asserts that the output of top contains exactly these collection entries for topDB. +function checkTopEntries(expectedEntries) { + let res = topDB.adminCommand("top"); + assert.commandWorked(res, "Failed to run the top command"); - let entriesInTop = Object.keys(res.totals).filter(function(ns) { - // This filter only includes non-system collections in our test database. - const dbPrefix = topDB.getName() + "."; - const systemCollectionPrefix = "system."; - return ns.startsWith(dbPrefix) && !ns.startsWith(dbPrefix + systemCollectionPrefix); - }); - let expectedEntryNames = expectedEntries.map(function(coll) { - return coll.getFullName(); - }); + let entriesInTop = Object.keys(res.totals).filter(function(ns) { + // This filter only includes non-system collections in our test database. + const dbPrefix = topDB.getName() + "."; + const systemCollectionPrefix = "system."; + return ns.startsWith(dbPrefix) && !ns.startsWith(dbPrefix + systemCollectionPrefix); + }); + let expectedEntryNames = expectedEntries.map(function(coll) { + return coll.getFullName(); + }); - const entriesAreEqual = friendlyEqual(entriesInTop.sort(), expectedEntryNames.sort()); - if (!entriesAreEqual) { - // TODO(SERVER-26750): This block can be removed once SERVER-26750 is resolved. - jsTest.log("Warning: expected to see " + tojson(expectedEntryNames) + - " in top, but got " + tojson(entriesInTop)); + const entriesAreEqual = friendlyEqual(entriesInTop.sort(), expectedEntryNames.sort()); + if (!entriesAreEqual) { + // TODO(SERVER-26750): This block can be removed once SERVER-26750 is resolved. + jsTest.log("Warning: expected to see " + tojson(expectedEntryNames) + " in top, but got " + + tojson(entriesInTop)); - assert.lt(expectedEntryNames.length, - entriesInTop.length, - "Fewer entries in top than expected; got " + tojson(entriesInTop) + - " but expected " + tojson(expectedEntryNames) + "\nFull top output:\n" + - tojson(res.totals)); + assert.lt(expectedEntryNames.length, + entriesInTop.length, + "Fewer entries in top than expected; got " + tojson(entriesInTop) + + " but expected " + tojson(expectedEntryNames) + "\nFull top output:\n" + + tojson(res.totals)); - // We allow an unexpected entry in top if the insert counter has been cleared. This is - // probably due to a background job releasing an AutoGetCollectionForReadCommand for - // that collection. - entriesInTop.forEach(function(coll) { - if (expectedEntryNames.includes(coll)) { - return; - } + // We allow an unexpected entry in top if the insert counter has been cleared. This is + // probably due to a background job releasing an AutoGetCollectionForReadCommand for + // that collection. + entriesInTop.forEach(function(coll) { + if (expectedEntryNames.includes(coll)) { + return; + } - let topStats = res.totals[coll]; - assert.eq(0, - res.totals[coll].insert.count, - coll + " has unexpected insert entries in top. Full top output:\n" + - tojson(res.totals)); - }); - } + let topStats = res.totals[coll]; + assert.eq(0, + res.totals[coll].insert.count, + coll + " has unexpected insert entries in top. Full top output:\n" + + tojson(res.totals)); + }); } +} - // Create a few entries in top. - assert.writeOK(topDB.coll1.insert({})); - assert.writeOK(topDB.coll2.insert({})); - assert.writeOK(topDB.coll3.insert({})); - checkTopEntries([topDB.coll1, topDB.coll2, topDB.coll3]); +// Create a few entries in top. +assert.writeOK(topDB.coll1.insert({})); +assert.writeOK(topDB.coll2.insert({})); +assert.writeOK(topDB.coll3.insert({})); +checkTopEntries([topDB.coll1, topDB.coll2, topDB.coll3]); - // Check that dropping a collection removes that collection but leaves the others. - assert.commandWorked(topDB.runCommand({drop: "coll3"})); - checkTopEntries([topDB.coll1, topDB.coll2]); +// Check that dropping a collection removes that collection but leaves the others. +assert.commandWorked(topDB.runCommand({drop: "coll3"})); +checkTopEntries([topDB.coll1, topDB.coll2]); - // Check that dropping the database removes the remaining collections. - assert.commandWorked(topDB.dropDatabase()); - checkTopEntries([]); +// Check that dropping the database removes the remaining collections. +assert.commandWorked(topDB.dropDatabase()); +checkTopEntries([]); - // Check that top doesn't keep state about non-existent collections. - assert.commandWorked(topDB.dropDatabase()); - topDB.foo.find().itcount(); - topDB.baz.update({}, {$set: {a: 1}}); - topDB.bar.remove({}); +// Check that top doesn't keep state about non-existent collections. +assert.commandWorked(topDB.dropDatabase()); +topDB.foo.find().itcount(); +topDB.baz.update({}, {$set: {a: 1}}); +topDB.bar.remove({}); - let res = topDB.adminCommand("top"); - checkTopEntries([]); +let res = topDB.adminCommand("top"); +checkTopEntries([]); - assert.commandWorked(topDB.dropDatabase()); +assert.commandWorked(topDB.dropDatabase()); }()); |