| Index: tools/telemetry/telemetry/results/page_test_results.py
|
| diff --git a/tools/telemetry/telemetry/results/page_test_results.py b/tools/telemetry/telemetry/results/page_test_results.py
|
| index 497a3aea9d0b5cce7fb7157abbbd1e6cad7b7af9..38b62e448bfdfdc43a322f4df8f9e66d7aa0b540 100644
|
| --- a/tools/telemetry/telemetry/results/page_test_results.py
|
| +++ b/tools/telemetry/telemetry/results/page_test_results.py
|
| @@ -23,7 +23,7 @@ from telemetry.value import trace
|
| class PageTestResults(object):
|
| def __init__(self, output_stream=None, output_formatters=None,
|
| progress_reporter=None, trace_tag='', output_dir=None,
|
| - value_can_be_added_predicate=lambda v: True):
|
| + value_can_be_added_predicate=lambda v, is_first: True):
|
| """
|
| Args:
|
| output_stream: The output stream to use to write test results.
|
| @@ -36,9 +36,10 @@ class PageTestResults(object):
|
| used for buildbot.
|
| output_dir: A string specified the directory where to store the test
|
| artifacts, e.g: trace, videos,...
|
| - value_can_be_added_predicate: A function that takes an value.Value
|
| - instance as input. It returns True if the value can be added to the
|
| - test results and False otherwise.
|
| + value_can_be_added_predicate: A function that takes two arguments:
|
| + a value.Value instance and a boolean (True when the value is part
|
| + of the first result for the user story). It returns True if the value
|
| + can be added to the test results and False otherwise.
|
| """
|
| # TODO(chrishenry): Figure out if trace_tag is still necessary.
|
|
|
| @@ -55,6 +56,7 @@ class PageTestResults(object):
|
|
|
| self._current_page_run = None
|
| self._all_page_runs = []
|
| + self._all_user_stories = set()
|
| self._representative_value_for_each_value_name = {}
|
| self._all_summary_values = []
|
| self._serialized_trace_file_ids_to_paths = {}
|
| @@ -153,23 +155,23 @@ class PageTestResults(object):
|
| self._current_page_run = user_story_run.UserStoryRun(page)
|
| self._progress_reporter.WillRunPage(self)
|
|
|
| - def DidRunPage(self, page, discard_run=False): # pylint: disable=W0613
|
| + def DidRunPage(self, page): # pylint: disable=W0613
|
| """
|
| Args:
|
| page: The current page under test.
|
| - discard_run: Whether to discard the entire run and all of its
|
| - associated results.
|
| """
|
| assert self._current_page_run, 'Did not call WillRunPage.'
|
| self._progress_reporter.DidRunPage(self)
|
| - if not discard_run:
|
| - self._all_page_runs.append(self._current_page_run)
|
| + self._all_page_runs.append(self._current_page_run)
|
| + self._all_user_stories.add(self._current_page_run.user_story)
|
| self._current_page_run = None
|
|
|
| def AddValue(self, value):
|
| assert self._current_page_run, 'Not currently running test.'
|
| self._ValidateValue(value)
|
| - if not self._value_can_be_added_predicate(value):
|
| + is_first_result = (
|
| + self._current_page_run.user_story not in self._all_user_stories)
|
| + if not self._value_can_be_added_predicate(value, is_first_result):
|
| return
|
| # TODO(eakuefner/chrishenry): Add only one skip per pagerun assert here
|
| self._current_page_run.AddValue(value)
|
|
|