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

Unified Diff: tools/telemetry/telemetry/benchmark.py

Issue 1647513002: Delete tools/telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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
Index: tools/telemetry/telemetry/benchmark.py
diff --git a/tools/telemetry/telemetry/benchmark.py b/tools/telemetry/telemetry/benchmark.py
deleted file mode 100644
index 6ea2196659b72e58275039311f03307a69156d51..0000000000000000000000000000000000000000
--- a/tools/telemetry/telemetry/benchmark.py
+++ /dev/null
@@ -1,236 +0,0 @@
-# Copyright 2014 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.
-
-import optparse
-
-from telemetry import decorators
-from telemetry.internal import story_runner
-from telemetry.internal.util import command_line
-from telemetry.page import page_test
-from telemetry.web_perf import timeline_based_measurement
-
-Disabled = decorators.Disabled
-Enabled = decorators.Enabled
-
-
-class InvalidOptionsError(Exception):
- """Raised for invalid benchmark options."""
- pass
-
-
-class BenchmarkMetadata(object):
- def __init__(self, name, description='', rerun_options=None):
- self._name = name
- self._description = description
- self._rerun_options = rerun_options
-
- @property
- def name(self):
- return self._name
-
- @property
- def description(self):
- return self._description
-
- @property
- def rerun_options(self):
- return self._rerun_options
-
- def AsDict(self):
- return {
- 'type': 'telemetry_benchmark',
- 'name': self._name,
- 'description': self._description,
- 'rerun_options': self._rerun_options,
- }
-
-
-class Benchmark(command_line.Command):
- """Base class for a Telemetry benchmark.
-
- A benchmark packages a measurement and a PageSet together.
- Benchmarks default to using TBM unless you override the value of
- Benchmark.test, or override the CreatePageTest method.
-
- New benchmarks should override CreateStorySet.
- """
- options = {}
- test = timeline_based_measurement.TimelineBasedMeasurement
-
- def __init__(self, max_failures=None):
- """Creates a new Benchmark.
-
- Args:
- max_failures: The number of story run's failures before bailing
- from executing subsequent page runs. If None, we never bail.
- """
- self._max_failures = max_failures
- self._has_original_tbm_options = (
- self.CreateTimelineBasedMeasurementOptions.__func__ ==
- Benchmark.CreateTimelineBasedMeasurementOptions.__func__)
- has_original_create_page_test = (
- self.CreatePageTest.__func__ == Benchmark.CreatePageTest.__func__)
- assert self._has_original_tbm_options or has_original_create_page_test, (
- 'Cannot override both CreatePageTest and '
- 'CreateTimelineBasedMeasurementOptions.')
-
- # pylint: disable=unused-argument
- @classmethod
- def ShouldDisable(cls, possible_browser):
- """Override this method to disable a benchmark under specific conditions.
-
- Supports logic too complex for simple Enabled and Disabled decorators.
- Decorators are still respected in cases where this function returns False.
- """
- return False
-
- def Run(self, finder_options):
- """Do not override this method."""
- return story_runner.RunBenchmark(self, finder_options)
-
- @property
- def max_failures(self):
- return self._max_failures
-
- @classmethod
- def Name(cls):
- return '%s.%s' % (cls.__module__.split('.')[-1], cls.__name__)
-
- @classmethod
- def AddCommandLineArgs(cls, parser):
- group = optparse.OptionGroup(parser, '%s test options' % cls.Name())
- if hasattr(cls, 'AddBenchmarkCommandLineArgs'):
- cls.AddBenchmarkCommandLineArgs(group)
-
- if cls.HasTraceRerunDebugOption():
- group.add_option(
- '--rerun-with-debug-trace',
- action='store_true',
- help='Rerun option that enables more extensive tracing.')
-
- if group.option_list:
- parser.add_option_group(group)
-
- @classmethod
- def HasTraceRerunDebugOption(cls):
- if hasattr(cls, 'HasBenchmarkTraceRerunDebugOption'):
- if cls.HasBenchmarkTraceRerunDebugOption():
- return True
- return False
-
- def GetTraceRerunCommands(self):
- if self.HasTraceRerunDebugOption():
- return [['Debug Trace', '--rerun-with-debug-trace']]
- return []
-
- def SetupTraceRerunOptions(self, browser_options, tbm_options):
- if self.HasTraceRerunDebugOption():
- if browser_options.rerun_with_debug_trace:
- self.SetupBenchmarkDebugTraceRerunOptions(tbm_options)
- else:
- self.SetupBenchmarkDefaultTraceRerunOptions(tbm_options)
-
- def SetupBenchmarkDefaultTraceRerunOptions(self, tbm_options):
- """Setup tracing categories associated with default trace option."""
-
- def SetupBenchmarkDebugTraceRerunOptions(self, tbm_options):
- """Setup tracing categories associated with debug trace option."""
-
- @classmethod
- def SetArgumentDefaults(cls, parser):
- default_values = parser.get_default_values()
- invalid_options = [
- o for o in cls.options if not hasattr(default_values, o)]
- if invalid_options:
- raise InvalidOptionsError('Invalid benchmark options: %s',
- ', '.join(invalid_options))
- parser.set_defaults(**cls.options)
-
- @classmethod
- def ProcessCommandLineArgs(cls, parser, args):
- pass
-
- # pylint: disable=unused-argument
- @classmethod
- def ValueCanBeAddedPredicate(cls, value, is_first_result):
- """Returns whether |value| can be added to the test results.
-
- Override this method to customize the logic of adding values to test
- results.
-
- Args:
- value: a value.Value instance (except failure.FailureValue,
- skip.SkipValue or trace.TraceValue which will always be added).
- is_first_result: True if |value| is the first result for its
- corresponding story.
-
- Returns:
- True if |value| should be added to the test results.
- Otherwise, it returns False.
- """
- return True
-
- def CustomizeBrowserOptions(self, options):
- """Add browser options that are required by this benchmark."""
-
- def GetMetadata(self):
- return BenchmarkMetadata(
- self.Name(), self.__doc__, self.GetTraceRerunCommands())
-
- def CreateTimelineBasedMeasurementOptions(self):
- """Return the TimelineBasedMeasurementOptions for this Benchmark.
-
- Override this method to configure a TimelineBasedMeasurement benchmark.
- Otherwise, override CreatePageTest for PageTest tests. Do not override
- both methods.
- """
- return timeline_based_measurement.Options()
-
- def CreatePageTest(self, options): # pylint: disable=unused-argument
- """Return the PageTest for this Benchmark.
-
- Override this method for PageTest tests.
- Override, override CreateTimelineBasedMeasurementOptions to configure
- TimelineBasedMeasurement tests. Do not override both methods.
-
- Args:
- options: a browser_options.BrowserFinderOptions instance
- Returns:
- |test()| if |test| is a PageTest class.
- Otherwise, a TimelineBasedMeasurement instance.
- """
- is_page_test = issubclass(self.test, page_test.PageTest)
- is_tbm = self.test == timeline_based_measurement.TimelineBasedMeasurement
- if not is_page_test and not is_tbm:
- raise TypeError('"%s" is not a PageTest or a TimelineBasedMeasurement.' %
- self.test.__name__)
- if is_page_test:
- assert self._has_original_tbm_options, (
- 'Cannot override CreateTimelineBasedMeasurementOptions '
- 'with a PageTest.')
- return self.test() # pylint: disable=no-value-for-parameter
-
- opts = self.CreateTimelineBasedMeasurementOptions()
- self.SetupTraceRerunOptions(options, opts)
- return timeline_based_measurement.TimelineBasedMeasurement(opts)
-
- def CreateStorySet(self, options):
- """Creates the instance of StorySet used to run the benchmark.
-
- Can be overridden by subclasses.
- """
- del options # unused
- # TODO(aiolos, nednguyen, eakufner): replace class attribute page_set with
- # story_set.
- if not hasattr(self, 'page_set'):
- raise NotImplementedError('This test has no "page_set" attribute.')
- return self.page_set()
-
-
-def AddCommandLineArgs(parser):
- story_runner.AddCommandLineArgs(parser)
-
-
-def ProcessCommandLineArgs(parser, args):
- story_runner.ProcessCommandLineArgs(parser, args)
« no previous file with comments | « tools/telemetry/telemetry/android/shared_android_state.py ('k') | tools/telemetry/telemetry/benchmark_run_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698