diff options
author | Andrew Gregory <andrew.gregory.8@gmail.com> | 2021-01-19 19:30:06 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2021-01-21 08:18:24 +0100 |
commit | 1fdf8c00764af9e32f8dec13061f625f48bd4c8c (patch) | |
tree | 12296a9936cfd870778e3ed55de942ab613aab5a | |
parent | f9bc6c2b09c18dd48f839f53d834c6fd1bfd2dd3 (diff) | |
download | pacman-1fdf8c00764af9e32f8dec13061f625f48bd4c8c.tar.gz pacman-1fdf8c00764af9e32f8dec13061f625f48bd4c8c.tar.xz |
gitlab-ci: print output and logs for failed tests
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r-- | .gitlab-ci.yml | 5 | ||||
-rwxr-xr-x | build-aux/cat-test-file | 11 | ||||
-rwxr-xr-x | build-aux/print-failed-test-output | 17 |
3 files changed, 33 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e889c498..6ca35941 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,7 @@ variables: MAKEFLAGS: "-j10" VERBOSE: 1 PACMAN_OPTS: --needed --noconfirm --cachedir .pkg-cache + PACTEST_OPTS: --review --editor=../build-aux/cat-test-file cache: key: pkgs-v1 @@ -9,6 +10,10 @@ cache: # For some reason Gitlab CI only supports storing cache/artifacts in a path relative to the build directory - .pkg-cache +default: + after_script: + - build-aux/print-failed-test-output build/meson-logs/testlog.json + .arch-test: image: archlinux/base before_script: diff --git a/build-aux/cat-test-file b/build-aux/cat-test-file new file mode 100755 index 00000000..1bcc1113 --- /dev/null +++ b/build-aux/cat-test-file @@ -0,0 +1,11 @@ +#!/usr/bin/python3 + +import sys + +for path in sys.argv[1:]: + print('# -----------------------------------') + print('# ' + path + ':') + print('# -----------------------------------') + with open(path, 'r') as f: + for line in f: + print('# ' + line, end='') diff --git a/build-aux/print-failed-test-output b/build-aux/print-failed-test-output new file mode 100755 index 00000000..1f1ab76d --- /dev/null +++ b/build-aux/print-failed-test-output @@ -0,0 +1,17 @@ +#!/usr/bin/python + +import json +import sys + +def print_result(result): + print('==================================================================') + print(result['name']) + print(' '.join(result['command'])) + print('==================================================================') + print(result['stdout']) + +with open(sys.argv[1], 'r') as f: + for line in f: + result = json.loads(line) + if result['result'] == 'FAIL': + print_result(result) |