Index: telemetry/telemetry/benchmark_unittest.py |
diff --git a/telemetry/telemetry/benchmark_unittest.py b/telemetry/telemetry/benchmark_unittest.py |
index fe9ad8a1687e9bcac4fdb7b5dfb5ea71294a35f6..cc04729f7c5f2a9fd1ebc7d6f760a96c95db7994 100644 |
--- a/telemetry/telemetry/benchmark_unittest.py |
+++ b/telemetry/telemetry/benchmark_unittest.py |
@@ -8,6 +8,7 @@ import unittest |
from telemetry import android |
from telemetry import benchmark |
from telemetry.testing import options_for_unittests |
+from telemetry.timeline import chrome_trace_category_filter |
from telemetry.internal import story_runner |
from telemetry import page |
from telemetry.page import legacy_page_test |
@@ -83,22 +84,6 @@ class BenchmarkTest(unittest.TestCase): |
self.assertTrue(was_run[0]) |
- def testOverriddenTbmOptionsAndPageTestRaises(self): |
- class FakeTimelineBasedMeasurementOptions(object): |
- pass |
- |
- class OverrideBothBenchmark(benchmark.Benchmark): |
- def CreatePageTest(self, _): |
- return DummyPageTest() |
- def CreateTimelineBasedMeasurementOptions(self): |
- return FakeTimelineBasedMeasurementOptions() |
- |
- assertion_regex = ( |
- 'Cannot override both CreatePageTest and ' |
- 'CreateTimelineBasedMeasurementOptions') |
- with self.assertRaisesRegexp(AssertionError, assertion_regex): |
- OverrideBothBenchmark() |
- |
def testBenchmarkMakesTbmTestByDefault(self): |
class DefaultTbmBenchmark(benchmark.Benchmark): |
pass |
@@ -118,21 +103,6 @@ class BenchmarkTest(unittest.TestCase): |
with self.assertRaisesRegexp(TypeError, type_error_regex): |
UnknownTestTypeBenchmark().CreatePageTest(options=None) |
- def testOverriddenTbmOptionsAndPageTestTestAttributeRaises(self): |
- class FakeTimelineBasedMeasurementOptions(object): |
- pass |
- |
- class OverrideOptionsOnPageTestBenchmark(benchmark.Benchmark): |
- test = DummyPageTest |
- def CreateTimelineBasedMeasurementOptions(self): |
- return FakeTimelineBasedMeasurementOptions() |
- |
- assertion_regex = ( |
- 'Cannot override CreateTimelineBasedMeasurementOptions ' |
- 'with a PageTest') |
- with self.assertRaisesRegexp(AssertionError, assertion_regex): |
- OverrideOptionsOnPageTestBenchmark().CreatePageTest(options=None) |
- |
def testBenchmarkPredicate(self): |
class PredicateBenchmark(TestBenchmark): |
@classmethod |
@@ -195,3 +165,96 @@ class BenchmarkTest(unittest.TestCase): |
self.assertIsInstance(barOwnerDiangostic, histogram.Ownership) |
self.assertItemsEqual(barOwnerDiangostic.emails, ['bob@chromium.org']) |
self.assertEqual(barOwnerDiangostic.component, 'xyzzyx') |
+ |
+ def testGetTBMOptionsSupportsLegacyName(self): |
+ class TbmBenchmark(benchmark.Benchmark): |
+ def CreateTimelineBasedMeasurementOptions(self): |
+ return 'Legacy' |
+ |
+ options = TbmBenchmark(None)._GetTimelineBasedMeasurementOptions(None) |
+ self.assertEqual(options, 'Legacy') |
+ |
+ def testGetTBMOptionsSupportsNewName(self): |
+ class TbmBenchmark(benchmark.Benchmark): |
+ def CreateCoreTimelineBasedMeasurementOptions(self): |
+ return 'New' |
+ |
+ options = TbmBenchmark(None)._GetTimelineBasedMeasurementOptions(None) |
+ self.assertEqual(options, 'New') |
+ |
+ def testGetTBMOptionsBothAsserts(self): |
+ # TODO(sullivan): remove this test after fully removing |
+ # CreateCoreTimelineBasedMeasurementOptions. |
+ class TbmBenchmark(benchmark.Benchmark): |
+ def CreateTimelineBasedMeasurementOptions(self): |
+ return 'Legacy' |
+ def CreateCoreTimelineBasedMeasurementOptions(self): |
+ return 'New' |
+ |
+ |
+ with self.assertRaisesRegexp( |
+ AssertionError, 'Benchmarks should override'): |
+ TbmBenchmark(None)._GetTimelineBasedMeasurementOptions(None) |
+ |
+ def testChromeTraceOptionsUpdateFilterString(self): |
+ class TbmBenchmark(benchmark.Benchmark): |
+ def CreateCoreTimelineBasedMeasurementOptions(self): |
+ tbm_options = timeline_based_measurement.Options( |
+ chrome_trace_category_filter.ChromeTraceCategoryFilter( |
+ filter_string='rail,toplevel')) |
+ tbm_options.config.enable_chrome_trace = True |
+ return tbm_options |
+ |
+ options = options_for_unittests.GetCopy() |
+ options.extra_chrome_categories = 'toplevel,net' |
+ parser = optparse.OptionParser() |
+ benchmark.AddCommandLineArgs(parser) |
+ options.MergeDefaultValues(parser.get_default_values()) |
+ |
+ b = TbmBenchmark(None) |
+ tbm = b.CreatePageTest(options) |
+ self.assertEqual( |
+ 'net,rail,toplevel', |
+ tbm._tbm_options.category_filter.stable_filter_string) |
+ |
+ def testAtraceOptionsTurnsOnAtrace(self): |
+ class TbmBenchmark(benchmark.Benchmark): |
+ def CreateCoreTimelineBasedMeasurementOptions(self): |
+ tbm_options = timeline_based_measurement.Options() |
+ tbm_options.config.atrace_config.categories = [] |
+ return tbm_options |
+ |
+ options = options_for_unittests.GetCopy() |
+ options.extra_atrace_categories = 'foo,bar' |
+ parser = optparse.OptionParser() |
+ benchmark.AddCommandLineArgs(parser) |
+ options.MergeDefaultValues(parser.get_default_values()) |
+ |
+ b = TbmBenchmark(None) |
+ tbm = b.CreatePageTest(options) |
+ self.assertTrue(tbm._tbm_options.config.enable_atrace_trace) |
+ self.assertEqual( |
+ ['foo', 'bar'], |
+ tbm._tbm_options.config.atrace_config.categories) |
+ |
+ def testAdditionalAtraceCategories(self): |
+ class TbmBenchmark(benchmark.Benchmark): |
+ def CreateCoreTimelineBasedMeasurementOptions(self): |
+ tbm_options = timeline_based_measurement.Options() |
+ tbm_options.config.enable_atrace_trace = True |
+ tbm_options.config.atrace_config.categories = 'string,foo,stuff' |
+ return tbm_options |
+ |
+ options = options_for_unittests.GetCopy() |
+ options.extra_atrace_categories = 'foo,bar' |
+ parser = optparse.OptionParser() |
+ benchmark.AddCommandLineArgs(parser) |
+ options.MergeDefaultValues(parser.get_default_values()) |
+ |
+ b = TbmBenchmark(None) |
+ tbm = b.CreatePageTest(options) |
+ self.assertTrue(tbm._tbm_options.config.enable_atrace_trace) |
+ self.assertEqual( |
+ ['string', 'foo', 'stuff', 'bar'], |
+ tbm._tbm_options.config.atrace_config.categories) |
+ |