diff options
Diffstat (limited to 'test/test-indexes.sh')
-rwxr-xr-x | test/test-indexes.sh | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/test/test-indexes.sh b/test/test-indexes.sh new file mode 100755 index 000000000..d3f5e7cd3 --- /dev/null +++ b/test/test-indexes.sh @@ -0,0 +1,106 @@ +#!/bin/sh -e + +# Test behaviour of index retrieval and usage, in particular with uncompressed +# and gzip compressed indexes. +# Author: Martin Pitt <martin.pitt@ubuntu.com> +# (C) 2010 Canonical Ltd. + +BUILDDIR=$(readlink -f $(dirname $0)/../build) + +TEST_SOURCE="deb http://ftp.debian.org/debian unstable contrib" +TEST_SOURCE_KEYID=55BE302B +GPG_KEYSERVER=gpg-keyserver.de +# should be a small package with dependencies satisfiable in TEST_SOURCE, i. e. +# ideally no depends at all +TEST_PKG="python-psyco-doc" + +export LD_LIBRARY_PATH=$BUILDDIR/bin + +OPTS="-o RootDir=. -o Dir::Bin::Methods=$BUILDDIR/bin/methods -o Debug::NoLocking=true" +DEBUG="" +#DEBUG="-o Debug::pkgCacheGen=true" +#DEBUG="-o Debug::pkgAcquire=true" +APT_GET="$BUILDDIR/bin/apt-get $OPTS $DEBUG" +APT_CACHE="$BUILDDIR/bin/apt-cache $OPTS $DEBUG" + +[ -x "$BUILDDIR/bin/apt-get" ] || { + echo "please build the tree first" >&2 + exit 1 +} + +echo "---- building sandbox----" +WORKDIR=$(mktemp -d) +trap "cd /; rm -rf $WORKDIR" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM +cd $WORKDIR + +rm -fr etc var +rm -f home +ln -s /home home +mkdir -p etc/apt/preferences.d etc/apt/trusted.gpg.d var/cache/apt/archives/partial var/lib/apt/lists/partial var/lib/dpkg +cp /etc/apt/trusted.gpg etc/apt +touch var/lib/dpkg/status +echo "$TEST_SOURCE" > etc/apt/sources.list + +# get keyring +gpg --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 $TEST_SOURCE_KEYID + +echo "---- uncompressed update ----" +$APT_GET update +test -e var/lib/apt/lists/*_Packages +! test -e var/lib/apt/lists/*_Packages.gz + +echo "---- uncompressed cache ----" +$APT_CACHE show $TEST_PKG | grep -q ^Version: +# 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://' +# again (with cache) +$APT_CACHE policy $TEST_PKG | grep -q '500 http://' + +echo "---- uncompressed install ----" +$APT_GET install -d $TEST_PKG +test -e var/cache/apt/archives/$TEST_PKG*.deb +$APT_GET clean +! test -e var/cache/apt/archives/$TEST_PKG*.deb + +echo "----- uncompressed update with preexisting indexes, no pdiff ----" +$APT_GET -o Acquire::PDiffs=false update +test -e var/lib/apt/lists/*_Packages +! test -e var/lib/apt/lists/*_Packages.gz + +echo "----- uncompressed update with preexisting indexes, with pdiff ----" +$APT_GET -o Acquire::PDiffs=true update +test -e var/lib/apt/lists/*_Packages +! test -e var/lib/apt/lists/*_Packages.gz + +echo "----- compressed update ----" +find var/lib/apt/lists/ -type f | xargs -r rm +$APT_GET -o Acquire::GzipIndexes=true update +! test -e var/lib/apt/lists/*_Packages +test -e var/lib/apt/lists/*_Packages.gz + +echo "---- compressed cache ----" +$APT_CACHE show $TEST_PKG | grep -q ^Version: +# 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://' +# again (with cache) +$APT_CACHE policy $TEST_PKG | grep -q '500 http://' + +echo "---- compressed install ----" +$APT_GET install -d $TEST_PKG +! test -e var/cache/apt/archives/$TEST_PKG*.deb + +echo "----- compressed update with preexisting indexes, no pdiff ----" +$APT_GET -o Acquire::PDiffs=false -o Acquire::GzipIndexes=true update +! test -e var/lib/apt/lists/*_Packages +test -e var/lib/apt/lists/*_Packages.gz + +echo "----- compressed update with preexisting indexes, with pdiff ----" +$APT_GET -o Acquire::PDiffs=true -o Acquire::GzipIndexes=true update +! test -e var/lib/apt/lists/*_Packages +test -e var/lib/apt/lists/*_Packages.gz + +echo "---- ALL TESTS PASSED ----" |