| Index: tracing/tracing/model/global_memory_dump_test.html
|
| diff --git a/tracing/tracing/model/global_memory_dump_test.html b/tracing/tracing/model/global_memory_dump_test.html
|
| index 3024e0f5adbacd54c928723b1549632d20554d53..5d99c2809dc9fcaf25372cdff7669041747ddfa5 100644
|
| --- a/tracing/tracing/model/global_memory_dump_test.html
|
| +++ b/tracing/tracing/model/global_memory_dump_test.html
|
| @@ -176,6 +176,7 @@ tr.b.unittest.testSuite(function() {
|
| var guid = treeRecipe['guid'];
|
| var owns = treeRecipe['owns'];
|
| var size = treeRecipe['size'];
|
| + var attrs = treeRecipe['attrs'];
|
| var importance = treeRecipe['importance'];
|
|
|
| assert.notStrictEqual(skipBuild, true);
|
| @@ -208,6 +209,9 @@ tr.b.unittest.testSuite(function() {
|
| });
|
| }
|
|
|
| + if (attrs !== undefined)
|
| + tr.b.iterItems(attrs, dump.addAttribute, dump);
|
| +
|
| return dump;
|
| }
|
|
|
| @@ -863,7 +867,7 @@ tr.b.unittest.testSuite(function() {
|
| assertEqualUniqueMembers(visitedContainerDumps, containerDumps);
|
| });
|
|
|
| - test('iterateRootAllocatorDumps', function() {
|
| + test('iterateAllRootAllocatorDumps', function() {
|
| var containerDumps = buildDumpTrees([
|
| [ // GMD.
|
| {
|
| @@ -888,7 +892,7 @@ tr.b.unittest.testSuite(function() {
|
| var pmd = containerDumps[1];
|
|
|
| var visitedAllocatorDumps = [];
|
| - gmd.iterateRootAllocatorDumps(buildArgPusher(visitedAllocatorDumps));
|
| + gmd.iterateAllRootAllocatorDumps(buildArgPusher(visitedAllocatorDumps));
|
| assertEqualUniqueMembers(visitedAllocatorDumps, [
|
| gmd.getMemoryAllocatorDumpByFullName('globalSharedDump1'),
|
| gmd.getMemoryAllocatorDumpByFullName('globalSharedDump2'),
|
| @@ -3319,7 +3323,7 @@ tr.b.unittest.testSuite(function() {
|
|
|
| // Check that size calculation is NOT preceded by attribute
|
| // aggregation, which would recursively sum up size attributes.
|
| - test('calculateGraphAttributes', function() {
|
| + test('calculateGraphAttributes_aggregation', function() {
|
| var model = tr.c.TestUtils.newModel(function(model) {
|
| buildDumpTrees([
|
| undefined, // GMD.
|
| @@ -3362,5 +3366,97 @@ tr.b.unittest.testSuite(function() {
|
| assertSizeAttribute(ownedChildDump, 'effective_size', 13,
|
| [ownedInfo('root/owner_child', 'Process 0', 0)]);
|
| });
|
| +
|
| + // Check that attribute propagation and aggregation are performed in the
|
| + // correct order.
|
| + test('calculateGraphAttributes_propagation', function() {
|
| + var model = tr.c.TestUtils.newModel(function(model) {
|
| + buildDumpTrees([
|
| + [ // GMD.
|
| + {
|
| + 'name': 'owned_root',
|
| + 'guid': 1,
|
| + 'size': 10,
|
| + 'children': [
|
| + {
|
| + 'name': 'owned_child1',
|
| + 'attrs': {
|
| + 'summed': new ScalarAttribute('bytes', 12)
|
| + }
|
| + },
|
| + {
|
| + 'name': 'owned_child2',
|
| + 'attrs': {
|
| + 'summed': new ScalarAttribute('bytes', 15)
|
| + }
|
| + }
|
| + ]
|
| + }
|
| + ],
|
| + [ // PMD.
|
| + {
|
| + 'name': 'direct_owner',
|
| + 'owns': 1,
|
| + 'guid': 2
|
| + },
|
| + {
|
| + 'name': 'parent_owner',
|
| + 'children': [
|
| + {
|
| + 'name': 'child_owner',
|
| + 'owns': 1
|
| + },
|
| + {
|
| + 'name': 'sibling',
|
| + 'attrs': {
|
| + 'summed': new ScalarAttribute('bytes', 13)
|
| + }
|
| + }
|
| + ]
|
| + },
|
| + {
|
| + 'name': 'precedent_owner',
|
| + 'owns': 1,
|
| + 'attrs': {
|
| + 'summed': new ScalarAttribute('bytes', 0)
|
| + }
|
| + },
|
| + {
|
| + 'name': 'indirect_owner',
|
| + 'owns': 2
|
| + }
|
| + ]
|
| + ], model);
|
| + });
|
| + var pmd = model.getProcess(0).memoryDumps[0];
|
| +
|
| + var directOwnerDump = pmd.getMemoryAllocatorDumpByFullName('direct_owner');
|
| + assertSizeAttribute(directOwnerDump, 'summed', 27);
|
| + assertUndefinedAttribute(directOwnerDump, 'size');
|
| + assertUndefinedAttribute(directOwnerDump, 'effective_size');
|
| +
|
| + var childOwnerDump =
|
| + pmd.getMemoryAllocatorDumpByFullName('parent_owner/child_owner');
|
| + assertSizeAttribute(childOwnerDump, 'summed', 27);
|
| + assertUndefinedAttribute(childOwnerDump, 'size');
|
| + assertUndefinedAttribute(childOwnerDump, 'effective_size');
|
| +
|
| + var parentOwnerDump = pmd.getMemoryAllocatorDumpByFullName('parent_owner');
|
| + assertSizeAttribute(parentOwnerDump, 'summed', 40);
|
| + assertUndefinedAttribute(parentOwnerDump, 'size');
|
| + assertUndefinedAttribute(parentOwnerDump, 'effective_size');
|
| +
|
| + var precedentOwnerDump =
|
| + pmd.getMemoryAllocatorDumpByFullName('precedent_owner');
|
| + assertSizeAttribute(precedentOwnerDump, 'summed', 0);
|
| + assertUndefinedAttribute(precedentOwnerDump, 'size');
|
| + assertUndefinedAttribute(precedentOwnerDump, 'effective_size');
|
| +
|
| + var indirectOwnerDump =
|
| + pmd.getMemoryAllocatorDumpByFullName('indirect_owner');
|
| + assertUndefinedAttribute(indirectOwnerDump, 'summed');
|
| + assertUndefinedAttribute(indirectOwnerDump, 'size');
|
| + assertUndefinedAttribute(indirectOwnerDump, 'effective_size');
|
| + });
|
| });
|
| </script>
|
|
|