blob: dab3e9fc1cdd3e5962b555304e5a2ad24f18eb07 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright 2019 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="/tracing/core/test_utils.html">
<link rel="import" href="/tracing/extras/importer/trace_event_importer.html">
<link rel="import" href="/tracing/metrics/system_health/native_code_resident_memory_metric.html">
<link rel="import" href="/tracing/value/histogram_set.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
function makeEvent(cat, name, NativeCodeResidentMemory, timestamp) {
return {
cat,
name,
args: {NativeCodeResidentMemory},
ts: timestamp,
pid: 52,
tid: 53,
ph: 'i'
};
}
test('nativeCodeResidentMemoryMetric', function() {
const histograms = new tr.v.HistogramSet();
const residentMemoryBytes = [20718592, 19767296, 40004608, 1294336];
const sum = (residentMemoryBytes.reduce((a, b) => a + b, 0));
const events = [];
let timestamp = 10;
for (const index in residentMemoryBytes) {
events.push(makeEvent('disabled-by-default-memory-infra',
'ReportGlobalNativeCodeResidentMemoryKb',
residentMemoryBytes[index], timestamp = timestamp + 10));
}
timestamp = 5;
events.push(makeEvent('disabled-by-default-memory-infra',
'ReportGlobalNativeCodeResidentMemoryKb', 0,
timestamp = timestamp + 10));
events.push(makeEvent('disabled-by-default-memory-infra', 'foo', 10000,
timestamp = timestamp + 10));
events.push(makeEvent('foo', 'ReportGlobalNativeCodeResidentMemoryKb',
200000, timestamp = timestamp + 10));
events.push(makeEvent('foo', 'bar', 10000, timestamp = timestamp + 10));
tr.metrics.sh.nativeCodeResidentMemoryMetric(histograms,
tr.c.TestUtils.newModelWithEvents([events]));
const all = histograms.getHistogramNamed(
'NativeCodeResidentMemory').running;
assert.strictEqual(all.count, residentMemoryBytes.length);
assert.strictEqual(all.sum, sum);
assert.strictEqual(all.mean, sum / residentMemoryBytes.length);
assert.strictEqual(all.max, Math.max.apply(null, residentMemoryBytes));
assert.strictEqual(all.min, Math.min.apply(null, residentMemoryBytes));
});
});
</script>