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 |