From 344770969f54dac63da9fa986b9a526adf2f1682 Mon Sep 17 00:00:00 2001 From: Vesal Vojdani Date: Sun, 20 Oct 2024 17:19:13 +0000 Subject: [PATCH] Add toolinfo module for CoOpeRace --- benchexec/tools/cooperace.py | 42 ++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 benchexec/tools/cooperace.py diff --git a/benchexec/tools/cooperace.py b/benchexec/tools/cooperace.py new file mode 100644 index 000000000..b44528069 --- /dev/null +++ b/benchexec/tools/cooperace.py @@ -0,0 +1,42 @@ +# This file is part of BenchExec, a framework for reliable benchmarking: +# https://github.com/sosy-lab/benchexec +# +# SPDX-FileCopyrightText: 2007-2020 Dirk Beyer +# +# SPDX-License-Identifier: Apache-2.0 + +import benchexec.tools.template +import benchexec.result as result + +class Tool(benchexec.tools.template.BaseTool2): + """ + Tool info for CoOpeRace. + """ + + def executable(self, tool_locator): + return tool_locator.find_executable("cooperace") + + def name(self): + return "CoOpeRace" + + def version(self, executable): + return self._version_from_tool(executable, line_prefix="CoOpeRace") + + def cmdline(self, executable, options, task, rlimits): + if task.property_file: + options += ["--prop", task.property_file] + if task.options is not None and "data_model" in task.options: + options += ["--arch", task.options.get("data_model")] + return [executable, *options, *task.input_files] + + def determine_result(self, run): + if run.output: + result_str = run.output[-1].strip() + if result_str == "CoOpeRace verdict: true": + return result.RESULT_TRUE_PROP + if result_str == "CoOpeRace verdict: false": + return result.RESULT_FALSE_PROP + if result_str == "CoOpeRace verdict: unknown": + return result.RESULT_UNKNOWN + + return result.RESULT_ERROR