From 284ffbf68f00b8d2c3a98ca3fbd45d5d57178df2 Mon Sep 17 00:00:00 2001 From: Maciej Sypien Date: Sat, 21 Sep 2024 12:19:59 +0200 Subject: [PATCH] fix: fail test exec if at least one test fail --- .github/workflows/dev-push-check.yml | 2 +- tests/linux/test_linux_default_startup.sh | 4 ++-- tests/run_all_linux_tests.sh | 14 ++++++++++++++ tests/tmux_helpers.sh | 7 +++++++ 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dev-push-check.yml b/.github/workflows/dev-push-check.yml index f1e0f72..79f60b7 100644 --- a/.github/workflows/dev-push-check.yml +++ b/.github/workflows/dev-push-check.yml @@ -1,5 +1,5 @@ name: dev-push-check -run-name: ${{ github.actor }} pushed new code to {{ github.ref }} 💻 +run-name: ${{ github.actor }} pushed new code 💻 on: [push] #, pull_request] jobs: lint_shellcheck: diff --git a/tests/linux/test_linux_default_startup.sh b/tests/linux/test_linux_default_startup.sh index bfa0454..b3ed588 100755 --- a/tests/linux/test_linux_default_startup.sh +++ b/tests/linux/test_linux_default_startup.sh @@ -29,7 +29,7 @@ EOF echo "Current DIR: $CURRENT_DIR" # link current repo to plugin list - ln -sf ~/.tmux/plugins/tmux-gruvbox/ "$CURRENT_DIR/../" + ln -sf ~/.tmux/plugins/tmux-gruvbox/ "$CURRENT_DIR/../../" helper_install_tpm_plugins @@ -39,7 +39,7 @@ EOF # get status of something from theme _status_left_current=$(tmux show-option -gqv status-left) if [[ "$STATUS_LEFT_DEFAULT" != "$_status_left_current" ]]; then - helper_print_fail "status-left did not match" + helper_print_fail_and_exit "status-left did not match" # fail fast else helper_print_success "status-left match" fi diff --git a/tests/run_all_linux_tests.sh b/tests/run_all_linux_tests.sh index 7dead6b..a801053 100755 --- a/tests/run_all_linux_tests.sh +++ b/tests/run_all_linux_tests.sh @@ -4,10 +4,24 @@ CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" main() { set -e # exit on error + declare -i _countFailures + local _files + _countFailures=0 _files=$(find "$CURRENT_DIR" -name "test_linux_*" -type f) for test in $_files; do bash -c "$test" + + # run all and count failures + retVal=$? + if [ $retVal -eq 1 ]; then + _countFailures+=1 + fi done + + # check if anything failed and fail + if [ "$_countFailures" -gt 0 ]; then + exit 1 + fi } main "$@" diff --git a/tests/tmux_helpers.sh b/tests/tmux_helpers.sh index 38d10dd..9e45b15 100644 --- a/tests/tmux_helpers.sh +++ b/tests/tmux_helpers.sh @@ -1,6 +1,7 @@ #!/bin/bash helper_teardown() { + echo "TEARDOWN" rm -rf ~/.tmux.conf rm -rf ~/.tmux/ tmux kill-server >/dev/null 2>&1 @@ -11,6 +12,7 @@ helper_tearup_linux() { echo "NOT LINUX. Failed & exit." exit 1 fi + echo "TEARUP LINUX" # install software sudo apt update -y @@ -45,3 +47,8 @@ helper_print_success_and_exit() { helper_install_tpm_plugins() { bash -c "${HOME}/.tmux/plugins/tpm/scripts/install_plugins.sh install_plugins" } + +helper_get_project_root_dir() { + _current_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + echo "${_current_dir}/../" +}