diff options
Diffstat (limited to 'devtools/server/tests/browser/browser_markers-gc.js')
-rw-r--r-- | devtools/server/tests/browser/browser_markers-gc.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/devtools/server/tests/browser/browser_markers-gc.js b/devtools/server/tests/browser/browser_markers-gc.js new file mode 100644 index 0000000000..f7ad7553f8 --- /dev/null +++ b/devtools/server/tests/browser/browser_markers-gc.js @@ -0,0 +1,55 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Test that we get "GarbageCollection" markers. + */ +"use strict"; + +const MARKER_NAME = "GarbageCollection"; + +add_task(async function() { + const target = await addTabTarget(MAIN_DOMAIN + "doc_force_gc.html"); + const front = await target.getFront("performance"); + const rec = await front.startRecording({ withMarkers: true }); + + let markers = await waitForMarkerType(front, MARKER_NAME); + await front.stopRecording(rec); + + ok( + markers.some(m => m.name === MARKER_NAME), + `got some ${MARKER_NAME} markers` + ); + ok( + markers.every(({ causeName }) => typeof causeName === "string"), + "All markers have a causeName." + ); + ok( + markers.every(({ cycle }) => typeof cycle === "number"), + "All markers have a `cycle` ID." + ); + + markers = rec.getMarkers(); + + // Bug 1197646 + let ordered = true; + markers.reduce((previousStart, current, i) => { + if (i === 0) { + return current.start; + } + if (current.start < previousStart) { + ok( + false, + `markers must be in order. ${current.name} marker has later\ + start time (${current.start}) thanprevious: ${previousStart}` + ); + ordered = false; + } + return current.start; + }); + + is(ordered, true, "All GC and non-GC markers are in order by start time."); + + await target.destroy(); + gBrowser.removeCurrentTab(); +}); |