Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
"use strict";
// Test filtering CensusTreeNode trees with an `allocationStack` breakdown.
function run_test() {
const countBreakdown = { by: "count", count: true, bytes: true };
const BREAKDOWN = {
by: "allocationStack",
then: countBreakdown,
noStack: countBreakdown,
};
let stack1, stack2, stack3, stack4;
(function foo() {
(function bar() {
(function baz() {
stack1 = saveStack(3);
})();
(function quux() {
stack2 = saveStack(3);
stack3 = saveStack(3);
})();
})();
stack4 = saveStack(2);
})();
const stack5 = saveStack(1);
const REPORT = new Map([
[stack1, { bytes: 10, count: 1 }],
[stack2, { bytes: 20, count: 2 }],
[stack3, { bytes: 30, count: 3 }],
[stack4, { bytes: 40, count: 4 }],
[stack5, { bytes: 50, count: 5 }],
["noStack", { bytes: 60, count: 6 }],
]);
const EXPECTED = {
name: null,
bytes: 0,
totalBytes: 210,
count: 0,
totalCount: 21,
children: [
{
name: stack1.parent.parent,
bytes: 0,
totalBytes: 60,
count: 0,
totalCount: 6,
children: [
{
name: stack2.parent,
bytes: 0,
totalBytes: 50,
count: 0,
totalCount: 5,
children: [
{
name: stack3,
bytes: 30,
totalBytes: 30,
count: 3,
totalCount: 3,
children: undefined,
id: 15,
parent: 14,
reportLeafIndex: 3,
},
{
name: stack2,
bytes: 20,
totalBytes: 20,
count: 2,
totalCount: 2,
children: undefined,
id: 16,
parent: 14,
reportLeafIndex: 2,
},
],
id: 14,
parent: 13,
reportLeafIndex: undefined,
},
{
name: stack1.parent,
bytes: 0,
totalBytes: 10,
count: 0,
totalCount: 1,
children: [
{
name: stack1,
bytes: 10,
totalBytes: 10,
count: 1,
totalCount: 1,
children: undefined,
id: 18,
parent: 17,
reportLeafIndex: 1,
},
],
id: 17,
parent: 13,
reportLeafIndex: undefined,
},
],
id: 13,
parent: 12,
reportLeafIndex: undefined,
},
],
id: 12,
parent: undefined,
reportLeafIndex: undefined,
};
compareCensusViewData(BREAKDOWN, REPORT, EXPECTED, { filter: "bar" });
}