From 5ae63c71fcbabad8ad5a3a13d7fc19493c1cc1c5 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 30 Aug 2019 14:19:32 +0200 Subject: try to get version of benchmark requirements --- src/benchmark.py | 4 +++- src/facter.py | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) 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] -- cgit v1.2.3