From 731715ff3671359862a7939ae96a5488794cd0e0 Mon Sep 17 00:00:00 2001 From: Rangi42 Date: Sun, 18 Aug 2024 21:13:48 -0400 Subject: [PATCH] Refactor test.sh scripts for consistency --- test/asm/test.sh | 7 ++++--- test/fix/test.sh | 11 ++++++----- test/gfx/test.sh | 45 +++++++++++++++++++++++++-------------------- test/link/test.sh | 8 +++++--- 4 files changed, 40 insertions(+), 31 deletions(-) diff --git a/test/asm/test.sh b/test/asm/test.sh index d4b115ac..c12246d4 100755 --- a/test/asm/test.sh +++ b/test/asm/test.sh @@ -10,14 +10,15 @@ gb="$(mktemp)" input="$(mktemp)" output="$(mktemp)" errput="$(mktemp)" -tests=0 -failed=0 -rc=0 # Immediate expansion is the desired behavior. # shellcheck disable=SC2064 trap "rm -f ${o@Q} ${gb@Q} ${input@Q} ${output@Q} ${errput@Q}" EXIT +tests=0 +failed=0 +rc=0 + bold="$(tput bold)" resbold="$(tput sgr0)" red="$(tput setaf 1)" diff --git a/test/fix/test.sh b/test/fix/test.sh index 37993b8b..5aa06cbe 100755 --- a/test/fix/test.sh +++ b/test/fix/test.sh @@ -3,17 +3,19 @@ export LC_ALL=C tmpdir="$(mktemp -d)" -src="$PWD" -tests=0 -failed=0 -rc=0 cp ../../{rgbfix,contrib/gbdiff.bash} "$tmpdir" +src="$PWD" cd "$tmpdir" || exit + # Immediate expansion is the desired behavior. # shellcheck disable=SC2064 trap "cd; rm -rf ${tmpdir@Q}" EXIT +tests=0 +failed=0 +rc=0 + bold="$(tput bold)" resbold="$(tput sgr0)" red="$(tput setaf 1)" @@ -111,7 +113,6 @@ rc=$((rc || $? != 1)) tryDiff "$src/noexist.err" out.err noexist.err rc=$((rc || $?)) - if [[ "$failed" -eq 0 ]]; then echo "${bold}${green}All ${tests} tests passed!${rescolors}${resbold}" else diff --git a/test/gfx/test.sh b/test/gfx/test.sh index c571fa40..7bd4a47f 100755 --- a/test/gfx/test.sh +++ b/test/gfx/test.sh @@ -3,9 +3,16 @@ [[ -e ./rgbgfx_test ]] || make -C ../.. test/gfx/rgbgfx_test Q= ${CXX:+"CXX=$CXX"} || exit [[ -e ./randtilegen ]] || make -C ../.. test/gfx/randtilegen Q= ${CXX:+"CXX=$CXX"} || exit -trap 'rm -f "$errtmp"' EXIT errtmp="$(mktemp)" +# Immediate expansion is the desired behavior. +# shellcheck disable=SC2064 +trap "rm -f ${errtmp@Q}" EXIT + +tests=0 +failed=0 +rc=0 + bold="$(tput bold)" resbold="$(tput sgr0)" red="$(tput setaf 1)" @@ -14,19 +21,17 @@ rescolors="$(tput op)" RGBGFX=../../rgbgfx -tests=0 -failed=0 -rc=0 - -new_test() { +newTest () { cmdline="$*" echo "${bold}${green}Testing: ${cmdline}${rescolors}${resbold}" >&2 } -test() { + +runTest () { (( tests++ )) eval "$cmdline" } -fail() { + +failTest () { rc=1 (( failed++ )) echo "${bold}${red}Test ${cmdline} failed!${1:+ (RC=$1)}${rescolors}${resbold}" @@ -39,8 +44,8 @@ while [[ "$ofs" -eq 0 ]]; do (( ofs = RANDOM % 256 )); done while [[ "$size" -eq 0 ]]; do (( size = RANDOM % 256 )); done for f in *.bin; do for flags in ""{," -b $ofs"}{," -N $size,256"}; do - new_test ./rgbgfx_test "$f" $flags - test || fail $? + newTest ./rgbgfx_test "$f" $flags + runTest || failTest $? done done @@ -48,8 +53,8 @@ done reverse_cmd="$RGBGFX -c#none,#fff,#000 -o none_round_trip.2bpp -r 1 out.png" reconvert_cmd="$RGBGFX -c#none,#fff,#000 -o result.2bpp out.png" compare_cmd="cmp none_round_trip.2bpp result.2bpp" -new_test "$reverse_cmd && $reconvert_cmd && $compare_cmd" -test || fail $? +newTest "$reverse_cmd && $reconvert_cmd && $compare_cmd" +runTest || failTest $? # Remove temporaries (also ignored by Git) created by the above tests rm -f out*.png result.png result.2bpp @@ -57,20 +62,20 @@ rm -f out*.png result.png result.2bpp for f in *.png; do flags="$([[ -e "${f%.png}.flags" ]] && echo "@${f%.png}.flags")" - new_test "$RGBGFX" $flags "$f" + newTest "$RGBGFX" $flags "$f" if [[ -e "${f%.png}.err" ]]; then - test 2>"$errtmp" - diff -u --strip-trailing-cr "${f%.png}.err" "$errtmp" || fail + runTest 2>"$errtmp" + diff -u --strip-trailing-cr "${f%.png}.err" "$errtmp" || failTest else - test || fail $? + runTest || failTest $? fi - new_test "$RGBGFX" $flags - "<$f" + newTest "$RGBGFX" $flags - "<$f" if [[ -e "${f%.png}.err" ]]; then - test 2>"$errtmp" - diff -u --strip-trailing-cr <(sed "s/$f//g" "${f%.png}.err") "$errtmp" || fail + runTest 2>"$errtmp" + diff -u --strip-trailing-cr <(sed "s/$f//g" "${f%.png}.err") "$errtmp" || failTest else - test || fail $? + runTest || failTest $? fi done diff --git a/test/link/test.sh b/test/link/test.sh index 6bf716aa..fa9d8f1d 100755 --- a/test/link/test.sh +++ b/test/link/test.sh @@ -10,14 +10,15 @@ gbtemp="$(mktemp)" gbtemp2="$(mktemp)" outtemp="$(mktemp)" outtemp2="$(mktemp)" -tests=0 -failed=0 -rc=0 # Immediate expansion is the desired behavior. # shellcheck disable=SC2064 trap "rm -f ${otemp@Q} ${gbtemp@Q} ${gbtemp2@Q} ${outtemp@Q} ${outtemp2@Q}" EXIT +tests=0 +failed=0 +rc=0 + bold="$(tput bold)" resbold="$(tput sgr0)" red="$(tput setaf 1)" @@ -53,6 +54,7 @@ tryCmp () { fi (( our_rc = our_rc || $? )) } + tryCmpRom () { # `printf` lets us keep only the first returned word from `wc`. rom_size=$(printf %s $(wc -c <"$1"))