| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import os | 5 import os |
| 6 import StringIO | 6 import StringIO |
| 7 import sys | 7 import sys |
| 8 import unittest | 8 import unittest |
| 9 | 9 |
| 10 from catapult_base import cloud_storage | 10 from catapult_base import cloud_storage |
| 11 from telemetry import benchmark | 11 from telemetry import benchmark |
| 12 from telemetry.core import exceptions | 12 from telemetry.core import exceptions |
| 13 from telemetry.core import util | 13 from telemetry.core import util |
| 14 from telemetry import decorators | 14 from telemetry import decorators |
| 15 from telemetry.internal.results import results_options | 15 from telemetry.internal.results import results_options |
| 16 from telemetry.internal import story_runner | 16 from telemetry.internal import story_runner |
| 17 from telemetry.internal.util import exception_formatter as ex_formatter_module | 17 from telemetry.internal.util import exception_formatter as ex_formatter_module |
| 18 from telemetry.page import page as page_module | 18 from telemetry.page import page as page_module |
| 19 from telemetry.page import page_test | 19 from telemetry.page import page_test |
| 20 from telemetry import story as story_module | 20 from telemetry import story as story_module |
| 21 from telemetry.testing import options_for_unittests | 21 from telemetry.testing import options_for_unittests |
| 22 from telemetry.testing import system_stub | 22 from telemetry.testing import system_stub |
| 23 import mock | 23 import mock |
| 24 from telemetry.value import improvement_direction |
| 24 from telemetry.value import list_of_scalar_values | 25 from telemetry.value import list_of_scalar_values |
| 25 from telemetry.value import scalar | 26 from telemetry.value import scalar |
| 26 from telemetry.value import summary as summary_module | 27 from telemetry.value import summary as summary_module |
| 27 from telemetry.web_perf import story_test | 28 from telemetry.web_perf import story_test |
| 28 from telemetry.web_perf import timeline_based_measurement | 29 from telemetry.web_perf import timeline_based_measurement |
| 29 from telemetry.wpr import archive_info | 30 from telemetry.wpr import archive_info |
| 30 | 31 |
| 31 # This linter complains if we define classes nested inside functions. | 32 # This linter complains if we define classes nested inside functions. |
| 32 # pylint: disable=bad-super-call | 33 # pylint: disable=bad-super-call |
| 33 | 34 |
| (...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 blank_story = DummyLocalStory(TestSharedPageState, name='blank') | 470 blank_story = DummyLocalStory(TestSharedPageState, name='blank') |
| 470 green_story = DummyLocalStory(TestSharedPageState, name='green') | 471 green_story = DummyLocalStory(TestSharedPageState, name='green') |
| 471 story_set.AddStory(blank_story) | 472 story_set.AddStory(blank_story) |
| 472 story_set.AddStory(green_story) | 473 story_set.AddStory(green_story) |
| 473 | 474 |
| 474 class Measurement(page_test.PageTest): | 475 class Measurement(page_test.PageTest): |
| 475 i = 0 | 476 i = 0 |
| 476 def RunPage(self, page, _, results): | 477 def RunPage(self, page, _, results): |
| 477 self.i += 1 | 478 self.i += 1 |
| 478 results.AddValue(scalar.ScalarValue( | 479 results.AddValue(scalar.ScalarValue( |
| 479 page, 'metric', 'unit', self.i)) | 480 page, 'metric', 'unit', self.i, |
| 481 improvement_direction=improvement_direction.UP)) |
| 480 | 482 |
| 481 def ValidateAndMeasurePage(self, page, tab, results): | 483 def ValidateAndMeasurePage(self, page, tab, results): |
| 482 pass | 484 pass |
| 483 | 485 |
| 484 self.options.page_repeat = 1 | 486 self.options.page_repeat = 1 |
| 485 self.options.pageset_repeat = 2 | 487 self.options.pageset_repeat = 2 |
| 486 self.options.output_formats = [] | 488 self.options.output_formats = [] |
| 487 results = results_options.CreateResults( | 489 results = results_options.CreateResults( |
| 488 EmptyMetadataForTest(), self.options) | 490 EmptyMetadataForTest(), self.options) |
| 489 story_runner.Run( | 491 story_runner.Run( |
| 490 Measurement(), story_set, self.options, results) | 492 Measurement(), story_set, self.options, results) |
| 491 summary = summary_module.Summary(results.all_page_specific_values) | 493 summary = summary_module.Summary(results.all_page_specific_values) |
| 492 values = summary.interleaved_computed_per_page_values_and_summaries | 494 values = summary.interleaved_computed_per_page_values_and_summaries |
| 493 | 495 |
| 494 blank_value = list_of_scalar_values.ListOfScalarValues( | 496 blank_value = list_of_scalar_values.ListOfScalarValues( |
| 495 blank_story, 'metric', 'unit', [1, 3]) | 497 blank_story, 'metric', 'unit', [1, 3], |
| 498 improvement_direction=improvement_direction.UP) |
| 496 green_value = list_of_scalar_values.ListOfScalarValues( | 499 green_value = list_of_scalar_values.ListOfScalarValues( |
| 497 green_story, 'metric', 'unit', [2, 4]) | 500 green_story, 'metric', 'unit', [2, 4], |
| 501 improvement_direction=improvement_direction.UP) |
| 498 merged_value = list_of_scalar_values.ListOfScalarValues( | 502 merged_value = list_of_scalar_values.ListOfScalarValues( |
| 499 None, 'metric', 'unit', [1, 2, 3, 4]) | 503 None, 'metric', 'unit', [1, 2, 3, 4], |
| 504 improvement_direction=improvement_direction.UP) |
| 500 | 505 |
| 501 self.assertEquals(4, GetNumberOfSuccessfulPageRuns(results)) | 506 self.assertEquals(4, GetNumberOfSuccessfulPageRuns(results)) |
| 502 self.assertEquals(0, len(results.failures)) | 507 self.assertEquals(0, len(results.failures)) |
| 503 self.assertEquals(3, len(values)) | 508 self.assertEquals(3, len(values)) |
| 504 self.assertIn(blank_value, values) | 509 self.assertIn(blank_value, values) |
| 505 self.assertIn(green_value, values) | 510 self.assertIn(green_value, values) |
| 506 self.assertIn(merged_value, values) | 511 self.assertIn(merged_value, values) |
| 507 | 512 |
| 508 @decorators.Disabled('chromeos') # crbug.com/483212 | 513 @decorators.Disabled('chromeos') # crbug.com/483212 |
| 509 def testUpdateAndCheckArchives(self): | 514 def testUpdateAndCheckArchives(self): |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 647 num_failing_stories=5, runner_max_failures=3, | 652 num_failing_stories=5, runner_max_failures=3, |
| 648 options_max_failures=None, expected_num_failures=4) | 653 options_max_failures=None, expected_num_failures=4) |
| 649 | 654 |
| 650 def testMaxFailuresOption(self): | 655 def testMaxFailuresOption(self): |
| 651 # Runs up to max_failures+1 failing tests before stopping, since | 656 # Runs up to max_failures+1 failing tests before stopping, since |
| 652 # every tests after max_failures failures have been encountered | 657 # every tests after max_failures failures have been encountered |
| 653 # may all be passing. | 658 # may all be passing. |
| 654 self._testMaxFailuresOptionIsRespectedAndOverridable( | 659 self._testMaxFailuresOptionIsRespectedAndOverridable( |
| 655 num_failing_stories=5, runner_max_failures=3, | 660 num_failing_stories=5, runner_max_failures=3, |
| 656 options_max_failures=1, expected_num_failures=2) | 661 options_max_failures=1, expected_num_failures=2) |
| OLD | NEW |