diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2023-01-06 10:56:22 -0500 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2023-01-06 10:56:22 -0500 |
commit | 989b8065b45e52a8df2a803b1a72e0d0a7c35536 (patch) | |
tree | ffd7d779cf35dc13396aef3b1871a7bc954af350 /mk/run-test.sh | |
parent | 08b8657978de0d56064aad9c3e925b64d91b28a2 (diff) | |
parent | e9fc1e4fdb0ab5adb6b163c3db361b86a4f5c69b (diff) |
Merge branch 'path-info' into ca-drv-exotic
Diffstat (limited to 'mk/run-test.sh')
-rwxr-xr-x | mk/run-test.sh | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/mk/run-test.sh b/mk/run-test.sh new file mode 100755 index 000000000..219c8577f --- /dev/null +++ b/mk/run-test.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +set -u + +red="" +green="" +yellow="" +normal="" + +test=$1 + +dir="$(dirname "${BASH_SOURCE[0]}")" +source "$dir/common-test.sh" + +post_run_msg="ran test $test..." +if [ -t 1 ]; then + red="[31;1m" + green="[32;1m" + yellow="[33;1m" + normal="[m" +fi + +run_test () { + (init_test 2>/dev/null > /dev/null) + log="$(run_test_proper 2>&1)" + status=$? +} + +run_test + +# Hack: Retry the test if it fails with “unexpected EOF reading a line” as these +# appear randomly without anyone knowing why. +# See https://github.com/NixOS/nix/issues/3605 for more info +if [[ $status -ne 0 && $status -ne 99 && \ + "$(uname)" == "Darwin" && \ + "$log" =~ "unexpected EOF reading a line" \ +]]; then + echo "$post_run_msg [${yellow}FAIL$normal] (possibly flaky, so will be retried)" + echo "$log" | sed 's/^/ /' + run_test +fi + +if [ $status -eq 0 ]; then + echo "$post_run_msg [${green}PASS$normal]" +elif [ $status -eq 99 ]; then + echo "$post_run_msg [${yellow}SKIP$normal]" +else + echo "$post_run_msg [${red}FAIL$normal]" + echo "$log" | sed 's/^/ /' + exit "$status" +fi |