summaryrefslogtreecommitdiffstats
path: root/pactest/vercmptest.sh
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2008-07-23 06:41:50 +0200
committerDan McGee <dan@archlinux.org>2008-07-25 05:16:28 +0200
commit5e4882dfe8b62a8cb7c206986d1010195a63d74e (patch)
tree9a4ed779c610670bbd272b88087555fb3c432379 /pactest/vercmptest.sh
parent075b244be23aa788ae21e8c5d50cb99a1296c37f (diff)
downloadpacman-5e4882dfe8b62a8cb7c206986d1010195a63d74e.tar.gz
pacman-5e4882dfe8b62a8cb7c206986d1010195a63d74e.tar.xz
Fix vercmp and add additional tests
This vercmp issue has been a sticking point but this should resolve many of the issues that have come up. Only a few minor code changes were necessary to get the behavior we desired, and this version appears to beat any other vercmp rendition on a few more cases added in this commit. This commit passes all 58 vercmp tests currently out there. Other 'fixes' still fail on a few tests, namely these ones: test: ver1: 1.5.a ver2: 1.5 ret: -1 expected: 1 ==> FAILURE test: ver1: 1.5 ver2: 1.5.a ret: 1 expected: -1 ==> FAILURE test: ver1: 1.5-1 ver2: 1.5.b ret: 1 expected: -1 ==> FAILURE test: ver1: 1.5.b ver2: 1.5-1 ret: -1 expected: 1 ==> FAILURE 4 of 58 tests failed Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'pactest/vercmptest.sh')
-rwxr-xr-xpactest/vercmptest.sh36
1 files changed, 33 insertions, 3 deletions
diff --git a/pactest/vercmptest.sh b/pactest/vercmptest.sh
index f8d457ee..e36bf4be 100755
--- a/pactest/vercmptest.sh
+++ b/pactest/vercmptest.sh
@@ -26,8 +26,9 @@ failure=0
# args:
# pass ver1 ver2 ret expected
pass() {
- echo "test: ver1: $1 ver2: $2 ret: $3 expected: $4"
- echo " --> pass"
+ #echo "test: ver1: $1 ver2: $2 ret: $3 expected: $4"
+ #echo " --> pass"
+ echo -n
}
# args:
@@ -54,13 +55,20 @@ runtest() {
ret=$($bin $2 $1)
func='pass'
[ $ret -eq $reverse ] || func='fail'
- $func $1 $2 $ret $reverse
+ $func $2 $1 $ret $reverse
total=$(expr $total + 1)
}
# use first arg as our binary if specified
[ -n "$1" ] && bin="$1"
+if [ ! -x "$bin" ]; then
+ echo "vercmp binary ($bin) could not be located"
+ exit 1
+fi
+
+echo "Beginning vercmp tests"
+
# BEGIN TESTS
# all similar length, no pkgrel
@@ -88,6 +96,28 @@ runtest 1.1-1 1.1 0
runtest 1.0-1 1.1 -1
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
+
+# 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
+
+# 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
+
+# alpha dots and dashes
+runtest 1.5.b-1 1.5.b 0
+runtest 1.5-1 1.5.b -1
+
#END TESTS
echo