diff options
Diffstat (limited to 'test/libapt')
-rw-r--r-- | test/libapt/compareversion_test.cc | 7 | ||||
-rw-r--r-- | test/libapt/makefile | 4 | ||||
-rwxr-xr-x | test/libapt/run-tests | 25 | ||||
-rw-r--r-- | test/libapt/versions.lst | 106 |
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... |