12from os.path
import join, dirname, realpath, abspath
26 if element.search(bench):
32 benchmark_root_path = [dirname(sys.argv[0]),
'..',
'..'] + [
'benchmarks']
33 return realpath(os.path.sep.join(benchmark_root_path + path))
39 with open(filename)
as infile:
40 exec(infile.read(), benchmarks)
41 if (mode ==
"release")
and not core:
42 return benchmarks[
'SUPPORTED_BENCHMARKS']
44 return benchmarks[
'SUPPORTED_CORE_BENCHMARKS']
48 result = optparse.OptionParser()
52 help=
'Build variants (comma-separated).',
53 metavar=
'[all,debug,release]',
58 help=
'Verbose output.',
64 help=
'Run only core benchmarks.',
69 help=
'Target architectures (comma-separated).',
70 metavar=
'[all,ia32,x64,simarm,arm,dartc]',
74 help=
'Virtual machine to execute.',
75 metavar=
'[dart, (path to dart binary)]',
80 help=
'Only run the warmup period.',
87 if options.arch ==
'all':
88 options.arch =
'ia32,x64,simarm,dartc'
89 if options.mode ==
'all':
90 options.mode =
'debug,release'
91 options.mode = options.mode.split(
',')
92 options.arch = options.arch.split(
',')
93 for mode
in options.mode:
94 if not mode
in [
'debug',
'release']:
95 print(
"Unknown mode %s" % mode)
97 for arch
in options.arch:
98 if not arch
in [
'ia32',
'x64',
'simarm',
'arm',
'dartc']:
99 print(
"Unknown arch %s" % arch)
116 (options, args) = parser.parse_args()
126 filt = [re.compile(x.lower())
for x
in args]
127 chosen_benchmarks = [b
for b
in chosen_benchmarks
if match(b[0], filt)]
129 for mode
in options.mode:
130 for arch
in options.arch:
131 if options.executable
is None:
133 executable =
GetDart(mode, arch)
135 executable = [options.executable]
136 for benchmark, vmargs, progargs
in chosen_benchmarks:
138 command = command + [
143 subprocess.call(command)
147if __name__ ==
'__main__':
def ReadBenchmarkList(mode, path, core)
def ProcessOptions(options)
def GetBenchmarkFile(path)
def GetDart(mode, arch, sanitizer)
def GetBuildRoot(mode, arch, sanitizer)
def print(*args, **kwargs)
def GetBuildRoot(host_os, mode=None, arch=None, sanitizer=None)
static SkString join(const CommandLineFlags::StringArray &)