changeset 13948:69928d77bc0a

mx jmh: avoid mx crash if JMH_BENCHMARKS is not defined at all and skip suites that do not contain the correct jar
author Gilles Duboscq <duboscq@ssw.jku.at>
date Thu, 13 Feb 2014 15:39:18 +0100
parents 1ea1566100bf
children f694daada5bf
files mx/mx_graal.py
diffstat 1 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mx/mx_graal.py	Thu Feb 13 14:43:07 2014 +0100
+++ b/mx/mx_graal.py	Thu Feb 13 15:39:18 2014 +0100
@@ -1272,12 +1272,12 @@
 
     vmArgs, benchmarks = _extract_VM_args(args)
     jmhPath = mx.get_env('JMH_BENCHMARKS', None)
-    if not exists(jmhPath):
+    if not jmhPath or not exists(jmhPath):
         mx.abort("$JMH_BENCHMARKS not properly definied")
 
     def _blackhole(x):
         mx.logv(x[:-1])
-
+    mx.log("Building benchmarks...")
     mx.run(['mvn', 'package'], cwd = jmhPath, out = _blackhole)
 
     matchedSuites = set()
@@ -1289,6 +1289,10 @@
             mx.logv('JMH: ignored ' + absoluteMicro + " because it doesn't start with 'micros-'")
             continue
 
+        microJar = os.path.join(absoluteMicro, "target", "microbenchmarks.jar")
+        if not exists(microJar):
+            mx.logv('JMH: ignored ' + absoluteMicro + " because it doesn't contain the expected jar file ('" + microJar + "')")
+            continue 
         if benchmarks:
             def _addBenchmark(x):
                 if x.startswith("Benchmark:"):
@@ -1300,7 +1304,8 @@
                 if match:
                     matchedSuites.add(micros)
 
-            mx.run_java(['-jar', os.path.join(absoluteMicro, "target", "microbenchmarks.jar"), "-l"], cwd = jmhPath, out = _addBenchmark)
+            
+            mx.run_java(['-jar', microJar, "-l"], cwd = jmhPath, out = _addBenchmark)
         else:
             matchedSuites.add(micros)