Skip to content

Commit

Permalink
make "gsh test" count tests correctly even inside subshells
Browse files Browse the repository at this point in the history
  • Loading branch information
phyver committed Jun 12, 2021
1 parent 24bc912 commit 4acb810
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions lib/gsh.sh
Expand Up @@ -419,16 +419,18 @@ _gsh_assert_check() {
mission_source "$MISSION_DIR/check.sh"
local exit_status=$?

nb_tests=$((nb_tests + 1))
local nb_tests=$(cat "$GSH_VAR/nb_tests")
echo "$(( nb_tests + 1))" > "$GSH_VAR/nb_tests"
local nb_failed_tests=$(cat "$GSH_VAR/nb_failed_tests")

if [ "$expected" = "true" ] && [ "$exit_status" -ne 0 ]
then
nb_failed_tests=$((nb_failed_tests + 1))
echo "$(( nb_failed_tests + 1))" > "$GSH_VAR/nb_failed_tests"
color_echo red "$(eval_gettext 'test $nb_tests failed') (expected check 'true')"
[ -n "$msg" ] && echo "$msg"
elif [ "$expected" = "false" ] && [ "$exit_status" -eq 0 ]
then
nb_failed_tests=$((nb_failed_tests + 1))
echo "$(( nb_failed_tests + 1))" > "$GSH_VAR/nb_failed_tests"
color_echo red "$(eval_gettext 'test $nb_tests failed') (expected check 'false')"
[ -n "$msg" ] && echo "$msg"
fi
Expand All @@ -449,10 +451,13 @@ _gsh_assert() {
fi
local msg=$2

nb_tests=$((nb_tests + 1))
local nb_tests=$(cat "$GSH_VAR/nb_tests")
echo "$(( nb_tests + 1))" > "$GSH_VAR/nb_tests"
echo "INCR"

if ! eval "$condition"
then
nb_failed_tests=$((nb_failed_tests + 1))
echo "$(( nb_failed_tests + 1))" > "$GSH_VAR/nb_failed_tests"
color_echo red "$(eval_gettext 'test $nb_tests failed') (expected condition 'true')"
[ -n "$msg" ] && echo "$msg"
fi
Expand All @@ -477,10 +482,14 @@ _gsh_test() {
return 2
fi

export nb_tests=0
export nb_failed_tests=0
echo 0 > "$GSH_VAR/nb_tests"
echo 0 > "$GSH_VAR/nb_failed_tests"
mission_source "$MISSION_DIR/test.sh"
local ret

local nb_tests=$(cat "$GSH_VAR/nb_tests")
local nb_failed_tests=$(cat "$GSH_VAR/nb_failed_tests")

if [ "$nb_failed_tests" = 0 ]
then
echo
Expand All @@ -493,7 +502,7 @@ _gsh_test() {
echo
ret=255
fi
unset nb_tests nb_failed_tests
rm -f "$GSH_VAR/nb_tests" "$GSH_VAR/nb_failed_tests"
return "$ret"
}

Expand Down

0 comments on commit 4acb810

Please sign in to comment.