]> git.saurik.com Git - apt.git/commitdiff
tests: try to pick up compressors from config automatically
authorDavid Kalnischkies <david@kalnischkies.de>
Sun, 3 Jan 2016 21:39:46 +0000 (22:39 +0100)
committerDavid Kalnischkies <david@kalnischkies.de>
Fri, 8 Jan 2016 14:40:01 +0000 (15:40 +0100)
Less hardcoding should help while introducing new compressors.

Git-Dch: Ignore

test/integration/framework
test/integration/test-bug-595691-empty-and-broken-archive-files
test/integration/test-compressed-indexes

index 004d24417fa8e276d704b8d84b77cf61ee612277..e2d545ec232b7831a753786a32322b3e5abf6da2 100644 (file)
@@ -95,7 +95,7 @@ msgfail() {
        if [ $# -gt 0 ] && [ -n "$1" ]; then printf "${CFAIL}FAIL: $*${CNORMAL}\n" >&2;
        else printf "${CFAIL}FAIL${CNORMAL}\n" >&2; fi
        if [ -n "$APT_DEBUG_TESTS" ]; then
-               $SHELL
+               APT_CONFIG="$(getaptconfig)" LD_LIBRARY_PATH="${LIBRARYPATH}:${LD_LIBRARY_PATH}" $SHELL
        fi
        EXIT_CODE=$((EXIT_CODE+1));
 }
@@ -526,7 +526,6 @@ configcompression() {
                'gz') printf "gzip\tgz\tgzip\n";;
                'bz2') printf "bzip2\tbz2\tbzip2\n";;
                'lzma') printf "lzma\tlzma\txz --format=lzma\n";;
-               'xz') printf "xz\txz\txz\n";;
                *) printf "$1\t$1\t$1\n";;
                esac
                shift
@@ -550,21 +549,18 @@ confighashes() {
 }
 forcecompressor() {
        COMPRESSOR="$1"
+       COMPRESS="$1"
        COMPRESSOR_CMD="$1"
        case $COMPRESSOR in
        gzip) COMPRESS='gz';;
        bzip2) COMPRESS='bz2';;
-       lzma) COMPRESS='lzma';;
-       xz) COMPRESS='xz';;
-       *) msgdie "Compressor $COMPRESSOR is unknown to framework, so can't be forced by forcecompressor!";;
        esac
        local CONFFILE="${TMPWORKINGDIRECTORY}/rootdir/etc/apt/apt.conf.d/00force-compressor"
        echo "Acquire::CompressionTypes::Order { \"${COMPRESS}\"; };
-Dir::Bin::uncompressed \"/does/not/exist\";
-Dir::Bin::gzip \"/does/not/exist\";
-Dir::Bin::bzip2 \"/does/not/exist\";
-Dir::Bin::lzma \"/does/not/exist\";
-Dir::Bin::xz \"/does/not/exist\";" > "$CONFFILE"
+Dir::Bin::uncompressed \"/does/not/exist\";" > "$CONFFILE"
+       for COMP in $(aptconfig dump APT::Compressor --format '%t %v%n' | sed -n 's#^Name \([^.].\+\)$#\1#p'); do
+               echo "Dir::Bin::${COMP} \"/does/not/exist\";"
+       done >> "$CONFFILE"
        if [ -e "/bin/${COMPRESSOR}" ]; then
                echo "Dir::Bin::${COMPRESSOR} \"/bin/${COMPRESSOR}\";" >> "$CONFFILE"
        elif [ -e "/usr/bin/${COMPRESSOR}" ]; then
@@ -1828,6 +1824,12 @@ listcurrentlistsdirectory() {
                done
        } | sort
 }
