From a6beb051aff4f11784cb974a1dc3647e74f2389c Mon Sep 17 00:00:00 2001 From: Andres Gomez Date: Fri, 1 May 2020 00:05:07 +0300 Subject: gitlab-ci: correct tracie behavior with replay errors [dump_trace_images] Info: Dumping trace /tmp/tracie.test.ap5pshYcsg/traces-db/trace1/magenta.testtrace... ERROR [dump_trace_images] Debug: === Failure log start === invalid literal for int() with base 16: 'in' [dump_trace_images] Debug: === Failure log end === [check_image] Trace /tmp/tracie.test.ap5pshYcsg/traces-db/trace1/magenta.testtrace couldn't be replayed. See above logs for more information. Traceback (most recent call last): File "/tmp/tracie.test.ap5pshYcsg/tracie.py", line 176, in main() File "/tmp/tracie.test.ap5pshYcsg/tracie.py", line 164, in main ok, result = gitlab_check_trace(project_url, commit_id, args.device_name, trace, expectation) TypeError: cannot unpack non-iterable bool object Fixes: efbbf8bb81e ("tracie: Print results in a machine readable format") Signed-off-by: Andres Gomez Reviewed-by: Rohan Garg Part-of: --- .gitlab-ci/tracie/tests/test.sh | 1 + .gitlab-ci/tracie/tracie.py | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci/tracie/tests/test.sh b/.gitlab-ci/tracie/tests/test.sh index 2f667fb8c60..7dbcfce3241 100755 --- a/.gitlab-ci/tracie/tests/test.sh +++ b/.gitlab-ci/tracie/tests/test.sh @@ -106,6 +106,7 @@ tracie_fails_on_dump_image_error() { run_tracie assert "[ $? != 0 ]" + assert_results_yaml_contains "error" "8e0a801367e1714463475a824dab363b" "trace1/magenta.testtrace" "$PWD/results/results.yml" } tracie_stores_only_logs_on_checksum_match() { diff --git a/.gitlab-ci/tracie/tracie.py b/.gitlab-ci/tracie/tracie.py index 6e640b41ec1..92ff9c200c3 100644 --- a/.gitlab-ci/tracie/tracie.py +++ b/.gitlab-ci/tracie/tracie.py @@ -106,11 +106,13 @@ def gitlab_check_trace(project_url, repo_commit, device_name, trace, expectation result = {} result[trace['path']] = {} + result[trace['path']]['expected'] = expectation['checksum'] trace_path = Path(TRACES_DB_PATH + trace['path']) checksum, image_file, log_file = replay(trace_path, device_name) if checksum is None: - return False + result[trace['path']]['actual'] = 'error' + return False, result elif checksum == expectation['checksum']: print("[check_image] Images match for %s" % (trace['path'])) ok = True @@ -131,7 +133,6 @@ def gitlab_check_trace(project_url, repo_commit, device_name, trace, expectation shutil.move(image_file, os.path.join(results_path, image_name)) result[trace['path']]['image'] = os.path.join(dir_in_results, image_name) - result[trace['path']]['expected'] = expectation['checksum'] result[trace['path']]['actual'] = checksum return ok, result -- cgit v1.2.3