aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fl.fischer@fau.de>2019-08-30 14:19:32 +0200
committerFlorian Fischer <florian.fl.fischer@fau.de>2019-08-30 14:19:32 +0200
commit5ae63c71fcbabad8ad5a3a13d7fc19493c1cc1c5 (patch)
treefb8bf312fe439bde06339c94be116269aba0e04a
parent52c50b7299efb2050794ac589902af325156f7c3 (diff)
downloadallocbench-5ae63c71fcbabad8ad5a3a13d7fc19493c1cc1c5.tar.gz
allocbench-5ae63c71fcbabad8ad5a3a13d7fc19493c1cc1c5.zip
try to get version of benchmark requirements
-rw-r--r--src/benchmark.py4
-rw-r--r--src/facter.py12
2 files changed, 15 insertions, 1 deletions
diff --git a/src/benchmark.py b/src/benchmark.py
index ecac9d9..d94cc52 100644
--- a/src/benchmark.py
+++ b/src/benchmark.py
@@ -98,7 +98,8 @@ class Benchmark:
default_results = {"args": self.args,
"allocators": self.allocators,
- "facts": {"libcs": {}}}
+ "facts": {"libcs": {},
+ "versions": {}}}
default_results.update({alloc: {} for alloc in self.allocators})
if not hasattr(self, "results"):
@@ -189,6 +190,7 @@ class Benchmark:
exe = src.util.find_cmd(r)
if exe is not None:
self.results["facts"]["libcs"][r] = src.facter.libc_ver(executable=exe)
+ self.results["facts"]["versions"][r] = src.facter.exec_ver(exe)
else:
raise Exception("Requirement: {} not found".format(r))
diff --git a/src/facter.py b/src/facter.py
index 8e01142..387c75c 100644
--- a/src/facter.py
+++ b/src/facter.py
@@ -25,6 +25,7 @@ import platform
import subprocess
import src.globalvars as gv
+from src.util import print_error
def collect_facts():
@@ -108,3 +109,14 @@ def libc_ver(executable=None):
return platform.libc_ver(executable)
return ("glibc", glibc_version)
+
+def exec_ver(executable):
+ """Return version of executable"""
+ proc = subprocess.run([executable, "--version"],
+ universal_newlines=True, stdout=subprocess.PIPE)
+
+ if proc.returncode != 0:
+ print_error(f"failed to get version of {executable}")
+ return ""
+
+ return proc.stdout[:-1]