X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/08abac551a4bd4a26be4935d6f0707855f166da0..3c54407f8783d5e27363eabf41dbc3d031526ffe:/test/test-indexes.sh diff --git a/test/test-indexes.sh b/test/test-indexes.sh index 514e82534..50d54f691 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -21,6 +21,7 @@ DEBUG="" #DEBUG="-o Debug::pkgAcquire=true" APT_GET="$BUILDDIR/bin/apt-get $OPTS $DEBUG" APT_CACHE="$BUILDDIR/bin/apt-cache $OPTS $DEBUG" +APT_FTPARCHIVE="$BUILDDIR/bin/apt-ftparchive" [ -x "$BUILDDIR/bin/apt-get" ] || { echo "please build the tree first" >&2 @@ -33,12 +34,16 @@ check_update() { rm -f etc/apt/trusted.gpg etc/apt/secring.gpg touch etc/apt/trusted.gpg etc/apt/secring.gpg find var/lib/apt/lists/ -type f | xargs -r rm + + # first attempt should fail, no trusted GPG key out=$($APT_GET "$@" update 2>&1) echo "$out" | grep -q NO_PUBKEY key=$(echo "$out" | sed -n '/NO_PUBKEY/ { s/^.*NO_PUBKEY \([[:alnum:]]\+\)$/\1/; p}') + # get keyring gpg -q --no-options --no-default-keyring --secret-keyring etc/apt/secring.gpg --trustdb-name etc/apt/trustdb.gpg --keyring etc/apt/trusted.gpg --primary-keyring etc/apt/trusted.gpg --keyserver $GPG_KEYSERVER --recv-keys $key + # now it should work echo "--- apt-get update $@ (with trusted keys)" find var/lib/apt/lists/ -type f | xargs -r rm $APT_GET "$@" update @@ -75,9 +80,9 @@ check_cache() { # again (with cache) $APT_CACHE show $TEST_PKG | grep -q ^Version: rm var/cache/apt/*.bin - $APT_CACHE policy $TEST_PKG | grep -q '500 http://' + $APT_CACHE policy $TEST_PKG | egrep -q '500 (http://|file:/)' # again (with cache) - $APT_CACHE policy $TEST_PKG | grep -q '500 http://' + $APT_CACHE policy $TEST_PKG | egrep -q '500 (http://|file:/)' TEST_SRC=`$APT_CACHE show $TEST_PKG | grep ^Source: | awk '{print $2}'` rm var/cache/apt/*.bin @@ -99,7 +104,8 @@ check_install() { # test apt-get source check_get_source() { echo "--- apt-get source" - $APT_GET source $TEST_PKG + # quiesce: it'll complain about not being able to verify the signature + $APT_GET source $TEST_PKG >/dev/null 2>&1 test -f $TEST_SRC_*.dsc test -d $TEST_SRC-* rm -r $TEST_SRC* @@ -126,11 +132,19 @@ echo "deb-src $TEST_SOURCE" >> etc/apt/sources.list # specifying -o RootDir at the command line does not work for # etc/apt/apt.conf.d/ since it is parsed after pkgInitConfig(); $APT_CONFIG is # checked first, so this works -echo 'RootDir ".";' > apt_config +echo "RootDir \"$WORKDIR\";" > apt_config export APT_CONFIG=`pwd`/apt_config +echo "==== no indexes ====" +echo '--- apt-get check works without indexes' +[ -z `$APT_GET check` ] +echo '--- apt-cache policy works without indexes' +$APT_CACHE policy bash >/dev/null +echo '--- apt-cache show works without indexes' +! LC_MESSAGES=C $APT_CACHE show bash 2>&1| grep -q 'E: No packages found' + echo "===== uncompressed indexes =====" -# first attempt should fail, no trusted GPG key +echo 'Acquire::GzipIndexes "false";' > etc/apt/apt.conf.d/02compress-indexes check_update check_indexes check_cache @@ -140,12 +154,14 @@ check_get_source echo "--- apt-get update with preexisting indexes" $APT_GET update check_indexes +check_cache echo "--- apt-get update with preexisting indexes and pdiff mode" $APT_GET -o Acquire::PDiffs=true update check_indexes +check_cache -echo "===== compressed indexes =====" +echo "===== compressed indexes (CLI option) =====" check_update -o Acquire::GzipIndexes=true check_indexes compressed check_cache @@ -154,10 +170,66 @@ check_get_source echo "--- apt-get update with preexisting indexes" $APT_GET -o Acquire::GzipIndexes=true update -check_indexes +check_indexes compressed +check_cache echo "--- apt-get update with preexisting indexes and pdiff mode" $APT_GET -o Acquire::GzipIndexes=true -o Acquire::PDiffs=true update +check_indexes compressed +check_cache + +echo "===== compressed indexes (apt.conf.d option) =====" +cat < etc/apt/apt.conf.d/02compress-indexes +Acquire::GzipIndexes "true"; +Acquire::CompressionTypes::Order:: "gz"; +EOF + +check_update +check_indexes compressed +check_cache +check_install +check_get_source + +echo "--- apt-get update with preexisting indexes" +$APT_GET update +check_indexes compressed +check_cache + +echo "--- apt-get update with preexisting indexes and pdiff mode" +$APT_GET -o Acquire::PDiffs=true update +check_indexes compressed +check_cache + +rm etc/apt/apt.conf.d/02compress-indexes + +echo "==== apt-ftparchive ====" +mkdir arch +$APT_GET install -d $TEST_PKG +cp var/cache/apt/archives/$TEST_PKG*.deb arch/ +cd arch +$APT_GET source -d $TEST_PKG >/dev/null 2>&1 +$APT_FTPARCHIVE packages . | gzip -9 > Packages.gz +$APT_FTPARCHIVE sources . | gzip -9 > Sources.gz +cd .. + +echo "deb file://$WORKDIR/arch / +deb-src file://$WORKDIR/arch /" > etc/apt/sources.list +$APT_GET clean + +echo "==== uncompressed indexes from local file:// archive ====" +echo "--- apt-get update" +$APT_GET update check_indexes +check_cache +check_get_source + +echo "==== compressed indexes from local file:// archive ====" +echo "--- apt-get update" +$APT_GET -o Acquire::GzipIndexes=true update +# EXFAIL: file:/ URIs currently decompress even with above option +#check_indexes compressed +check_indexes +check_cache +check_get_source echo "===== ALL TESTS PASSED ====="