зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1194424 - Part 4: Add an xpcshell test for heap snapshots and allocation stacks; r=sfink
This commit is contained in:
Родитель
de13686cc6
Коммит
c444661b55
|
@ -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]
|
||||
|
|
Загрузка…
Ссылка в новой задаче