diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2022-07-14 15:06:11 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2022-07-14 15:07:19 +0200 |
commit | 2532fee157adf45bcd262f0f24a1740990df6e76 (patch) | |
tree | 3420a5cfcc17d632a5ff1ac039df524d27c3976a /tests/common.sh.in | |
parent | 819615c7f477799c6a0fcd1953012a393907c9eb (diff) |
On test failures, print a bash stack trace
This makes it easier to identify what command failed. It looks like:
follow-paths.sh: test failed at:
main in follow-paths.sh:54
Diffstat (limited to 'tests/common.sh.in')
-rw-r--r-- | tests/common.sh.in | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/tests/common.sh.in b/tests/common.sh.in index 5efd025ee..79da10199 100644 --- a/tests/common.sh.in +++ b/tests/common.sh.in @@ -119,11 +119,11 @@ killDaemon() { } restartDaemon() { - [[ -z "${pidDaemon:-}" ]] && return 0 + [[ -z "${pidDaemon:-}" ]] && return 0 - killDaemon - unset NIX_REMOTE - startDaemon + killDaemon + unset NIX_REMOTE + startDaemon } if [[ $(uname) == Linux ]] && [[ -L /proc/self/ns/user ]] && unshare --user true; then @@ -190,4 +190,15 @@ if [[ -n "${NIX_DAEMON_PACKAGE:-}" ]]; then startDaemon fi +onError() { + set +x + echo "$0: test failed at:" >&2 + for ((i = 1; i < 16; i++)); do + if [[ -z ${BASH_SOURCE[i]} ]]; then break; fi + echo " ${FUNCNAME[i]} in ${BASH_SOURCE[i]}:${BASH_LINENO[i-1]}" >&2 + done +} + +trap onError ERR + fi # COMMON_SH_SOURCED |