diff options
Diffstat (limited to 'test')
| -rwxr-xr-x | test/scripts/human_to_size_test.sh | 73 | ||||
| -rwxr-xr-x | test/scripts/parseopts_test.sh | 102 | ||||
| -rw-r--r-- | test/tap.sh | 163 | ||||
| -rwxr-xr-x | test/util/pacsorttest.sh | 90 | ||||
| -rwxr-xr-x | test/util/vercmptest.sh | 151 | 
5 files changed, 317 insertions, 262 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: diff --git a/test/tap.sh b/test/tap.sh new file mode 100644 index 00000000..38852691 --- /dev/null +++ b/test/tap.sh @@ -0,0 +1,163 @@ +# Copyright 2014 Andrew Gregory <andrew.gregory.8@gmail.com> +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. +# +# Project URL: http://github.com/andrewgregory/tap.sh + +declare -i tap_planned=0 tap_run=0 tap_failed=0 tap_passed=0 +declare tap_todo='' + +tap_plan() { +    tap_planned=$1 +    printf "1..%d\n" "$tap_planned" +} + +tap_done_testing() { +    tap_plan $tap_run +} + +tap_skip_all() { +    printf "1..0 # SKIP" +    _tap_print_reason " " "$@" +    printf "\n" +} + +tap_diag() { +    if [[ -n $tap_todo ]]; then +        tap_note "$@" +    else +        tap_note "$@" 1>&2 +    fi +} + +tap_note() { +    printf "# " +    printf -- "$@" +    printf "\n" +} + +tap_bail() { +    printf "Bail out!" +    _tap_print_reason " " "$@" +    printf "\n" +} + +tap_finish() { +    local tap_todo='' +    if (( tap_planned != tap_run )); then +        tap_note "Looks like you planned %d tests but ran %d." "$tap_planned" "$tap_run" +    elif (( tap_planned == tap_run && tap_failed == 0 )); then +        tap_note "All %d tests successfully run." "$tap_planned" +    else +        tap_note "Failed %d of %d tests." "$tap_failed" "$tap_planned" +    fi +    (( tap_planned == tap_run && tap_failed == 0 )) +} + +tap_skip() { +    local -i count="$1"; shift +    while (( count-- )); do +        (( tap_run++ )) +        printf "ok %d # SKIP" "$tap_run" +        _tap_print_reason " " "$@" +        printf "\n" +    done +} + +_tap_print_reason() { +    local sep="$1"; shift +    if [[ $# -gt 0 ]]; then +        printf "%s" "$sep" +        printf -- "$@" +    fi +} + +tap_ok() { +    local ok="$1"; shift +    (( tap_run++ )) +    if [[ $ok -eq 0 ]]; then +        (( tap_passed++ )) +        printf "ok %d" "$tap_run" +    else +        (( tap_failed++ )) +        printf "not ok %d" "$tap_run" +    fi +    _tap_print_reason " - " "$@" +    if [[ -n $tap_todo ]]; then +        printf " # TODO %s" "$tap_todo" +    fi +    printf "\n" +    if [[ $ok -ne 0 ]]; then +        local line func file +        local -i i=0 + +        read line func file < <(caller $i) +        while [[ -n $func && $func == tap_* ]]; do +            (( i++ )) +            read line func file < <(caller $i) +        done + +        if [[ -n $file ]]; then +            file=${file##*/} +            if [[ -n $tap_todo ]]; then +                tap_diag "  Failed (TODO) test at %s line %d." "${file}" "$line" +            else +                tap_diag "  Failed test at %s line %d." "${file}" "$line" +            fi +        fi +    fi +    return $ok +} + +tap_is_str() { +    local got="$1" expected="$2"; shift 2 +    [[ $got == $expected ]] +    local ret=$? +    if ! tap_ok $ret "$@"; then +        tap_diag "         got: '%s'" "$got" +        tap_diag "    expected: '%s'" "$expected" +    fi +    return $ret +} + +tap_is_int() { +    local got="$1" expected="$2"; shift 2 +    [[ $got -eq $expected ]] +    local ret=$? +    if ! tap_ok $ret "$@"; then +        tap_diag "         got: '%s'" "$got" +        tap_diag "    expected: '%s'" "$expected" +    fi +    return $ret +} + +tap_diff() { +    local got="$1" expected="$2"; shift 2 +    local output ret +    output="$(diff -u --label got --label expected "$got" "$expected" 2>&1)" +    ret=$? +    if ! tap_ok $ret "$@"; then +        while IFS= read line; do +            tap_diag "$line" +        done <<<"$output" +    fi +    return $ret +} + +# vim: ft=sh diff --git a/test/util/pacsorttest.sh b/test/util/pacsorttest.sh index 49d6d8ed..f42c8fd5 100755 --- a/test/util/pacsorttest.sh +++ b/test/util/pacsorttest.sh @@ -18,85 +18,69 @@  #   You should have received a copy of the GNU General Public License  #   along with this program.  If not, see <http://www.gnu.org/licenses/>. +source "$(dirname "$0")"/../tap.sh || exit 1 +  # default binary if one was not specified as $1  bin=${1:-${PMTEST_UTIL_DIR}pacsort} -# holds counts of tests -total=26 -run=0 -failure=0  if ! type -p "$bin" &>/dev/null; then -	echo "Bail out! pacsort binary ($bin) could not be located" +	tap_bail "pacsort binary ($bin) could not be located"  	exit 1  fi  # args:  # runtest input expected test_description optional_opts -runtest() { +tap_runtest() {  	# run the test -	((run++)) -	out=$(diff -u <(printf "$1" | $bin $4) <(printf "$2")) -	if [[ $? -eq 0 ]]; then -		echo "ok $run - $3" -	else -		((failure++)) -		echo "not ok $run - $3" -		while read line; do -			echo "    # $line" -		done <<<"$out" -	fi +	tap_diff <(printf "$1" | $bin $4) <(printf "$2") "$3"  } -echo "# Running pacsort tests..." - -echo "1..$total" - -# BEGIN TESTS +tap_plan 26  in="1\n2\n3\n4\n" -runtest $in $in "already ordered" +tap_runtest $in $in "already ordered"  in="4\n2\n3\n1\n"  ex="1\n2\n3\n4\n" -runtest $in $ex "easy reordering" +tap_runtest $in $ex "easy reordering"  in="1\n2\n3\n4"  ex="1\n2\n3\n4\n" -runtest $in $ex "add trailing newline" +tap_runtest $in $ex "add trailing newline"  in="1\n2\n4\n3"  ex="1\n2\n3\n4\n" -runtest $in $ex "add trailing newline" +tap_runtest $in $ex "add trailing newline"  in="1.0-1\n1.0\n1.0-2\n1.0\n" -runtest $in $in "stable sort" +tap_runtest $in $in "stable sort"  in="firefox-18.0-2-x86_64.pkg.tar.xz\nfirefox-18.0.1-1-x86_64.pkg.tar.xz\n" -runtest $in $in "filename sort" "--files" +tap_runtest $in $in "filename sort" "--files"  in="firefox-18.0-2\nfirefox-18.0.1-1-x86_64.pkg.tar.xz\n" -runtest $in $in "filename sort with invalid filename" "--files" +tap_runtest $in $in "filename sort with invalid filename" "--files"  in="firefox-18.0-2-x86_64.pkg.tar.xz\n/path2/firefox-18.0.1-1-x86_64.pkg.tar.xz\n" -runtest $in $in "filename sort maybe with leading paths" "--files" +tap_runtest $in $in "filename sort maybe with leading paths" "--files"  in="/path1/firefox-18.0-2-x86_64.pkg.tar.xz\n/path2/firefox-18.0.1-1-x86_64.pkg.tar.xz\n" -runtest $in $in "filename sort with different leading paths" "--files" +tap_runtest $in $in "filename sort with different leading paths" "--files"  in="/path2/firefox-18.0-2-x86_64.pkg.tar.xz\n/path1/path2/firefox-18.0.1-1-x86_64.pkg.tar.xz\n" -runtest $in $in "filename sort with uneven leading path components" "--files" +tap_runtest $in $in "filename sort with uneven leading path components" "--files"  in="firefox-18.0-2-i686.pkg.tar.xz\nfirefox-18.0.1-1-x86_64.pkg.tar.gz\n" -runtest $in $in "filename sort with different extensions" "--files" +tap_runtest $in $in "filename sort with different extensions" "--files"  in="/packages/dialog-1.2_20131001-1-x86_64.pkg.tar.xz\n/packages/dialog-1:1.2_20130928-1-x86_64.pkg.tar.xz\n" -runtest $in $in "filename sort with epoch" "--files" +tap_runtest $in $in "filename sort with epoch" "--files"  in="/packages/dia-log-1:1.2_20130928-1-x86_64.pkg.tar.xz\n/packages/dialog-1.2_20131001-1-x86_64.pkg.tar.xz\n" -runtest $in $in "filename sort with differing package names and epoch" "--files" +tap_runtest $in $in "filename sort with differing package names and epoch" "--files"  in="/packages/systemd-217-1-x86_64.pkg.tar.xz\n/packages/systemd-sysvcompat-217-1-x86_64.pkg.tar.xz\n" -runtest $in $in "filename sort with package names as shared substring" "--files" +tap_runtest $in $in "filename sort with package names as shared substring" "--files"  # generate some long input/expected for the next few tests  declare normal reverse names_normal names_reverse @@ -109,27 +93,21 @@ for ((i=1; i<600; i++)); do  	separator_reverse="${separator_reverse}colA|bogus${i}|$((600 - ${i}))\n"  done -runtest $normal $normal "really long input" -runtest $reverse $normal "really long input" -runtest $reverse $reverse "really long input, reversed" "-r" -runtest $normal $reverse "really long input, reversed" "-r" +tap_runtest $normal $normal "really long input" +tap_runtest $reverse $normal "really long input" +tap_runtest $reverse $reverse "really long input, reversed" "-r" +tap_runtest $normal $reverse "really long input, reversed" "-r" -runtest "$fields" "$fields" "really long input, sort key" "-k3" -runtest "$fields_reverse" "$fields" "really long input, sort key" "-k3" -runtest "$fields_reverse" "$fields_reverse" "really long input, sort key, reversed" "-k 3 -r" -runtest "$fields" "$fields_reverse" "really long input, sort key, reversed" "-k 3 -r" +tap_runtest "$fields" "$fields" "really long input, sort key" "-k3" +tap_runtest "$fields_reverse" "$fields" "really long input, sort key" "-k3" +tap_runtest "$fields_reverse" "$fields_reverse" "really long input, sort key, reversed" "-k 3 -r" +tap_runtest "$fields" "$fields_reverse" "really long input, sort key, reversed" "-k 3 -r" -runtest "$separator" "$separator" "really long input, sort key, separator" "-k3 -t|" -runtest "$separator_reverse" "$separator" "really long input, sort key, separator" "-k3 -t|" -runtest "$separator_reverse" "$separator_reverse" "really long input, sort key, separator, reversed" "-k 3 -t| -r" -runtest "$separator" "$separator_reverse" "really long input, sort key, separator, reversed" "-k 3 -t| -r" +tap_runtest "$separator" "$separator" "really long input, sort key, separator" "-k3 -t|" +tap_runtest "$separator_reverse" "$separator" "really long input, sort key, separator" "-k3 -t|" +tap_runtest "$separator_reverse" "$separator_reverse" "really long input, sort key, separator, reversed" "-k 3 -t| -r" +tap_runtest "$separator" "$separator_reverse" "really long input, sort key, separator, reversed" "-k 3 -t| -r" -#END TESTS - -if [[ $failure -eq 0 ]]; then -	echo "# All $run tests successful" -	exit 0 -fi +tap_finish -echo "# $failure of $run tests failed" -exit 1 +# vim: set noet: diff --git a/test/util/vercmptest.sh b/test/util/vercmptest.sh index 9032cbf9..04edb155 100755 --- a/test/util/vercmptest.sh +++ b/test/util/vercmptest.sh @@ -18,136 +18,101 @@  #   You should have received a copy of the GNU General Public License  #   along with this program.  If not, see <http://www.gnu.org/licenses/>. +source "$(dirname "$0")"/../tap.sh || exit 1 +  # default binary if one was not specified as $1  bin=${1:-${PMTEST_UTIL_DIR}vercmp} -# holds counts of tests -total=92 -run=0 -failure=0  # use first arg as our binary if specified  if ! type -p "$bin" &>/dev/null; then -	echo "Bail out! vercmp binary ($bin) could not be located" +	tap_bail "vercmp binary ($bin) could not be located"  	exit 1  fi  # args: -# pass ver1 ver2 ret expected -pass() { -	echo "ok $run - ver1: $1 ver2: $2 ret: $3" -} - -# args: -# fail ver1 ver2 ret expected -fail() { -	echo "not ok $run - test: ver1: $1 ver2: $2 ret: $3 expected: $4" -	((failure++)) -} - -# args:  # runtest ver1 ver2 expected -runtest() { -	# run the test -	((run++)) -	ret=$($bin $1 $2) -	func='pass' -	[[ -n $ret && $ret -eq $3 ]] || func='fail' -	$func $1 $2 $ret $3 +tap_runtest() { +	local ver1=$1 ver2=$2 exp=$3 +	tap_is_str "$($bin "$ver1" "$ver2")" "$exp" "$ver1 $ver2"  	# and run its mirror case just to be sure -	((run++)) -	reverse=0 -	[[ $3 -eq 1 ]] && reverse=-1 -	[[ $3 -eq -1 ]] && reverse=1 -	ret=$($bin $2 $1) -	func='pass' -	[[ -n $ret && $ret -eq $reverse ]] || func='fail' -	$func $2 $1 $ret $reverse +	(( exp *= -1 )) +	tap_is_str "$($bin "$ver2" "$ver1")" "$exp" "$ver2 $ver1"  } -echo "# Running vercmp tests..." - -echo "1..$total" - -# BEGIN TESTS +tap_plan 92  # all similar length, no pkgrel -runtest 1.5.0 1.5.0  0 -runtest 1.5.1 1.5.0  1 +tap_runtest 1.5.0 1.5.0  0 +tap_runtest 1.5.1 1.5.0  1  # mixed length -runtest 1.5.1 1.5    1 +tap_runtest 1.5.1 1.5    1  # with pkgrel, simple -runtest 1.5.0-1 1.5.0-1  0 -runtest 1.5.0-1 1.5.0-2 -1 -runtest 1.5.0-1 1.5.1-1 -1 -runtest 1.5.0-2 1.5.1-1 -1 +tap_runtest 1.5.0-1 1.5.0-1  0 +tap_runtest 1.5.0-1 1.5.0-2 -1 +tap_runtest 1.5.0-1 1.5.1-1 -1 +tap_runtest 1.5.0-2 1.5.1-1 -1  # with pkgrel, mixed lengths -runtest 1.5-1   1.5.1-1 -1 -runtest 1.5-2   1.5.1-1 -1 -runtest 1.5-2   1.5.1-2 -1 +tap_runtest 1.5-1   1.5.1-1 -1 +tap_runtest 1.5-2   1.5.1-1 -1 +tap_runtest 1.5-2   1.5.1-2 -1  # mixed pkgrel inclusion -runtest 1.5   1.5-1 0 -runtest 1.5-1 1.5   0 -runtest 1.1-1 1.1   0 -runtest 1.0-1 1.1  -1 -runtest 1.1-1 1.0   1 +tap_runtest 1.5   1.5-1 0 +tap_runtest 1.5-1 1.5   0 +tap_runtest 1.1-1 1.1   0 +tap_runtest 1.0-1 1.1  -1 +tap_runtest 1.1-1 1.0   1  # alphanumeric versions -runtest 1.5b-1  1.5-1  -1 -runtest 1.5b    1.5    -1 -runtest 1.5b-1  1.5    -1 -runtest 1.5b    1.5.1  -1 +tap_runtest 1.5b-1  1.5-1  -1 +tap_runtest 1.5b    1.5    -1 +tap_runtest 1.5b-1  1.5    -1 +tap_runtest 1.5b    1.5.1  -1  # from the manpage -runtest 1.0a     1.0alpha -1 -runtest 1.0alpha 1.0b     -1 -runtest 1.0b     1.0beta  -1 -runtest 1.0beta  1.0rc    -1 -runtest 1.0rc    1.0      -1 +tap_runtest 1.0a     1.0alpha -1 +tap_runtest 1.0alpha 1.0b     -1 +tap_runtest 1.0b     1.0beta  -1 +tap_runtest 1.0beta  1.0rc    -1 +tap_runtest 1.0rc    1.0      -1  # going crazy? alpha-dotted versions -runtest 1.5.a    1.5     1 -runtest 1.5.b    1.5.a   1 -runtest 1.5.1    1.5.b   1 +tap_runtest 1.5.a    1.5     1 +tap_runtest 1.5.b    1.5.a   1 +tap_runtest 1.5.1    1.5.b   1  # alpha dots and dashes -runtest 1.5.b-1  1.5.b   0 -runtest 1.5-1    1.5.b  -1 +tap_runtest 1.5.b-1  1.5.b   0 +tap_runtest 1.5-1    1.5.b  -1  # same/similar content, differing separators -runtest 2.0    2_0     0 -runtest 2.0_a  2_0.a   0 -runtest 2.0a   2.0.a  -1 -runtest 2___a  2_a     1 +tap_runtest 2.0    2_0     0 +tap_runtest 2.0_a  2_0.a   0 +tap_runtest 2.0a   2.0.a  -1 +tap_runtest 2___a  2_a     1  # epoch included version comparisons -runtest 0:1.0    0:1.0   0 -runtest 0:1.0    0:1.1  -1 -runtest 1:1.0    0:1.0   1 -runtest 1:1.0    0:1.1   1 -runtest 1:1.0    2:1.1  -1 +tap_runtest 0:1.0    0:1.0   0 +tap_runtest 0:1.0    0:1.1  -1 +tap_runtest 1:1.0    0:1.0   1 +tap_runtest 1:1.0    0:1.1   1 +tap_runtest 1:1.0    2:1.1  -1  # epoch + sometimes present pkgrel -runtest 1:1.0    0:1.0-1  1 -runtest 1:1.0-1  0:1.1-1  1 +tap_runtest 1:1.0    0:1.0-1  1 +tap_runtest 1:1.0-1  0:1.1-1  1  # epoch included on one version -runtest 0:1.0    1.0   0 -runtest 0:1.0    1.1  -1 -runtest 0:1.1    1.0   1 -runtest 1:1.0    1.0   1 -runtest 1:1.0    1.1   1 -runtest 1:1.1    1.1   1 - -#END TESTS - -if [[ $failure -eq 0 ]]; then -	echo "# All $run tests successful" -	exit 0 -fi +tap_runtest 0:1.0    1.0   0 +tap_runtest 0:1.0    1.1  -1 +tap_runtest 0:1.1    1.0   1 +tap_runtest 1:1.0    1.0   1 +tap_runtest 1:1.0    1.1   1 +tap_runtest 1:1.1    1.1   1 + +tap_finish -echo "# $failure of $run tests failed" -exit 1 +# vim: set noet: | 
