summaryrefslogtreecommitdiffstats
path: root/devtools/shared/heapsnapshot/tests/xpcshell/test_census-tree-node-09.js
blob: 5f91e5e67b7b9edb173004014633645306d1faf8 (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
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";

/**
 * Test that repeatedly converting the same census report to a CensusTreeNode
 * tree results in the same CensusTreeNode tree.
 */

function run_test() {
  const BREAKDOWN = {
    by: "filename",
    then: {
      by: "internalType",
      then: { by: "count", count: true, bytes: true },
    },
    noFilename: {
      by: "internalType",
      then: { by: "count", count: true, bytes: true },
    },
  };

  const REPORT = {
    "http://example.com/app.js": {
      JSScript: { count: 10, bytes: 100 },
    },
    "http://example.com/ads.js": {
      "js::LazyScript": { count: 20, bytes: 200 },
    },
    "http://example.com/trackers.js": {
      JSScript: { count: 30, bytes: 300 },
    },
    noFilename: {
      "js::jit::JitCode": { count: 40, bytes: 400 },
    },
  };

  const first = censusReportToCensusTreeNode(BREAKDOWN, REPORT);
  const second = censusReportToCensusTreeNode(BREAKDOWN, REPORT);
  const third = censusReportToCensusTreeNode(BREAKDOWN, REPORT);

  assertStructurallyEquivalent(first, second);
  assertStructurallyEquivalent(second, third);
}