| <!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> |