diff options
Diffstat (limited to 'testr.sh')
-rwxr-xr-x | testr.sh | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/testr.sh b/testr.sh new file mode 100755 index 0000000..6ddbdc0 --- /dev/null +++ b/testr.sh @@ -0,0 +1,53 @@ +#!/bin/sh + +# testr.sh +# by Jakob Odersky + +# Usage: testr.sh TESTDIR +# Runs all files in TESTDIR that match *Test +# A test is considered successful if it returns 0 upon execution. + +red='\033[0;31m' +green='\033[0;32m' +blue='\033[0;34m' +nc='\033[0m' # No Color + +#Test directory specified by first parameter +TESTDIR=$1 +cd $TESTDIR + +echo "[info] Analyzing directory." +TESTCOUNT=`ls -A ./*Test | wc -l` +echo "[info] Found $TESTCOUNT tests in $TESTDIR." +echo "[info] Running tests." +echo "" + +FAILED=0 + +for filename in ./*Test +do + + echo "[info] ${blue}== $filename ==${nc}" + $filename + OUT=$? + echo "[info] ${blue}== $filename ==${nc}" + + if [ $OUT -eq 0 ];then + echo "[info] $filename PASS" + else + echo "[${red}error${nc}] $filename FAIL" + FAILED=$(($FAILED + 1)) + fi + echo "" +done; + +echo "[info] Total: $TESTCOUNT, Failed: $FAILED, Passed: $(($TESTCOUNT - $FAILED))" + +if [ $FAILED -eq 0 ];then + echo "[${green}success${nc}] All tests PASSED." +else + echo "[${red}error${nc}] Some tests FAILED." +fi +tput sgr0 + + |