summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/measure-memory/randomized-breakdown.https.window.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/measure-memory/randomized-breakdown.https.window.js')
-rw-r--r--testing/web-platform/tests/measure-memory/randomized-breakdown.https.window.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/testing/web-platform/tests/measure-memory/randomized-breakdown.https.window.js b/testing/web-platform/tests/measure-memory/randomized-breakdown.https.window.js
new file mode 100644
index 0000000000..09937d5115
--- /dev/null
+++ b/testing/web-platform/tests/measure-memory/randomized-breakdown.https.window.js
@@ -0,0 +1,27 @@
+// META: script=/common/get-host-info.sub.js
+// META: script=./resources/checker.js
+// META: script=./resources/common.js
+// META: timeout=long
+'use strict';
+
+function indexOfEmptyEntry(result) {
+ return result.breakdown.findIndex(isEmptyBreakdownEntry);
+}
+
+promise_test(async testCase => {
+ assert_true(self.crossOriginIsolated);
+
+ const initial = await performance.measureUserAgentSpecificMemory();
+ let observed_different_order = false;
+ for (let i = 0; i < 100; ++i) {
+ const current = await performance.measureUserAgentSpecificMemory();
+ if (indexOfEmptyEntry(initial) != indexOfEmptyEntry(current)) {
+ observed_different_order = true;
+ }
+ }
+ // The order of the breakdown entries must be randomized.
+ // A conforming implementation may fail the following assert with
+ // the probability of at most 2^-100 since there are at least two
+ // entries in the breakdown.
+ assert_true(observed_different_order);
+}, 'Well-formed result of performance.measureUserAgentSpecificMemory.');