+forallsupportedcompressors() {
+       for COMP in $(aptconfig dump 'APT::Compressor' --format '%f%n' | cut -d':' -f 5 | uniq); do
+               if [ -z "$COMP" -o "$COMP" = '.' -o "$COMP" = 'lz4' ]; then continue; fi
+               "$@" "$COMP"
+       done
+}
 
 ### convenience hacks ###
 mkdir() {
index c216918c5fcaf6602aa075f6e31e2387148b324a..c329b76d22271b6c9fece5cba378e57b6469d25f 100755 (executable)
@@ -76,9 +76,9 @@ W: Failed to fetch store:$(readlink -f rootdir/var/lib/apt/lists/partial/localho
 E: Some index files failed to download. They have been ignored, or old ones used instead." "empty file Packages.$COMPRESS over http"
 }
 
-for COMPRESSOR in 'gzip' 'bzip2' 'lzma' 'xz'; do testoverfile $COMPRESSOR; done
+forallsupportedcompressors testoverfile
 
 # do the same again with http instead of file
 changetowebserver
 
-for COMPRESSOR in 'gzip' 'bzip2' 'lzma' 'xz'; do testoverhttp $COMPRESSOR; done
+forallsupportedcompressors testoverhttp
index 49ffc4a8a96ec5ac9af9c63d7242213d5e484e7b..b97e1244bca13fd9ed85d0f74b2d0443d25309ee 100755 (executable)
@@ -5,7 +5,7 @@ TESTDIR="$(readlink -f "$(dirname "$0")")"
 . "$TESTDIR/framework"
 
 setupenvironment
-configcompression '.' 'xz' 'bz2' 'lzma' 'gz'
+configcompression '.' $(aptconfig dump APT::Compressor --format '%t %v%n' | sed -n 's#^Extension \.\(.*\)$#\1#p')
 configarchitecture 'i386'
 
 buildsimplenativepackage 'testpkg' 'i386' '1.0'
@@ -146,7 +146,7 @@ testsuccessequal "$GOODSHOWSRC" aptcache showsrc testpkg
 GOODPOLICY="$(aptcache policy testpkg)"
 test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^  Candidate:' -e '^  Installed: (none)' -e '500 file:/' | wc -l) -eq 4 || msgdie 'file policy is broken'
 testsuccessequal "$GOODPOLICY" aptcache policy testpkg
-for COMPRESSOR in 'gzip' 'bzip2' 'lzma' 'xz'; do testovermethod 'file' $COMPRESSOR; done
+forallsupportedcompressors testovermethod 'file'
 
 rewritesourceslist "copy://${TMPWORKINGDIRECTORY}/aptarchive"
 rm -rf rootdir/var/lib/apt/lists
@@ -154,7 +154,7 @@ testsuccess aptget update
 GOODPOLICY="$(aptcache policy testpkg)"
 test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^  Candidate:' -e '^  Installed: (none)' -e '500 copy:/' | wc -l) -eq 4 || msgdie 'copy policy is broken'
 testsuccessequal "$GOODPOLICY" aptcache policy testpkg
-for COMPRESSOR in 'gzip' 'bzip2' 'lzma' 'xz'; do testovermethod 'copy' $COMPRESSOR; done
+forallsupportedcompressors testovermethod 'copy'
 
 changetowebserver
 rm -rf rootdir/var/lib/apt/lists
@@ -162,7 +162,7 @@ testsuccess aptget update
 GOODPOLICY="$(aptcache policy testpkg)"
 test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^  Candidate:' -e '^  Installed: (none)' -e '500 http://' | wc -l) -eq 4 || msgdie 'http policy is broken'
 testsuccessequal "$GOODPOLICY" aptcache policy testpkg
-for COMPRESSOR in 'gzip' 'bzip2' 'lzma' 'xz'; do testovermethod 'http' $COMPRESSOR; done
+forallsupportedcompressors testovermethod 'http'
 
 changetohttpswebserver
 rm -rf rootdir/var/lib/apt/lists
@@ -170,7 +170,7 @@ testsuccess aptget update
 GOODPOLICY="$(aptcache policy testpkg)"
 test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^  Candidate:' -e '^  Installed: (none)' -e '500 https://' | wc -l) -eq 4 || msgdie 'https policy is broken'
 testsuccessequal "$GOODPOLICY" aptcache policy testpkg
-for COMPRESSOR in 'gzip' 'bzip2' 'lzma' 'xz'; do testovermethod 'https' $COMPRESSOR; done
+forallsupportedcompressors testovermethod 'https'
 
 changetocdrom 'Debian APT Testdisk 0.8.15'
 rm -rf rootdir/var/lib/apt/lists
@@ -178,4 +178,4 @@ testsuccess aptcdrom add </dev/null
 GOODPOLICY="$(aptcache policy testpkg)"
 test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^  Candidate:' -e '^  Installed: (none)' -e '500 cdrom://' | wc -l) -eq 4 || msgdie 'cdrom policy is broken'
 testsuccessequal "$GOODPOLICY" aptcache policy testpkg
-for COMPRESSOR in 'gzip' 'bzip2' 'lzma' 'xz'; do testovermethod 'cdrom' $COMPRESSOR; done
+forallsupportedcompressors testovermethod 'cdrom'