Bug 1194424 - Part 4: Add an xpcshell test for heap snapshots and allocation stacks; r=sfink

This commit is contained in:
Nick Fitzgerald 2015-08-24 09:29:44 -07:00
Родитель de13686cc6
Коммит c444661b55
2 изменённых файлов: 41 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,39 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
// Test that we can save a core dump with allocation stacks and read it back
// into a HeapSnapshot.
if (typeof Debugger != "function") {
const { addDebuggerToGlobal } = Cu.import("resource://gre/modules/jsdebugger.jsm", {});
addDebuggerToGlobal(this);
}
function run_test() {
// Create a Debugger observing a debuggee's allocations.
const debuggee = new Cu.Sandbox(null);
const dbg = new Debugger(debuggee);
dbg.memory.trackingAllocationSites = true;
// Allocate some objects in the debuggee that will have their allocation
// stacks recorded by the Debugger.
debuggee.eval("this.objects = []");
for (let i = 0; i < 100; i++) {
debuggee.eval("this.objects.push({})");
}
// Now save a snapshot that will include the allocation stacks and read it
// back again.
const filePath = getFilePath("core-dump.tmp", true, true);
ok(filePath, "Should get a file path");
ChromeUtils.saveHeapSnapshot(filePath, { runtime: true });
ok(true, "Should be able to save a snapshot.");
const snapshot = ChromeUtils.readHeapSnapshot(filePath);
ok(snapshot, "Should be able to read a heap snapshot");
ok(snapshot instanceof HeapSnapshot, "Should be an instanceof HeapSnapshot");
do_test_finished();
}

Просмотреть файл

@ -43,6 +43,8 @@ support-files =
[test_nsjsinspector.js]
[test_SaveHeapSnapshot.js]
[test_ReadHeapSnapshot.js]
[test_ReadHeapSnapshot_with_allocations.js]
skip-if = os == 'linux' # Bug 1176173
[test_ReadHeapSnapshot_worker.js]
skip-if = os == 'linux' # Bug 1176173
[test_dbgactor.js]