# HG changeset patch # User Josef Eisl # Date 1444143090 -7200 # Node ID 40a8dedf15543b8d41f7db24293bca12f8034276 # Parent 94836988442877373011f4ccf36b39a023005948 mx microbench: add support external JMH jars using the --jar argument. diff -r 948369884428 -r 40a8dedf1554 mx.graal/mx_graal.py --- a/mx.graal/mx_graal.py Tue Oct 06 17:58:23 2015 +0200 +++ b/mx.graal/mx_graal.py Tue Oct 06 16:51:30 2015 +0200 @@ -137,6 +137,11 @@ # depend on the JMH library). def microbench(args): """run JMH microbenchmark projects""" + parser = ArgumentParser(prog='mx microbench', description=microbench.__doc__, + usage="%(prog)s [command options|VM options] [-- [JMH options]]") + parser.add_argument('--jar', help='Explicitly specify micro-benchmark location') + known_args, args = parser.parse_known_args(args) + vmArgs, jmhArgs = mx.extract_VM_args(args, useDoubleDash=True) if isJVMCIEnabled(get_vm()) and '-XX:-UseJVMCIClassLoader' not in vmArgs: vmArgs = ['-XX:-UseJVMCIClassLoader'] + vmArgs @@ -156,22 +161,29 @@ except ValueError: pass - # default to -f1 if not specified otherwise - if not containsF: - jmhArgs += ['-f1'] + if known_args.jar: + # use the specified jar + args = ['-jar', known_args.jar] + if not forking: + args += vmArgs + else: + # default to -f1 if not specified otherwise + if not containsF: + jmhArgs += ['-f1'] - # find all projects with a direct JMH dependency - jmhProjects = [] - for p in mx.projects_opt_limit_to_suites(): - if 'JMH' in [x.name for x in p.deps]: - jmhProjects.append(p.name) - cp = mx.classpath(jmhProjects) + # find all projects with a direct JMH dependency + jmhProjects = [] + for p in mx.projects_opt_limit_to_suites(): + if 'JMH' in [x.name for x in p.deps]: + jmhProjects.append(p.name) + cp = mx.classpath(jmhProjects) - # execute JMH runner - args = ['-cp', cp] - if not forking: - args += vmArgs - args += ['org.openjdk.jmh.Main'] + # execute JMH runner + args = ['-cp', cp] + if not forking: + args += vmArgs + args += ['org.openjdk.jmh.Main'] + if forking: jdk = get_jvmci_jdk() jvm = get_vm()