blob: 782d97ccc280eb9742b0a7202b5ae4cc56acd4a9 [file] [log] [blame]
# Copyright 2018 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from telemetry.web_perf import story_test
from telemetry.web_perf import timeline_based_measurement
class DualMetricMeasurement(story_test.StoryTest):
"""Test class supporting both ad hoc measurements and trace based metrics.
Currently only works with PressStory pages, which implement
GetMeasurements().
"""
def __init__(self, tbm_options):
super(DualMetricMeasurement, self).__init__()
# Only enable tracing if metrics have been specified.
if tbm_options.GetTimelineBasedMetrics():
self._tbm_test = timeline_based_measurement.TimelineBasedMeasurement(
tbm_options)
self._enable_tracing = True
else:
self._enable_tracing = False
def WillRunStory(self, platform, story=None):
if self._enable_tracing:
self._tbm_test.WillRunStory(platform, story)
def Measure(self, platform, results):
for value in results.current_story.GetMeasurements():
results.AddMeasurement(**value)
if self._enable_tracing:
self._tbm_test.Measure(platform, results)
def DidRunStory(self, platform, results):
if self._enable_tracing:
self._tbm_test.DidRunStory(platform, results)