summaryrefslogtreecommitdiff
path: root/test/libapt
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2011-08-17 18:14:27 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2011-08-17 18:14:27 +0200
commit178dd062eeaa1d7e56770455e005dc27aa71f026 (patch)
tree0dd7241e4fa9a06090d5cd8da4c7de87065ba08b /test/libapt
parentec78b277382e27509a6dec91af4a7a524a422e0f (diff)
parentfe268128119bc73403003a29b66c927b9c36690d (diff)
merged lp:~donkult/apt/sid
Diffstat (limited to 'test/libapt')
-rw-r--r--test/libapt/compareversion_test.cc7
-rw-r--r--test/libapt/makefile4
-rwxr-xr-xtest/libapt/run-tests25
-rw-r--r--test/libapt/versions.lst106
4 files changed, 134 insertions, 8 deletions
diff --git a/test/libapt/compareversion_test.cc b/test/libapt/compareversion_test.cc
index b6213e84c..fdb1d5674 100644
--- a/test/libapt/compareversion_test.cc
+++ b/test/libapt/compareversion_test.cc
@@ -63,6 +63,9 @@ void assertVersion(int const &CurLine, string const &A, string const &B, int con
bool RunTest(const char *File)
{
+ if (FileExists(File) == false)
+ return _error->Error("Versiontestfile %s doesn't exist!", File);
+
ifstream F(File,ios::in);
if (!F != 0)
return false;
@@ -112,8 +115,8 @@ bool RunTest(const char *File)
int main(int argc, char *argv[])
{
- if (argc <= 1)
- RunTest("../versions.lst");
+ if (argc != 2)
+ return 1;
else
RunTest(argv[1]);
diff --git a/test/libapt/makefile b/test/libapt/makefile
index 366907d89..b3f2f4274 100644
--- a/test/libapt/makefile
+++ b/test/libapt/makefile
@@ -6,6 +6,10 @@ BASENAME=_libapt_test
# Bring in the default rules
include ../../buildlib/defaults.mak
+.PHONY: test
+test:
+ ./run-tests
+
# Program for testing getLanguageCode
PROGRAM = getLanguages${BASENAME}
SLIBS = -lapt-pkg
diff --git a/test/libapt/run-tests b/test/libapt/run-tests
index 4b71c2097..275a789b2 100755
--- a/test/libapt/run-tests
+++ b/test/libapt/run-tests
@@ -3,19 +3,32 @@ set -e
DIR=$(readlink -f $(dirname $0))
echo "Compiling the tests …"
-test -d "$DIR/../../build/obj/test/libapt/" || mkdir -p "$DIR/../../build/obj/test/libapt/"
(cd $DIR && make)
echo "Running all testcases …"
LDPATH="$DIR/../../build/bin"
EXT="_libapt_test"
+
+# detect if output is on a terminal (colorful) or better not
+if expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null; then
+ COLHIGH='\033[1;35m'
+ COLRESET='\033[0m'
+ TESTOKAY='\033[1;32mOKAY\033[0m'
+ TESTFAIL='\033[1;31mFAILED\033[0m'
+else
+ COLHIGH=''
+ COLRESET=''
+ TESTOKAY='OK'
+ TESTFAIL='###FAILED###'
+fi
+
for testapp in $(ls ${LDPATH}/*$EXT)
do
name=$(basename ${testapp})
+ NAME="${COLHIGH}${name}${COLRESET}"
tmppath=""
if [ $name = "GetListOfFilesInDir${EXT}" ]; then
# TODO: very-low: move env creation to the actual test-app
- echo "Prepare Testarea for \033[1;35m$name\033[0m ..."
tmppath=$(mktemp -d)
touch "${tmppath}/anormalfile" \
"${tmppath}/01yet-anothernormalfile" \
@@ -47,19 +60,19 @@ do
ln -s "${tmppath}/anormalfile" "${tmppath}/linkedfile.list"
ln -s "${tmppath}/non-existing-file" "${tmppath}/brokenlink.list"
elif [ $name = "getLanguages${EXT}" ]; then
- echo "Prepare Testarea for \033[1;35m$name\033[0m ..."
tmppath=$(mktemp -d)
touch "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-tr" \
"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-pt" \
"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-se~" \
"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-st.bak"
+ elif [ $name = "CompareVersion${EXT}" ]; then
+ tmppath="${DIR}/versions.lst"
fi
- echo -n "Testing with \033[1;35m${name}\033[0m ... "
- LD_LIBRARY_PATH=${LDPATH} ${testapp} ${tmppath} && echo "\033[1;32mOKAY\033[0m" || echo "\033[1;31mFAILED\033[0m"
+ echo -n "Testing with ${NAME} "
+ LD_LIBRARY_PATH=${LDPATH} ${testapp} ${tmppath} && echo "$TESTOKAY" || echo "$TESTFAIL"
if [ -n "$tmppath" -a -d "$tmppath" ]; then
- echo "Cleanup Testarea after \033[1;35m$name\033[0m ..."
rm -rf "$tmppath"
fi
diff --git a/test/libapt/versions.lst b/test/libapt/versions.lst
new file mode 100644
index 000000000..8dd8ebdc9
--- /dev/null
+++ b/test/libapt/versions.lst
@@ -0,0 +1,106 @@
+# List of
+# ver1 ver2 ret
+# Of versions worth testing
+# 1 means that ver1 > ver2
+# -1 means that ver1 < ver2
+# 0 means that ver1 = ver2
+7.6p2-4 7.6-0 1
+1.0.3-3 1.0-1 1
+1.3 1.2.2-2 1
+1.3 1.2.2 1
+
+# Important attributes
+# disabled as dpkg --compare-versions doesn't like them… (versions have to start with a number)
+#- . -1
+#p - -1
+#a - -1
+#z - -1
+#a . -1
+#z . -1
+
+# disabled as dpkg --compare-versions doesn't like them… (versions have to start with a number)
+#III-alpha9.8 III-alpha9.8-1.5 -1
+
+# Epochs
+1:0.4 10.3 1
+1:1.25-4 1:1.25-8 -1
+0:1.18.36 1.18.36 0
+
+# native version
+1.18.36 1.18.35 1
+0:1.18.36 1.18.35 1
+
+# Funky, but allowed, characters in upstream version
+9:1.18.36:5.4-20 10:0.5.1-22 -1
+9:1.18.36:5.4-20 9:1.18.36:5.5-1 -1
+9:1.18.36:5.4-20 9:1.18.37:4.3-22 -1
+1.18.36-0.17.35-18 1.18.36-19 1
+
+# Junk
+1:1.2.13-3 1:1.2.13-3.1 -1
+2.0.7pre1-4 2.0.7r-1 -1
+
+# Test some properties of text strings
+0-pre 0-pre 0
+0-pre 0-pree -1
+
+1.1.6r2-2 1.1.6r-1 1
+2.6b2-1 2.6b-2 1
+
+98.1p5-1 98.1-pre2-b6-2 -1
+0.4a6-2 0.4-1 1
+
+1:3.0.5-2 1:3.0.5.1 -1
+
+# #205960
+3.0~rc1-1 3.0-1 -1
+
+# #573592 - debian policy 5.6.12
+1.0 1.0-0 0
+0.2 1.0-0 -1
+1.0 1.0-0+b1 -1
+1.0 1.0-0~ 1
+
+# if a version includes a dash
+# it should be the debrev dash - policy says so…
+0:0-0-0 0-0 1
+
+# do we like strange versions? Yes we like strange versions…
+0 0 0
+0 00 0
+
+# "steal" the testcases from cupt
+1.2.3 1.2.3 0 # identical
+4.4.3-2 4.4.3-2 0 # identical
+1:2ab:5 1:2ab:5 0 # this is correct...
+7:1-a:b-5 7:1-a:b-5 0 # and this
+57:1.2.3abYZ+~-4-5 57:1.2.3abYZ+~-4-5 0 # and those too
+1.2.3 0:1.2.3 0 # zero epoch
+1.2.3 1.2.3-0 0 # zero revision
+009 9 0 # zeroes...
+009ab5 9ab5 0 # there as well
+1.2.3 1.2.3-1 -1 # added non-zero revision
+1.2.3 1.2.4 -1 # just bigger
+1.2.4 1.2.3 1 # order doesn't matter
+1.2.24 1.2.3 1 # bigger, eh?
+0.10.0 0.8.7 1 # bigger, eh?
+3.2 2.3 1 # major number rocks
+1.3.2a 1.3.2 1 # letters rock
+0.5.0~git 0.5.0~git2 -1 # numbers rock
+2a 21 -1 # but not in all places
+1.3.2a 1.3.2b -1 # but there is another letter
+1:1.2.3 1.2.4 1 # epoch rocks
+1:1.2.3 1:1.2.4 -1 # bigger anyway
+1.2a+~bCd3 1.2a++ -1 # tilde doesn't rock
+1.2a+~bCd3 1.2a+~ 1 # but first is longer!
+5:2 304-2 1 # epoch rocks
+5:2 304:2 -1 # so big epoch?
+25:2 3:2 1 # 25 > 3, obviously
+1:2:123 1:12:3 -1 # 12 > 2
+1.2-5 1.2-3-5 -1 # 1.2 < 1.2-3
+5.10.0 5.005 1 # preceding zeroes don't matters
+3a9.8 3.10.2 -1 # letters are before all letter symbols
+3a9.8 3~10 1 # but after the tilde
+1.4+OOo3.0.0~ 1.4+OOo3.0.0-4 -1 # another tilde check
+2.4.7-1 2.4.7-z -1 # revision comparing
+1.002-1+b2 1.00 1 # whatever...