Mesa (main): ci/lava: Add explicit fatal-error handler
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Jun 11 12:47:32 UTC 2021
Module: Mesa
Branch: main
Commit: 82631c7182355de280a6b19deaf8a319de7cc4d1
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=82631c7182355de280a6b19deaf8a319de7cc4d1
Author: Daniel Stone <daniels at collabora.com>
Date: Thu Jun 10 23:45:07 2021 +0100
ci/lava: Add explicit fatal-error handler
Truth is relative in 2021, and Python's duck-typing means truthiness
isn't what you think it is. Use an explicit fatal-error handler to make
sure we crash out hard on failure, rather than hoping sys.exit() behaves
like you think it does, because it doesn't.
Signed-off-by: Daniel Stone <daniels at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309>
---
.gitlab-ci/lava/lava_job_submitter.py | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/.gitlab-ci/lava/lava_job_submitter.py b/.gitlab-ci/lava/lava_job_submitter.py
index b10d032a496..81c0b8f1f92 100755
--- a/.gitlab-ci/lava/lava_job_submitter.py
+++ b/.gitlab-ci/lava/lava_job_submitter.py
@@ -39,13 +39,12 @@ from datetime import datetime
from lavacli.utils import loader
-def log_msg(msg):
- return "{}: {}".format(datetime.now(), msg)
-
-
def print_log(msg):
- print(log_msg(msg))
+ print("{}: {}".format(datetime.now(), msg))
+def fatal_err(msg):
+ print_log(msg)
+ sys.exit(1)
def generate_lava_yaml(args):
env = jinja2.Environment(loader = jinja2.FileSystemLoader(os.path.dirname(args.template)), trim_blocks=True, lstrip_blocks=True)
@@ -101,13 +100,13 @@ def _call_proxy(fn, *args):
except xmlrpc.client.ProtocolError as err:
if n == retries:
traceback.print_exc()
- sys.exit(log_msg("A protocol error occurred (Err {} {})".format(err.errcode, err.errmsg)))
+ fatal_err("A protocol error occurred (Err {} {})".format(err.errcode, err.errmsg))
else:
time.sleep(15)
pass
except xmlrpc.client.Fault as err:
traceback.print_exc()
- sys.exit(log_msg("FATAL: Fault: {} (code: {})".format(err.faultString, err.faultCode)))
+ fatal_err("FATAL: Fault: {} (code: {})".format(err.faultString, err.faultCode))
def get_job_results(proxy, job_id, test_suite, test_case):
@@ -128,11 +127,11 @@ def get_job_results(proxy, job_id, test_suite, test_case):
results_yaml = _call_proxy(proxy.results.get_testcase_results_yaml, job_id, test_suite, test_case)
results = yaml.load(results_yaml, Loader=loader(False))
if not results:
- sys.exit(log_msg("LAVA: no result for test_suite '{}', test_case '{}'".format(test_suite, test_case)))
+ fatal_err("LAVA: no result for test_suite '{}', test_case '{}'".format(test_suite, test_case))
print_log("LAVA: result for test_suite '{}', test_case '{}': {}".format(test_suite, test_case, results[0]['result']))
if results[0]['result'] != 'pass':
- sys.exit(log_msg("FAIL"))
+ fatal_err("FAIL")
return True
@@ -174,7 +173,7 @@ def main(args):
if args.validate_only:
ret = validate_job(proxy, yaml_file)
if not ret:
- sys.exit(log_msg("Error in LAVA job definition"))
+ fatal_err("Error in LAVA job definition")
print("LAVA job definition validated successfully")
return
More information about the mesa-commit
mailing list