From 29c0d8233b32ab3ad1dcd7c3bf1161449a386dea Mon Sep 17 00:00:00 2001 From: Andrew Gregory Date: Tue, 23 Dec 2014 16:09:58 -0500 Subject: use tap.sh for bash tests tap.sh is a reusable TAP library that handles test counting and provides useful diagnostic messages on test failures. Signed-off-by: Andrew Gregory Signed-off-by: Allan McRae --- test/scripts/human_to_size_test.sh | 39 ++++++--------------------------- test/scripts/parseopts_test.sh | 44 +++++++------------------------------- 2 files changed, 14 insertions(+), 69 deletions(-) (limited to 'test/scripts') diff --git a/test/scripts/human_to_size_test.sh b/test/scripts/human_to_size_test.sh index 2dacfd14..e412e836 100755 --- a/test/scripts/human_to_size_test.sh +++ b/test/scripts/human_to_size_test.sh @@ -1,53 +1,26 @@ #!/bin/bash -declare -i testcount=0 fail=0 pass=0 total=15 +source "$(dirname "$0")"/../tap.sh || exit 1 # source the library function lib=${1:-${PMTEST_SCRIPTLIB_DIR}human_to_size.sh} if [[ -z $lib || ! -f $lib ]]; then - printf "Bail out! human_to_size library (%s) could not be located\n" "${lib}" + tap_bail "human_to_size library (%s) could not be located" "${lib}" exit 1 fi . "$lib" if ! type -t human_to_size &>/dev/null; then - printf "Bail out! human_to_size function not found\n" + tap_bail "human_to_size function not found" exit 1 fi parse_hts() { - local input=$1 expected=$2 result - - (( ++testcount )) - - result=$(human_to_size "$1") - if [[ $result = "$expected" ]]; then - (( ++pass )) - printf "ok %d - %s\n" "$testcount" "$input" - else - (( ++fail )) - printf "not ok %d - %s\n" "$testcount" "$input" - printf '# [TEST %3s]: FAIL\n' "$testcount" - printf '# input: %s\n' "$input" - printf '# output: %s\n' "$result" - printf '# expected: %s\n' "$expected" - fi + local input=$1 expected=$2 + tap_is_str "$(human_to_size "$input")" "$expected" "$input" } -summarize() { - if (( !fail )); then - printf '# All %s tests successful\n\n' "$testcount" - exit 0 - else - printf '# %s of %s tests failed\n\n' "$fail" "$testcount" - exit 1 - fi -} -trap 'summarize' EXIT - -printf '# Beginning human_to_size tests\n' - -echo "1..$total" +tap_plan 15 # parse_hts diff --git a/test/scripts/parseopts_test.sh b/test/scripts/parseopts_test.sh index 97679c4f..03e9d0ac 100755 --- a/test/scripts/parseopts_test.sh +++ b/test/scripts/parseopts_test.sh @@ -1,17 +1,17 @@ #!/bin/bash -declare -i testcount=0 pass=0 fail=0 total=25 +source "$(dirname "$0")"/../tap.sh || exit 1 # source the library function lib=${1:-${PMTEST_SCRIPTLIB_DIR}parseopts.sh} if [[ -z $lib || ! -f $lib ]]; then - printf "Bail out! parseopts library ($lib) could not be located\n" + tap_bail "parseopts library ($lib) could not be located" exit 1 fi . "$lib" if ! type -t parseopts &>/dev/null; then - printf "Bail out! parseopts function not found\n" + tap_bail "parseopts function not found" exit 1 fi @@ -25,43 +25,13 @@ OPT_LONG=('allsource' 'asroot' 'ignorearch' 'check' 'clean:' 'cleanall' 'nodeps' parse() { local result=$1 tokencount=$2; shift 2 - - (( ++testcount )) parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@" 2>/dev/null - test_result "$result" "$tokencount" "$*" "${OPTRET[@]}" + tap_is_int "${#OPTRET[@]}" "$tokencount" "$* - tokencount" + tap_is_str "$result" "${OPTRET[*]}" "$* - result" unset OPTRET } -test_result() { - local result=$1 tokencount=$2 input=$3; shift 3 - - if [[ $result = "$*" ]] && (( tokencount == $# )); then - (( ++pass )) - printf 'ok %d - %s\n' "$testcount" "$input" - else - printf 'not ok %d - %s\n' "$testcount" "$input" - printf '# [TEST %3s]: FAIL\n' "$testcount" - printf '# input: %s\n' "$input" - printf '# output: %s (%s tokens)\n' "$*" "$#" - printf '# expected: %s (%s tokens)\n' "$result" "$tokencount" - (( ++fail )) - fi -} - -summarize() { - if (( !fail )); then - printf '# All %s tests successful\n\n' "$testcount" - exit 0 - else - printf '# %s of %s tests failed\n\n' "$fail" "$testcount" - exit 1 - fi -} -trap 'summarize' EXIT - -printf '# Beginning parseopts tests\n' - -echo "1..$total" +tap_plan 50 # usage: parse test-params... # a failed parse will match only the end of options marker '--' @@ -141,4 +111,6 @@ parse '--force --' 2 --force # exact match on possible stem (opt has optarg) parse '--clean foo --' 3 --clean=foo +tap_finish + # vim: set noet: -- cgit v1.2.3-70-g09d2