| Index: tools/perf/benchmarks/benchmark_smoke_unittest.py
|
| diff --git a/tools/perf/benchmarks/benchmark_smoke_unittest.py b/tools/perf/benchmarks/benchmark_smoke_unittest.py
|
| index 4630c5b1d2a2cf6e469db0b4f8c33ba3cf00d6fc..a25f71394b179c53d23cf61949bd5bd335592514 100644
|
| --- a/tools/perf/benchmarks/benchmark_smoke_unittest.py
|
| +++ b/tools/perf/benchmarks/benchmark_smoke_unittest.py
|
| @@ -10,14 +10,23 @@ of every benchmark would run impractically long.
|
| """
|
|
|
| import os
|
| +import sys
|
| +import time
|
| import unittest
|
|
|
| from telemetry import benchmark as benchmark_module
|
| from telemetry.core import discover
|
| -from telemetry.page import page_test
|
| from telemetry.unittest_util import options_for_unittests
|
| from telemetry.unittest_util import progress_reporter
|
|
|
| +from benchmarks import dom_perf
|
| +from benchmarks import indexeddb_perf
|
| +from benchmarks import image_decoding
|
| +from benchmarks import rasterize_and_record_micro
|
| +from benchmarks import spaceport
|
| +from benchmarks import speedometer
|
| +from benchmarks import jetstream
|
| +
|
|
|
| def SmokeTestGenerator(benchmark):
|
| # NOTE TO SHERIFFS: DO NOT DISABLE THIS TEST.
|
| @@ -56,34 +65,44 @@ def SmokeTestGenerator(benchmark):
|
| benchmark.ProcessCommandLineArgs(None, options)
|
| benchmark_module.ProcessCommandLineArgs(None, options)
|
|
|
| - self.assertEqual(0, SinglePageBenchmark().Run(options),
|
| - msg='Failed: %s' % benchmark)
|
| + current = time.time()
|
| + try:
|
| + self.assertEqual(0, SinglePageBenchmark().Run(options),
|
| + msg='Failed: %s' % benchmark)
|
| + finally:
|
| + print 'Benchmark %s run takes %i seconds' % (
|
| + benchmark.Name(), time.time() - current)
|
|
|
| return BenchmarkSmokeTest
|
|
|
|
|
| +# The list of benchmark modules to be excluded from our smoke tests.
|
| +_BLACK_LIST_TEST_MODULES = {
|
| + dom_perf, # Always fails on cq bot.
|
| + image_decoding, # Always fails on Mac10.9 Tests builder.
|
| + indexeddb_perf, # Always fails on Win7 & Android Tests builder.
|
| + rasterize_and_record_micro, # Always fails on cq bot.
|
| + spaceport, # Takes 451 seconds.
|
| + speedometer, # Takes 101 seconds.
|
| + jetstream, # Take 206 seconds.
|
| +}
|
| +
|
| +
|
| def load_tests(loader, standard_tests, pattern):
|
| del loader, standard_tests, pattern # unused
|
| suite = progress_reporter.TestSuite()
|
|
|
| benchmarks_dir = os.path.dirname(__file__)
|
| top_level_dir = os.path.dirname(benchmarks_dir)
|
| - measurements_dir = os.path.join(top_level_dir, 'measurements')
|
|
|
| - all_measurements = discover.DiscoverClasses(
|
| - measurements_dir, top_level_dir, page_test.PageTest).values()
|
| # Using the default of |index_by_class_name=False| means that if a module
|
| # has multiple benchmarks, only the last one is returned.
|
| all_benchmarks = discover.DiscoverClasses(
|
| benchmarks_dir, top_level_dir, benchmark_module.Benchmark,
|
| index_by_class_name=False).values()
|
| for benchmark in all_benchmarks:
|
| - if hasattr(benchmark, 'test') and benchmark.test not in all_measurements:
|
| - # If the benchmark does not have a measurement, then it is not composable.
|
| - # Ideally we'd like to test these as well, but the non-composable
|
| - # benchmarks are usually long-running benchmarks.
|
| + if sys.modules[benchmark.__module__] in _BLACK_LIST_TEST_MODULES:
|
| continue
|
| -
|
| # TODO(tonyg): Smoke doesn't work with session_restore yet.
|
| if (benchmark.Name().startswith('session_restore') or
|
| benchmark.Name().startswith('skpicture_printer')):
|
|
|