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
3 # found in the LICENSE file.
5 from core
import perf_benchmark
7 from telemetry
import benchmark
8 from telemetry
.core
import discover
9 from telemetry
.page
import page_set
11 from measurements
import skpicture_printer
14 def _MatchPageSetName(page_set_name
, page_set_base_dir
):
16 page_sets
+= discover
.DiscoverClasses(page_set_base_dir
, page_set_base_dir
,
18 index_by_class_name
=True).values()
20 if page_set_name
== p
.Name():
26 class SkpicturePrinter(perf_benchmark
.PerfBenchmark
):
28 def AddBenchmarkCommandLineArgs(cls
, parser
):
29 parser
.add_option('--page-set-name', action
='store', type='string')
30 parser
.add_option('--page-set-base-dir', action
='store', type='string')
31 parser
.add_option('-s', '--skp-outdir',
32 help='Output directory for the SKP files')
34 def ProcessCommandLineArgs(cls
, parser
, args
):
35 if not args
.page_set_name
:
36 parser
.error('Please specify --page-set-name')
37 if not args
.page_set_base_dir
:
38 parser
.error('Please specify --page-set-base-dir')
39 if not args
.skp_outdir
:
40 parser
.error('Please specify --skp-outdir')
44 return 'skpicture_printer'
46 def CreatePageTest(self
, options
):
47 return skpicture_printer
.SkpicturePrinter(options
.skp_outdir
)
49 def CreatePageSet(self
, options
):
50 page_set_class
= _MatchPageSetName(options
.page_set_name
,
51 options
.page_set_base_dir
)
52 return page_set_class()