From 49abb05528c93e63c5bff7d674bf33b341bcf990 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.oliveiramaroneze@cea.fr> Date: Tue, 23 Jun 2020 14:51:33 +0200 Subject: [PATCH] [Analysis-scripts] update summary.py and display-targets to new architecture --- share/analysis-scripts/epilogue.mk | 3 +++ share/analysis-scripts/summary.py | 20 +++++++++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/share/analysis-scripts/epilogue.mk b/share/analysis-scripts/epilogue.mk index 5918ddd031b..ca49ed6bc7b 100644 --- a/share/analysis-scripts/epilogue.mk +++ b/share/analysis-scripts/epilogue.mk @@ -35,3 +35,6 @@ all: eva ifeq ($(TARGETS),) @echo "error: TARGETS is empty" endif + +display-targets: + @echo "$(addprefix .frama-c/,$(TARGETS))" diff --git a/share/analysis-scripts/summary.py b/share/analysis-scripts/summary.py index a23c34e73ac..0b2fc9c9fba 100755 --- a/share/analysis-scripts/summary.py +++ b/share/analysis-scripts/summary.py @@ -45,14 +45,22 @@ def build_env(framac): bindir = framac + '/build/bin' return { **os.environ, 'PATH' : bindir + ':' + os.environ['PATH'] } -def list_targets(): +def list_targets(dir): env = build_env(framac) res = subprocess.run( - ["make", "--quiet", "display-targets"], + ["make", "--directory", dir, "--quiet", "display-targets"], env=env, stdout=subprocess.PIPE, encoding='ascii') - return res.stdout.split() + targets = res.stdout.split() + res = [] + for target in targets: + if target.endswith(".eva") or target.endswith(".parse"): + res.append(dir + "/" + target) + else: + res += [dir + "/" + t for t in list_targets(target)] + print(f"list_targets returning: {res}") + return res def clone_frama_c(clonedir, hash): print("Cloning Frama-C", hash, "...") @@ -74,7 +82,7 @@ def run_make(framac, benchmark_tag=None): 'FRAMAC_DIR=' + bindir, 'FRAMAC=' + bindir + '/frama-c'] if benchmark_tag is None: - args += ['-j', '8'] + args += ['-j', str(os.cpu_count ())] else: args += ['BENCHMARK=' + benchmark_tag] return subprocess.Popen(args, env=env, @@ -95,8 +103,10 @@ def terminate_process(process): return errors def smart_rename(target): + target = re.sub('^\./', '', target) target = re.sub('main\.eva$', '', target) target = re.sub('\.eva$', '', target) + target = re.sub('\.frama-c/', '', target) target = re.sub('qds/frama-c', 'qds', target) return target @@ -118,7 +128,7 @@ def poll_results(targets, benchmark_tag): def run_analyses(display, database, framac, benchmark_tag): results = [] - targets = list_targets() + targets = list_targets(".") process = run_make(framac, benchmark_tag) errors = b"" next_poll = time.time() -- GitLab