summaryrefslogtreecommitdiffstats
path: root/devtools/server/tests/browser/browser_markers-cycle-collection.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/server/tests/browser/browser_markers-cycle-collection.js')
-rw-r--r--devtools/server/tests/browser/browser_markers-cycle-collection.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/devtools/server/tests/browser/browser_markers-cycle-collection.js b/devtools/server/tests/browser/browser_markers-cycle-collection.js
new file mode 100644
index 0000000000..40c5922c5c
--- /dev/null
+++ b/devtools/server/tests/browser/browser_markers-cycle-collection.js
@@ -0,0 +1,35 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Test that we get "nsCycleCollector::Collect" and
+ * "nsCycleCollector::ForgetSkippable" markers when we force cycle collection.
+ */
+"use strict";
+
+add_task(async function() {
+ // This test runs very slowly on linux32 debug EC2 instances.
+ requestLongerTimeout(2);
+
+ const target = await addTabTarget(MAIN_DOMAIN + "doc_force_cc.html");
+ const front = await target.getFront("performance");
+ const rec = await front.startRecording({ withMarkers: true });
+
+ const markers = await waitForMarkerType(front, [
+ "nsCycleCollector::Collect",
+ "nsCycleCollector::ForgetSkippable",
+ ]);
+ await front.stopRecording(rec);
+
+ ok(
+ markers.some(m => m.name === "nsCycleCollector::Collect"),
+ "got some nsCycleCollector::Collect markers"
+ );
+ ok(
+ markers.some(m => m.name === "nsCycleCollector::ForgetSkippable"),
+ "got some nsCycleCollector::Collect markers"
+ );
+
+ await target.destroy();
+ gBrowser.removeCurrentTab();
+});