blob: bc1dd5103ab5715cc41794b0caf1b8abbba2d79c [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright 2016 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/metrics/system_health/clock_sync_latency_metric.html">
<link rel="import" href="/tracing/model/model.html">
<link rel="import" href="/tracing/value/value_set.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
test('clockSyncLatencyMetric', function() {
var model = new tr.Model();
model.clockSyncManager.addClockSyncMarker(
tr.model.ClockDomainId.TELEMETRY, 'ID01', 1.0, 4.0);
model.clockSyncManager.addClockSyncMarker(
tr.model.ClockDomainId.TELEMETRY, 'ID02', 2.0, 8.0);
model.clockSyncManager.addClockSyncMarker(
tr.model.ClockDomainId.BATTOR, 'ID01', 2.5);
model.clockSyncManager.addClockSyncMarker(
tr.model.ClockDomainId.WIN_QPC, 'ID02', 5.0);
var battorName = 'clock_sync_latency_' +
tr.model.ClockDomainId.BATTOR.toLowerCase();
var winQpcName = 'clock_sync_latency_' +
tr.model.ClockDomainId.WIN_QPC.toLowerCase();
var valueSet = new tr.v.ValueSet();
tr.metrics.sh.clockSyncLatencyMetric(valueSet, model);
var battorValue = undefined;
var winQpcValue = undefined;
for (var value of valueSet) {
if (value.name === battorName)
battorValue = value;
else if (value.name === winQpcName)
winQpcValue = value;
}
assert.isDefined(battorValue);
assert.isDefined(winQpcValue);
assert.closeTo(battorValue.average, 3.0, 1e-5);
assert.closeTo(winQpcValue.average, 6.0, 1e-5);
});
test('clockSyncLatencyMetric_noTelemetry', function() {
var model = new tr.Model();
model.clockSyncManager.addClockSyncMarker(
tr.model.ClockDomainId.TELEMETRY, 'ID01', 1.0, 4.0);
model.clockSyncManager.addClockSyncMarker(
tr.model.ClockDomainId.BATTOR, 'ID02', 2.5);
model.clockSyncManager.addClockSyncMarker(
tr.model.ClockDomainId.WIN_QPC, 'ID02', 5.0);
var valueSet = new tr.v.ValueSet();
tr.metrics.sh.clockSyncLatencyMetric(valueSet, model);
assert.lengthOf(valueSet.valueDicts, 0);
});
});
</script>