71 lines
2.3 KiB
JavaScript
71 lines
2.3 KiB
JavaScript
add_task(async function run_test() {
|
|
if (!("@mozilla.org/toolkit/crash-reporter;1" in Cc)) {
|
|
dump(
|
|
"INFO | test_crash_oom.js | Can't test crashreporter in a non-libxul build.\n"
|
|
);
|
|
return;
|
|
}
|
|
|
|
await do_content_crash(
|
|
function () {
|
|
crashType = CrashTestUtils.CRASH_OOM;
|
|
crashReporter.annotateCrashReport("TestKey", "Yes");
|
|
},
|
|
function (mdump, extra) {
|
|
const { AppConstants } = ChromeUtils.importESModule(
|
|
"resource://gre/modules/AppConstants.sys.mjs"
|
|
);
|
|
Assert.equal(extra.TestKey, "Yes");
|
|
|
|
// A list of pairs [annotation name, must be > 0]
|
|
let annotations;
|
|
switch (AppConstants.platform) {
|
|
case "win":
|
|
annotations = [
|
|
["OOMAllocationSize", true],
|
|
["SystemMemoryUsePercentage", false],
|
|
["TotalVirtualMemory", true],
|
|
["AvailableVirtualMemory", false],
|
|
["TotalPageFile", false],
|
|
["AvailablePageFile", false],
|
|
["TotalPhysicalMemory", true],
|
|
["AvailablePhysicalMemory", false],
|
|
];
|
|
break;
|
|
case "linux":
|
|
annotations = [
|
|
["OOMAllocationSize", true],
|
|
["AvailablePageFile", false],
|
|
["AvailablePhysicalMemory", false],
|
|
["AvailableSwapMemory", false],
|
|
["AvailableVirtualMemory", false],
|
|
["TotalPageFile", false],
|
|
["TotalPhysicalMemory", true],
|
|
];
|
|
break;
|
|
case "macosx":
|
|
annotations = [
|
|
["OOMAllocationSize", true],
|
|
["AvailablePhysicalMemory", false],
|
|
["AvailableSwapMemory", false],
|
|
["PurgeablePhysicalMemory", false],
|
|
["TotalPhysicalMemory", true],
|
|
];
|
|
break;
|
|
default:
|
|
annotations = [];
|
|
}
|
|
for (let [label, shouldBeGreaterThanZero] of annotations) {
|
|
Assert.ok(label in extra, `Annotation ${label} is present`);
|
|
|
|
// All these annotations should represent non-negative numbers.
|
|
// A few of them (e.g. physical memory) are guaranteed to be positive.
|
|
if (shouldBeGreaterThanZero) {
|
|
Assert.ok(Number(extra[label]) > 0);
|
|
} else {
|
|
Assert.ok(Number(extra[label]) >= 0);
|
|
}
|
|
}
|
|
}
|
|
);
|
|
});
|