diff options
Diffstat (limited to 'src/nvim/testdir/suite.sh')
-rw-r--r-- | src/nvim/testdir/suite.sh | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/nvim/testdir/suite.sh b/src/nvim/testdir/suite.sh new file mode 100644 index 0000000000..3059773ca1 --- /dev/null +++ b/src/nvim/testdir/suite.sh @@ -0,0 +1,36 @@ +# Test success marker. If END_MARKER file exists, we know that all tests +# finished. If FAIL_SUMMARY_FILE exists we know that some tests failed, this +# file will contain information about failed tests. Build is considered +# successful if tests ended without any of them failing. +END_MARKER="$BUILD_DIR/.tests_finished" +FAIL_SUMMARY_FILE="$BUILD_DIR/.test_errors" + +fail() { + local test_name="$1" + local message="$2" + + : "${message:=Test $test_name failed}" + + local full_msg="$test_name :: $message" + echo "${full_msg}" >> "${FAIL_SUMMARY_FILE}" + echo "Failed: $full_msg" + export FAILED=1 +} + +ended_successfully() { + if test -f "${FAIL_SUMMARY_FILE}" ; then + echo 'Test failed, complete summary:' + cat "${FAIL_SUMMARY_FILE}" + + if [[ "$GITHUB_ACTIONS" == "true" ]]; then + rm -f "$FAIL_SUMMARY_FILE" + fi + + return 1 + fi + if ! test -f "${END_MARKER}" ; then + echo 'ended_successfully called before end marker was touched' + return 1 + fi + return 0 +} |