Index: tools/perf/benchmarks/system_health_smoke_test.py |
diff --git a/tools/perf/benchmarks/system_health_smoke_test.py b/tools/perf/benchmarks/system_health_smoke_test.py |
deleted file mode 100644 |
index 60bb3b6312d4a83c0ae3e3c04b077b4372228810..0000000000000000000000000000000000000000 |
--- a/tools/perf/benchmarks/system_health_smoke_test.py |
+++ /dev/null |
@@ -1,144 +0,0 @@ |
-# Copyright 2016 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-"""Run all system health stories used by system health benchmarks. |
- |
-Only memory benchmarks are used when running these stories to make the total |
-cycle time manageable. Other system health benchmarks should be using the same |
-stories as memory ones, only with fewer actions (no memory dumping). |
-""" |
- |
-import unittest |
- |
-from core import perf_benchmark |
- |
-from telemetry import benchmark as benchmark_module |
-from telemetry import decorators |
-from telemetry.core import discover |
-from telemetry.internal.browser import browser_finder |
-from telemetry.testing import options_for_unittests |
-from telemetry.testing import progress_reporter |
- |
-from benchmarks import system_health |
- |
- |
-# We only cover memory system health |
-_SH_BENCHMARKS_TO_SMOKE_TEST = [ |
- system_health.DesktopMemorySystemHealth, |
- system_health.MobileMemorySystemHealth, |
-] |
- |
- |
-def GetSystemHealthBenchmarksToSmokeTest(): |
- sh_benchmark_classes = discover.DiscoverClassesInModule( |
- system_health, perf_benchmark.PerfBenchmark, |
- index_by_class_name=True).values() |
- return list(b for b in sh_benchmark_classes if |
- b.Name().startswith('system_health.memory')) |
- |
- |
-_DISABLED_TESTS = [ |
- # crbug.com/624474 |
- 'benchmarks.system_health_smoke_test.SystemHealthBenchmarkSmokeTest.system_health.memory_desktop.load:tools:dropbox', # pylint: disable=line-too-long |
- 'benchmarks.system_health_smoke_test.SystemHealthBenchmarkSmokeTest.system_health.memory_desktop.load:tools:docs', # pylint: disable=line-too-long |
- # crbug.com/624587 |
- 'benchmarks.system_health_smoke_test.SystemHealthBenchmarkSmokeTest.system_health.memory_desktop.load:search:ebay', # pylint: disable=line-too-long |
- 'benchmarks.system_health_smoke_test.SystemHealthBenchmarkSmokeTest.system_health.memory_desktop.load:news:cnn', # pylint: disable=line-too-long |
- # crbug.com/624607 |
- 'benchmarks.system_health_smoke_test.SystemHealthBenchmarkSmokeTest.system_health.memory_desktop.load:media:dailymotion', # pylint: disable=line-too-long |
- # crbug.com/624701 |
- 'benchmarks.system_health_smoke_test.SystemHealthBenchmarkSmokeTest.system_health.memory_mobile.load:games:bubbles', # pylint: disable=line-too-long |
- 'benchmarks.system_health_smoke_test.SystemHealthBenchmarkSmokeTest.system_health.memory_mobile.load:games:spychase', # pylint: disable=line-too-long |
- 'benchmarks.system_health_smoke_test.SystemHealthBenchmarkSmokeTest.system_health.memory_mobile.load:news:cnn', # pylint: disable=line-too-long |
-] |
- |
- |
-def _GenerateSmokeTestCase(benchmark_class, story_to_smoke_test): |
- |
- # NOTE TO SHERIFFS: DO NOT DISABLE THIS TEST. |
- # |
- # This smoke test dynamically tests all system health user stories. So |
- # disabling it for one failing or flaky benchmark would disable a much |
- # wider swath of coverage than is usally intended. Instead, if a test is |
- # failing, disable it by putting it into the _DISABLED_TESTS list above. |
- @benchmark_module.Disabled('chromeos') # crbug.com/351114 |
- def RunTest(self): |
- |
- class SinglePageBenchmark(benchmark_class): # pylint: disable=no-init |
- def CreateStorySet(self, options): |
- # pylint: disable=super-on-old-class |
- story_set = super(SinglePageBenchmark, self).CreateStorySet(options) |
- assert story_to_smoke_test in story_set.stories |
- story_set.stories = [story_to_smoke_test] |
- return story_set |
- |
- options = GenerateBenchmarkOptions(benchmark_class) |
- possible_browser = browser_finder.FindBrowser(options) |
- if possible_browser is None: |
- self.skipTest('Cannot find the browser to run the test.') |
- if (SinglePageBenchmark.ShouldDisable(possible_browser) or |
- not decorators.IsEnabled(benchmark_class, possible_browser)[0]): |
- self.skipTest('Benchmark %s is disabled' % SinglePageBenchmark.Name()) |
- |
- if self.id() in _DISABLED_TESTS: |
- self.skipTest('Test is explictly disabled') |
- |
- self.assertEqual(0, SinglePageBenchmark().Run(options), |
- msg='Failed: %s' % benchmark_class) |
- |
- # We attach the test method to SystemHealthBenchmarkSmokeTest dynamically |
- # so that we can set the test method name to include |
- # '<benchmark class name>.<story display name>'. |
- test_method_name = '%s.%s' % ( |
- benchmark_class.Name(), story_to_smoke_test.display_name) |
- |
- class SystemHealthBenchmarkSmokeTest(unittest.TestCase): |
- pass |
- |
- setattr(SystemHealthBenchmarkSmokeTest, test_method_name, RunTest) |
- |
- return SystemHealthBenchmarkSmokeTest(methodName=test_method_name) |
- |
- |
-def GenerateBenchmarkOptions(benchmark_class): |
- # Set the benchmark's default arguments. |
- options = options_for_unittests.GetCopy() |
- options.output_format = 'none' |
- parser = options.CreateParser() |
- |
- # TODO(nednguyen): probably this logic of setting up the benchmark options |
- # parser & processing the options should be sharable with telemetry's |
- # core. |
- benchmark_class.AddCommandLineArgs(parser) |
- benchmark_module.AddCommandLineArgs(parser) |
- benchmark_class.SetArgumentDefaults(parser) |
- options.MergeDefaultValues(parser.get_default_values()) |
- |
- benchmark_class.ProcessCommandLineArgs(None, options) |
- benchmark_module.ProcessCommandLineArgs(None, options) |
- # Only measure a single story so that this test cycles reasonably quickly. |
- options.pageset_repeat = 1 |
- options.page_repeat = 1 |
- return options |
- |
- |
-def load_tests(loader, standard_tests, pattern): |
- del loader, standard_tests, pattern # unused |
- suite = progress_reporter.TestSuite() |
- benchmark_classes = GetSystemHealthBenchmarksToSmokeTest() |
- assert benchmark_classes, 'This list should never be empty' |
- for benchmark_class in benchmark_classes: |
- |
- # HACK: these options should be derived from options_for_unittests which are |
- # the resolved options from run_tests' arguments. However, options is only |
- # parsed during test time which happens after load_tests are called. |
- # Since none of our system health benchmarks creates stories based on |
- # command line options, it should be ok to pass options=None to |
- # CreateStorySet. |
- for story_to_smoke_test in ( |
- benchmark_class().CreateStorySet(options=None).stories): |
- suite.addTest( |
- _GenerateSmokeTestCase(benchmark_class, story_to_smoke_test)) |
- |
- return suite |