From cdfd77af6e6ca5f4352d42573a33d51c09eba5b3 Mon Sep 17 00:00:00 2001
From: Florian Fischer <florian.fl.fischer@fau.de>
Date: Mon, 29 Apr 2019 17:12:41 +0200
Subject: [PATCH] move list of available benchmarks to
 src.globalvars.benchmarks

fix analyse
---
 bench.py          | 10 ++++------
 src/benchmark.py  |  1 -
 src/globalvars.py | 14 +++++++++++++-
 3 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/bench.py b/bench.py
index f7a513e..8fe7850 100755
--- a/bench.py
+++ b/bench.py
@@ -14,10 +14,6 @@ import src.globalvars
 from src.util import *
 
 
-bench_dir = "src/benchmarks"
-benchmarks = [e[:-3] for e in os.listdir(bench_dir)
-                     if e[-3:] == ".py" and e != "__init__.py"]
-
 parser = argparse.ArgumentParser(description="benchmark memory allocators")
 parser.add_argument("-ds, --dont-save", action='store_true', dest="dont_save",
                     help="don't save benchmark results in RESULTDIR")
@@ -141,7 +137,7 @@ def main():
     # TODO load all results at once
 
     cwd = os.getcwd()
-    for bench in benchmarks:
+    for bench in src.globalvars.benchmarks:
         if args.benchmarks and not bench in args.benchmarks:
             continue
 
@@ -170,7 +166,7 @@ def main():
 
                     old_allocs = bench.allocators
                     # use malt as allocator
-                    src.globalvars.allocators = {"malt": {"cmd_prefix"    : malt_cmd,
+                    bench.allocators = {"malt": {"cmd_prefix"    : malt_cmd,
                                                           "binary_suffix" : "",
                                                           "LD_PRELOAD"    : ""}}
                     try:
@@ -189,6 +185,8 @@ def main():
                 else:
                     print_error("malt not found. Skipping analyse.")
 
+            if args.runs > 1:
+                print_status("Running", bench.name, "...")
             bench.run(runs=args.runs)
 
             if need_resultdir:
diff --git a/src/benchmark.py b/src/benchmark.py
index f904c7a..4b1ae7f 100644
--- a/src/benchmark.py
+++ b/src/benchmark.py
@@ -172,7 +172,6 @@ class Benchmark (object):
         if runs < 1:
             return
 
-        print_status("Running", self.name, "...")
         # check if perf is allowed on this system
         if self.measure_cmd == self.defaults["measure_cmd"]:
             if Benchmark.perf_allowed == None:
diff --git a/src/globalvars.py b/src/globalvars.py
index c897786..7bf3de7 100644
--- a/src/globalvars.py
+++ b/src/globalvars.py
@@ -1,3 +1,4 @@
+import inspect
 import os
 
 
@@ -13,8 +14,19 @@ allocators = {}
 """File were the allocators definitions are loaded from"""
 allocators_file = None
 
+"""Root directory of allocbench"""
+allocbenchdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
+allocbenchdir = os.path.dirname(allocbenchdir)
+
 """Path of the build directory"""
-builddir = os.path.join(os.getcwd(), "build")
+builddir = "build"
 
 """Directory were the benchmark results are stored"""
 resdir = None
+
+"""Source directory for all benchmarks"""
+benchsrcdir = "src/benchmarks"
+
+"""List of available benchmarks"""
+benchmarks = [e[:-3] for e in os.listdir(os.path.join(allocbenchdir, benchsrcdir))
+              if e[-3:] == ".py" and e != "__init__.py"]
-- 
GitLab