blob: b1b34e4b0631dfb45fc0080ea066a30b8827a584 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2015 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<link rel="import" href="/core/test_utils.html">
<link rel="import" href="/core/trace_model/attribute.html">
<link rel="import" href="/core/trace_model/global_memory_dump.html">
<link rel="import" href="/core/trace_model/process_memory_dump.html">
<script>
'use strict';
/**
* @fileoverview Helper functions for memory dump analysis sub-view tests.
*/
tv.exportTo('tv.c.analysis', function() {
var GlobalMemoryDump = tv.c.trace_model.GlobalMemoryDump;
var ProcessMemoryDump = tv.c.trace_model.ProcessMemoryDump;
var MemoryAllocatorDump = tv.c.trace_model.MemoryAllocatorDump;
var VMRegion = tv.c.trace_model.VMRegion;
var VMRegionByteStats = tv.c.trace_model.VMRegionByteStats;
var ScalarAttribute = tv.c.trace_model.ScalarAttribute;
function createTestGlobalMemoryDump() {
var model = tv.c.test_utils.newModel(function(model) {
var p1 = model.getOrCreateProcess(1);
var p2 = model.getOrCreateProcess(2);
var gmd = new GlobalMemoryDump(model, 42);
model.globalMemoryDumps.push(gmd);
// One process with VM regions.
var pmd1 = new ProcessMemoryDump(gmd, p1, 41);
p1.memoryDumps.push(pmd1);
gmd.processMemoryDumps[p1.pid] = pmd1;
pmd1.vmRegions = [
VMRegion.fromDict({
startAddress: 1024,
sizeInBytes: 20971520, /* 20 MiB */
protectionFlags: VMRegion.PROTECTION_FLAG_READ,
mappedFile: '[stack]',
byteStats: VMRegionByteStats.fromDict({
privateResident: 8388608, /* 8 MiB */
sharedResident: 12582912, /* 12 MiB */
proportionalResident: 10485760 /* 10 MiB */
})
})
];
// One process with allocator dumps.
var pmd2 = new ProcessMemoryDump(gmd, p2, 43);
p2.memoryDumps.push(pmd2);
gmd.processMemoryDumps[p2.pid] = pmd2;
pmd2.memoryAllocatorDumps = (function() {
var oilpanDump = new MemoryAllocatorDump('oilpan');
oilpanDump.addAttribute('outer_size',
new ScalarAttribute('bytes', 2147483648) /* 2 GiB */);
oilpanDump.addAttribute('inner_size',
new ScalarAttribute('bytes', 5242880) /* 5 MiB */);
oilpanDump.addAttribute('objects_count',
new ScalarAttribute('objects', 2015));
var v8Dump = new MemoryAllocatorDump('v8');
v8Dump.addAttribute('outer_size',
new ScalarAttribute('bytes', 1073741824) /* 1 GiB */);
v8Dump.addAttribute('inner_size',
new ScalarAttribute('bytes', 2097152) /* 2 MiB */);
v8Dump.addAttribute('objects_count',
new ScalarAttribute('objects', 204));
return [oilpanDump, v8Dump];
})();
});
return model.globalMemoryDumps[0];
}
function createTestProcessMemoryDump() {
var globalMemoryDump = createTestGlobalMemoryDump();
return globalMemoryDump.processMemoryDumps[2];
}
return {
createTestGlobalMemoryDump: createTestGlobalMemoryDump,
createTestProcessMemoryDump: createTestProcessMemoryDump
};
});
</script>