Browse Source

test_ratio_passed

main
pvincent 2 days ago
parent
commit
259fad2925
  1. 36
      test/miaou-bash.test.bash

36
test/miaou-bash.test.bash

@ -1,9 +1,19 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# CONSTANTS
TEST_COUNT=0
SUCCESS_COUNT=0
# functions # functions
function assert { function assert {
./test/stub/scenario.bash "$1" >/dev/null || (echo "error in: $1" && exit 1)
((TEST_COUNT++))
if ./test/stub/scenario.bash "$1" >/dev/null; then
((SUCCESS_COUNT++))
else
(echo "error in: $1" && exit 1)
fi
} }
function strip_ansi { function strip_ansi {
@ -11,6 +21,7 @@ function strip_ansi {
} }
function fail_type { function fail_type {
((TEST_COUNT++))
local i line first error_start_above regex local i line first error_start_above regex
mapfile -t stderr <<<"$(./test/stub/scenario.bash "$1" 2>&1 >/dev/null)" mapfile -t stderr <<<"$(./test/stub/scenario.bash "$1" 2>&1 >/dev/null)"
# echo "stderr countains ${#stderr[@]}" # echo "stderr countains ${#stderr[@]}"
@ -21,16 +32,31 @@ function fail_type {
first="${line:1:1}" first="${line:1:1}"
[[ $first ==]] && error_start_above=true && continue [[ $first ==]] && error_start_above=true && continue
if [[ "$error_start_above" == true ]]; then if [[ "$error_start_above" == true ]]; then
[[ $line =~ $regex ]] && [[ ${BASH_REMATCH[1]} == "$2" ]] && return 0
echo "error in: $1" && return 1
if [[ $line =~ $regex ]] && [[ ${BASH_REMATCH[1]} == "$2" ]]; then
((SUCCESS_COUNT++))
return 0
else
break
fi
fi fi
done done
echo "error in: $1" && return 1
} }
# main # main
set -euo pipefail
set -uo pipefail
assert success assert success
fail_type subshell_term SUBSHELL_TERM fail_type subshell_term SUBSHELL_TERM
fail_type unbound_variable UNBOUND_VARIABLE fail_type unbound_variable UNBOUND_VARIABLE
fail_type false FALSE fail_type false FALSE
echo 100% passed!
fail_type return RETURN
failed=$((TEST_COUNT - SUCCESS_COUNT))
if [[ $failed -gt 0 ]]; then
ratio=$((100 * SUCCESS_COUNT / TEST_COUNT))
echo "${ratio}% passed, $failed test have failed!"
exit 1
else
echo 100% passed!
fi
Loading…
Cancel
Save