Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Theta tool-info module update #1091

Merged
merged 3 commits into from
Oct 21, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 19 additions & 12 deletions benchexec/tools/theta.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,38 +45,45 @@ def determine_result(self, run):
if run.was_terminated:
return result.RESULT_ERROR
status = result.RESULT_UNKNOWN
parsing_status = "before"
for line in run.output:
if "SafetyResult Unsafe" in line:
status = result.RESULT_FALSE_REACH
elif "SafetyResult Safe" in line:
status = result.RESULT_TRUE_PROP
elif "ParsingResult Success" in line:
status = "Parsing OK"
parsing_status = "after"

if (
if run.was_timeout:
status = result.RESULT_TIMEOUT + f" ({parsing_status} parsing finished)"
elif (
not run.was_timeout
and status == result.RESULT_UNKNOWN
and run.exit_code.value != 0
):
if run.exit_code.value == 1:
status = "ERROR (generic error)"
status = f"ERROR (generic error, {parsing_status} parsing finished)"
elif run.exit_code.value == 200:
status = "ERROR (out of memory)"
status = f"ERROR (out of memory, {parsing_status} parsing finished)"
elif run.exit_code.value == 201:
status = "ERROR (inner timeout)"
status = f"ERROR (inner timeout, {parsing_status} parsing finished)"
elif run.exit_code.value == 202:
status = "ERROR (server error)"
status = f"ERROR (server error, {parsing_status} parsing finished)"
elif run.exit_code.value == 203:
status = "ERROR (portfolio error)"
status = f"ERROR (portfolio error, {parsing_status} parsing finished)"
elif run.exit_code.value == 209:
status = f"ERROR (Unsupported source element, {parsing_status} parsing finished)"
elif run.exit_code.value == 210:
status = "ERROR (frontend failed)"
status = f"ERROR (frontend failed, {parsing_status} parsing finished)"
elif run.exit_code.value == 211:
status = "ERROR (invalid parameter)"
status = f"ERROR (invalid parameter, {parsing_status} parsing finished)"
elif run.exit_code.value == 220:
status = "ERROR (verification stuck)"
status = (
f"ERROR (verification stuck, {parsing_status} parsing finished)"
)
elif run.exit_code.value == 221:
status = "ERROR (solver error)"
status = f"ERROR (solver error, {parsing_status} parsing finished)"
else:
status = result.RESULT_ERROR
status = result.RESULT_ERROR + f" ({parsing_status} parsing finished)"

return status