Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(514)

Unified Diff: telemetry/telemetry/internal/results/page_test_results.py

Issue 2055043002: Plumb IterationInfo from telemetry to a diagnostic (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: IterationInfo python class Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | telemetry/telemetry/internal/results/results_options.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: telemetry/telemetry/internal/results/page_test_results.py
diff --git a/telemetry/telemetry/internal/results/page_test_results.py b/telemetry/telemetry/internal/results/page_test_results.py
index aee0d95fc6ebb23d0d49d01b4649bc765f5343f6..1e89af7d01b69d7756d4d627c105c044e6793419 100644
--- a/telemetry/telemetry/internal/results/page_test_results.py
+++ b/telemetry/telemetry/internal/results/page_test_results.py
@@ -21,6 +21,92 @@ from telemetry.value import skip
from telemetry.value import trace
+class IterationInfo(object):
+ def __init__(self):
+ self._benchmark_name = None
+ self._benchmark_start_ms = None
+ self._label = None
+ self._story_display_name = ''
+ self._story_grouping_keys = {}
+ self._story_repeat_counter = 0
+ self._story_url = ''
+ self._storyset_repeat_counter = 0
+
+ @property
+ def benchmark_name(self):
+ return self._benchmark_name
+
+ @benchmark_name.setter
+ def benchmark_name(self, benchmark_name):
+ assert self.benchmark_name is None, (
+ 'benchmark_name must be set exactly once')
+ self._benchmark_name = benchmark_name
+
+ @property
+ def benchmark_start_ms(self):
+ return self._benchmark_start_ms
+
+ @benchmark_start_ms.setter
+ def benchmark_start_ms(self, benchmark_start_ms):
+ assert self.benchmark_start_ms is None, (
+ 'benchmark_start_ms must be set exactly once')
+ self._benchmark_start_ms = benchmark_start_ms
+
+ @property
+ def label(self):
+ return self._label
+
+ @label.setter
+ def label(self, label):
+ assert self.label is None, 'label cannot be set more than once'
+ self._label = label
+
+ @property
+ def story_display_name(self):
+ return self._story_display_name
+
+ @property
+ def story_url(self):
+ return self._story_url
+
+ @property
+ def story_grouping_keys(self):
+ return self._story_grouping_keys
+
+ @property
+ def storyset_repeat_counter(self):
+ return self._storyset_repeat_counter
+
+ @property
+ def story_repeat_counter(self):
+ return self._story_repeat_counter
+
+ def WillRunStory(self, story, storyset_repeat_counter, story_repeat_counter):
+ self._story_display_name = story.display_name
+ self._story_url = story.url
+ if story.grouping_keys:
+ self._story_grouping_keys = story.grouping_keys
+ self._storyset_repeat_counter = storyset_repeat_counter
+ self._story_repeat_counter = story_repeat_counter
+
+ def AsDict(self):
+ assert self.benchmark_name is not None, (
+ 'benchmark_name must be set exactly once')
+ assert self.benchmark_start_ms is not None, (
+ 'benchmark_start_ms must be set exactly once')
+ d = {}
+ d['benchmarkName'] = self.benchmark_name
+ d['benchmarkStartMs'] = self.benchmark_start_ms
+ if self.label:
+ d['label'] = self.label
+ d['storyDisplayName'] = self.story_display_name
+ d['storyGroupingKeys'] = self.story_grouping_keys
+ d['storyRepeatCounter'] = self.story_repeat_counter
+ d['storyUrl'] = self.story_url
+ d['storysetRepeatCounter'] = self.storyset_repeat_counter
+ return d
+
+
class PageTestResults(object):
def __init__(self, output_formatters=None,
progress_reporter=None, trace_tag='', output_dir=None,
@@ -68,6 +154,12 @@ class PageTestResults(object):
# actually need set-ness in python.
self._value_set = []
+ self._iteration_info = IterationInfo()
+
+ @property
+ def iteration_info(self):
+ return self._iteration_info
+
@property
def value_set(self):
return self._value_set
@@ -163,10 +255,13 @@ class PageTestResults(object):
def __exit__(self, _, __, ___):
self.CleanUp()
- def WillRunPage(self, page):
+ def WillRunPage(self, page, storyset_repeat_counter=0,
+ story_repeat_counter=0):
assert not self._current_page_run, 'Did not call DidRunPage.'
self._current_page_run = story_run.StoryRun(page)
self._progress_reporter.WillRunPage(self)
+ self.iteration_info.WillRunStory(
+ page, storyset_repeat_counter, story_repeat_counter)
def DidRunPage(self, page): # pylint: disable=unused-argument
"""
« no previous file with comments | « no previous file | telemetry/telemetry/internal/results/results_options.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698