summaryrefslogtreecommitdiffstats
path: root/devtools/shared/heapsnapshot/tests/xpcshell/test_census_filtering_01.js
blob: 961023b2c2210c37c5ca6aced92c14ea33166dce (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";

// Test filtering basic CensusTreeNode trees.

function run_test() {
  const BREAKDOWN = {
    by: "coarseType",
    objects: {
      by: "objectClass",
      then: { by: "count", count: true, bytes: true },
      other: { by: "count", count: true, bytes: true },
    },
    scripts: {
      by: "internalType",
      then: { by: "count", count: true, bytes: true },
    },
    strings: {
      by: "internalType",
      then: { by: "count", count: true, bytes: true },
    },
    other: {
      by: "internalType",
      then: { by: "count", count: true, bytes: true },
    },
    domNode: {
      by: "descriptiveType",
      then: { by: "count", count: true, bytes: true },
    },
  };

  const REPORT = {
    objects: {
      Array: { bytes: 50, count: 5 },
      UInt8Array: { bytes: 80, count: 8 },
      Int32Array: { bytes: 320, count: 32 },
      other: { bytes: 0, count: 0 },
    },
    scripts: {
      "js::jit::JitScript": { bytes: 30, count: 3 },
    },
    strings: {
      JSAtom: { bytes: 60, count: 6 },
    },
    other: {
      "js::Shape": { bytes: 80, count: 8 },
    },
    domNode: {},
  };

  const EXPECTED = {
    name: null,
    bytes: 0,
    totalBytes: 620,
    count: 0,
    totalCount: 62,
    children: [
      {
        name: "objects",
        bytes: 0,
        totalBytes: 450,
        count: 0,
        totalCount: 45,
        children: [
          {
            name: "Int32Array",
            bytes: 320,
            totalBytes: 320,
            count: 32,
            totalCount: 32,
            children: undefined,
            id: 16,
            parent: 15,
            reportLeafIndex: 4,
          },
          {
            name: "UInt8Array",
            bytes: 80,
            totalBytes: 80,
            count: 8,
            totalCount: 8,
            children: undefined,
            id: 17,
            parent: 15,
            reportLeafIndex: 3,
          },
          {
            name: "Array",
            bytes: 50,
            totalBytes: 50,
            count: 5,
            totalCount: 5,
            children: undefined,
            id: 18,
            parent: 15,
            reportLeafIndex: 2,
          },
        ],
        id: 15,
        parent: 14,
        reportLeafIndex: undefined,
      },
    ],
    id: 14,
    parent: undefined,
    reportLeafIndex: undefined,
  };

  compareCensusViewData(BREAKDOWN, REPORT, EXPECTED, { filter: "Array" });
}