From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- .../tests/xpcshell/test_census_diff_06.js | 139 +++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 devtools/shared/heapsnapshot/tests/xpcshell/test_census_diff_06.js (limited to 'devtools/shared/heapsnapshot/tests/xpcshell/test_census_diff_06.js') diff --git a/devtools/shared/heapsnapshot/tests/xpcshell/test_census_diff_06.js b/devtools/shared/heapsnapshot/tests/xpcshell/test_census_diff_06.js new file mode 100644 index 0000000000..b805de48dd --- /dev/null +++ b/devtools/shared/heapsnapshot/tests/xpcshell/test_census_diff_06.js @@ -0,0 +1,139 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +"use strict"; + +// Test diffing census reports of a "complex" and "realistic" breakdown. + +const BREAKDOWN = { + by: "coarseType", + objects: { + by: "allocationStack", + then: { + by: "objectClass", + then: { by: "count", count: false, bytes: true }, + other: { by: "count", count: false, bytes: true }, + }, + noStack: { + by: "objectClass", + then: { by: "count", count: false, bytes: true }, + other: { by: "count", count: false, bytes: true }, + }, + }, + strings: { + by: "internalType", + then: { by: "count", count: false, bytes: true }, + }, + scripts: { + by: "internalType", + then: { by: "count", count: false, bytes: true }, + }, + other: { + by: "internalType", + then: { by: "count", count: false, bytes: true }, + }, + domNode: { + by: "internalType", + then: { by: "count", count: false, bytes: true }, + }, +}; + +const stack1 = saveStack(); +const stack2 = saveStack(); +const stack3 = saveStack(); + +const REPORT1 = { + objects: new Map([ + [ + stack1, + { Function: { bytes: 1 }, Object: { bytes: 2 }, other: { bytes: 0 } }, + ], + [stack2, { Array: { bytes: 3 }, Date: { bytes: 4 }, other: { bytes: 0 } }], + ["noStack", { Object: { bytes: 3 } }], + ]), + strings: { + JSAtom: { bytes: 10 }, + JSLinearString: { bytes: 5 }, + }, + scripts: { + JSScript: { bytes: 1 }, + "js::jit::JitCode": { bytes: 2 }, + }, + other: { + "mozilla::dom::Thing": { bytes: 1 }, + }, + domNode: {}, +}; + +const REPORT2 = { + objects: new Map([ + [stack2, { Array: { bytes: 1 }, Date: { bytes: 2 }, other: { bytes: 3 } }], + [ + stack3, + { Function: { bytes: 1 }, Object: { bytes: 2 }, other: { bytes: 0 } }, + ], + ["noStack", { Object: { bytes: 3 } }], + ]), + strings: { + JSAtom: { bytes: 5 }, + JSLinearString: { bytes: 10 }, + }, + scripts: { + JSScript: { bytes: 2 }, + "js::LazyScript": { bytes: 42 }, + "js::jit::JitCode": { bytes: 1 }, + }, + other: { + "mozilla::dom::OtherThing": { bytes: 1 }, + }, + domNode: {}, +}; + +const EXPECTED = { + objects: new Map([ + [ + stack1, + { Function: { bytes: -1 }, Object: { bytes: -2 }, other: { bytes: 0 } }, + ], + [ + stack2, + { Array: { bytes: -2 }, Date: { bytes: -2 }, other: { bytes: 3 } }, + ], + [ + stack3, + { Function: { bytes: 1 }, Object: { bytes: 2 }, other: { bytes: 0 } }, + ], + ["noStack", { Object: { bytes: 0 } }], + ]), + scripts: { + JSScript: { + bytes: 1, + }, + "js::jit::JitCode": { + bytes: -1, + }, + "js::LazyScript": { + bytes: 42, + }, + }, + strings: { + JSAtom: { + bytes: -5, + }, + JSLinearString: { + bytes: 5, + }, + }, + other: { + "mozilla::dom::Thing": { + bytes: -1, + }, + "mozilla::dom::OtherThing": { + bytes: 1, + }, + }, + domNode: {}, +}; + +function run_test() { + assertDiff(BREAKDOWN, REPORT1, REPORT2, EXPECTED); +} -- cgit v1.2.3