summaryrefslogtreecommitdiffstats
path: root/devtools/server/tests/browser/browser_perf-allocation-data.js
blob: 150129cb827ce717ef397f870a402107c968d040 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

/**
 * Test that we have allocation data coming from the front.
 */

"use strict";

add_task(async function() {
  const target = await addTabTarget(MAIN_DOMAIN + "doc_allocations.html");
  const front = await target.getFront("performance");

  const rec = await front.startRecording({
    withMarkers: true,
    withAllocations: true,
    withTicks: true,
  });

  await waitUntil(() => rec.getAllocations().frames.length);
  await waitUntil(() => rec.getAllocations().timestamps.length);
  await waitUntil(() => rec.getAllocations().sizes.length);
  await waitUntil(() => rec.getAllocations().sites.length);

  await front.stopRecording(rec);

  const { timestamps, sizes } = rec.getAllocations();

  is(
    timestamps.length,
    sizes.length,
    "we have the same amount of timestamps and sizes"
  );
  ok(
    timestamps.every(time => time > 0 && typeof time === "number"),
    "all timestamps have numeric values"
  );
  ok(
    sizes.every(n => n > 0 && typeof n === "number"),
    "all sizes are positive numbers"
  );

  await target.destroy();
  gBrowser.removeCurrentTab();
});