diff options
Diffstat (limited to 'test/scripts')
| -rwxr-xr-x | test/scripts/human_to_size_test.sh | 73 | ||||
| -rwxr-xr-x | test/scripts/parseopts_test.sh | 102 | 
2 files changed, 62 insertions, 113 deletions
| diff --git a/test/scripts/human_to_size_test.sh b/test/scripts/human_to_size_test.sh index dfa01f72..6334495f 100755 --- a/test/scripts/human_to_size_test.sh +++ b/test/scripts/human_to_size_test.sh @@ -1,82 +1,57 @@  #!/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 +tap_parse_hts() { +	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' +tap_plan 15 -echo "1..$total" +# tap_parse_hts <input> <expected output> -# parse_hts <input> <expected output> +tap_parse_hts '1MiB' 1048576 -parse_hts '1MiB' 1048576 +tap_parse_hts '10XiB' '' -parse_hts '10XiB' '' +tap_parse_hts '10 MiB' 10485760 -parse_hts '10 MiB' 10485760 +tap_parse_hts '10 XiB' '' -parse_hts '10 XiB' '' +tap_parse_hts '.1 TiB' 109951162778 -parse_hts '.1 TiB' 109951162778 +tap_parse_hts '  -3    KiB   ' -3072 -parse_hts '  -3    KiB   ' -3072 +tap_parse_hts 'foo3KiB' '' -parse_hts 'foo3KiB' '' +tap_parse_hts '3KiBfoo' '' -parse_hts '3KiBfoo' '' +tap_parse_hts '3kib' '' -parse_hts '3kib' '' +tap_parse_hts '+1KiB' 1024 -parse_hts '+1KiB' 1024 +tap_parse_hts '+1.0 KiB' 1024 -parse_hts '+1.0 KiB' 1024 +tap_parse_hts '1MB' 1000000 -parse_hts '1MB' 1000000 +tap_parse_hts '1M' 1048576 -parse_hts '1M' 1048576 +tap_parse_hts ' 1 G ' 1073741824 -parse_hts ' 1 G ' 1073741824 +tap_parse_hts '1Q' '' -parse_hts '1Q' '' +# vim: set noet: diff --git a/test/scripts/parseopts_test.sh b/test/scripts/parseopts_test.sh index 2c055b1b..a8738a4c 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 @@ -23,120 +23,94 @@ OPT_LONG=('allsource' 'asroot' 'ignorearch' 'check' 'clean:' 'cleanall' 'nodeps'            'repackage' 'skipinteg' 'sign' 'source' 'syncdeps' 'version' 'config:'            'noconfirm' 'noprogressbar') -parse() { +tap_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 <expected result> <token count> test-params... -# a failed parse will match only the end of options marker '--' +# usage: tap_parse <expected result> <token count> test-params... +# a failed tap_parse will match only the end of options marker '--'  # no options -parse '--' 1 +tap_parse '--' 1  # short options -parse '-s -r --' 3 -s -r +tap_parse '-s -r --' 3 -s -r  # short options, no spaces -parse '-s -r --' 3 -sr +tap_parse '-s -r --' 3 -sr  # short opt missing an opt arg -parse '--' 1 -s -p +tap_parse '--' 1 -s -p  # short opt with an opt arg -parse '-p PKGBUILD -L --' 4 -p PKGBUILD -L +tap_parse '-p PKGBUILD -L --' 4 -p PKGBUILD -L  # short opt with an opt arg, no space -parse '-p PKGBUILD --' 3 -pPKGBUILD +tap_parse '-p PKGBUILD --' 3 -pPKGBUILD  # valid shortopts as a long opt -parse '--' 1 --sir +tap_parse '--' 1 --sir  # long opt with no optarg -parse '--log --' 2 --log +tap_parse '--log --' 2 --log  # long opt with missing optarg -parse '--' 1 -sr --pkg +tap_parse '--' 1 -sr --pkg  # long opt with optarg -parse '--pkg foo --' 3 --pkg foo +tap_parse '--pkg foo --' 3 --pkg foo  # long opt with optarg with whitespace -parse '--pkg foo bar -- baz' 4 --pkg "foo bar" baz +tap_parse '--pkg foo bar -- baz' 4 --pkg "foo bar" baz  # long opt with optarg with = -parse '--pkg foo=bar -- baz' 4 --pkg foo=bar baz +tap_parse '--pkg foo=bar -- baz' 4 --pkg foo=bar baz  # long opt with explicit optarg -parse '--pkg bar -- foo baz' 5 foo --pkg=bar baz +tap_parse '--pkg bar -- foo baz' 5 foo --pkg=bar baz  # long opt with explicit optarg, with whitespace -parse '--pkg foo bar -- baz' 4 baz --pkg="foo bar" +tap_parse '--pkg foo bar -- baz' 4 baz --pkg="foo bar"  # long opt with explicit optarg that doesn't take optarg -parse '--' 1 --force=always -s +tap_parse '--' 1 --force=always -s  # long opt with explicit optarg with = -parse '--pkg foo=bar --' 3 --pkg=foo=bar +tap_parse '--pkg foo=bar --' 3 --pkg=foo=bar  # explicit end of options with options after -parse '-s -r -- foo bar baz' 6 -s -r -- foo bar baz +tap_parse '-s -r -- foo bar baz' 6 -s -r -- foo bar baz  # non-option parameters mixed in with options -parse '-s -r -- foo baz' 5 -s foo baz -r +tap_parse '-s -r -- foo baz' 5 -s foo baz -r  # optarg with whitespace -parse '-p foo bar -s --' 4 -p'foo bar' -s +tap_parse '-p foo bar -s --' 4 -p'foo bar' -s  # non-option parameter with whitespace -parse '-i -- foo bar' 3 -i 'foo bar' +tap_parse '-i -- foo bar' 3 -i 'foo bar'  # successful stem match (opt has no arg) -parse '--nocolor --' 2 --nocol +tap_parse '--nocolor --' 2 --nocol  # successful stem match (opt has arg) -parse '--config foo --' 3 --conf foo +tap_parse '--config foo --' 3 --conf foo  # ambiguous long opt -parse '--' 1 '--for' +tap_parse '--' 1 '--for'  # exact match on a possible stem (--force & --forcever) -parse '--force --' 2 --force +tap_parse '--force --' 2 --force  # exact match on possible stem (opt has optarg) -parse '--clean foo --' 3 --clean=foo +tap_parse '--clean foo --' 3 --clean=foo + +tap_finish + +# vim: set noet: | 
