]>
git.saurik.com Git - apt.git/blob - test/test-indexes.sh
3 # Test behaviour of index retrieval and usage, in particular with uncompressed
4 # and gzip compressed indexes.
5 # Author: Martin Pitt <martin.pitt@ubuntu.com>
6 # (C) 2010 Canonical Ltd.
8 BUILDDIR
=$(readlink -f $(dirname $0)/..
/build
)
10 TEST_SOURCE
="http://ftp.debian.org/debian unstable contrib"
11 GPG_KEYSERVER
=gpg
-keyserver.de
12 # should be a small package with dependencies satisfiable in TEST_SOURCE, i. e.
13 # ideally no depends at all
14 TEST_PKG
="python-psyco-doc"
16 export LD_LIBRARY_PATH
=$BUILDDIR/bin
18 OPTS
="-qq -o Dir::Bin::Methods=$BUILDDIR/bin/methods -o Debug::NoLocking=true"
20 #DEBUG="-o Debug::pkgCacheGen=true"
21 #DEBUG="-o Debug::pkgAcquire=true"
22 APT_GET
="$BUILDDIR/bin/apt-get $OPTS $DEBUG"
23 APT_CACHE
="$BUILDDIR/bin/apt-cache $OPTS $DEBUG"
25 [ -x "$BUILDDIR/bin/apt-get" ] || {
26 echo "please build the tree first" >&2
31 echo "--- apt-get update $@ (no trusted keys)"
33 rm -f etc
/apt
/trusted.gpg etc
/apt
/secring.gpg
34 touch etc
/apt
/trusted.gpg etc
/apt
/secring.gpg
35 find var
/lib
/apt
/lists
/ -type f
| xargs -r rm
36 out
=$($APT_GET "$@" update 2>&1)
37 echo "$out" | grep -q NO_PUBKEY
38 key
=$(echo "$out" | sed -n '/NO_PUBKEY/ { s/^.*NO_PUBKEY \([[:alnum:]]\+\)$
/\
1/; p
}')
40 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
42 echo "--- apt-get update $@ (with trusted keys)"
43 find var/lib/apt/lists/ -type f | xargs -r rm
47 # if $1 == "compressed", check that we have compressed indexes, otherwise
50 echo "--- only ${1:-uncompressed} index files present"
52 if [ "$1" = "compressed" ]; then
53 ! test -e var/lib/apt/lists/*_Packages || F=1
54 ! test -e var/lib/apt/lists/*_Sources || F=1
55 test -e var/lib/apt/lists/*_Packages.gz || F=1
56 test -e var/lib/apt/lists/*_Sources.gz || F=1
58 test -e var/lib/apt/lists/*_Packages || F=1
59 test -e var/lib/apt/lists/*_Sources || F=1
60 ! test -e var/lib/apt/lists/*_Packages.gz || F=1
61 ! test -e var/lib/apt/lists/*_Sources.gz || F=1
65 ls -laR var/lib/apt/lists/
70 # test apt-cache commands
72 echo "--- apt-cache commands"
74 $APT_CACHE show $TEST_PKG | grep -q ^Version:
76 $APT_CACHE show $TEST_PKG | grep -q ^Version:
77 rm var/cache/apt/*.bin
78 $APT_CACHE policy $TEST_PKG | grep -q '500 http
://'
80 $APT_CACHE policy $TEST_PKG | grep -q '500 http
://'
82 TEST_SRC=`$APT_CACHE show $TEST_PKG | grep ^Source: | awk '{print
$2}'`
83 rm var/cache/apt/*.bin
84 $APT_CACHE showsrc $TEST_SRC | grep -q ^Binary:
86 $APT_CACHE showsrc $TEST_SRC | grep -q ^Binary:
89 # test apt-get install
91 echo "--- apt-get install"
93 $APT_GET install -d $TEST_PKG
94 test -e var/cache/apt/archives/$TEST_PKG*.deb
96 ! test -e var/cache/apt/archives/$TEST_PKG*.deb
101 echo "--- apt-get source"
102 $APT_GET source $TEST_PKG
103 test -f $TEST_SRC_*.dsc
108 ############################################################################
110 ############################################################################
112 echo "===== building sandbox ====="
114 trap "cd /; rm -rf $WORKDIR" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
120 mkdir -p etc/apt/preferences.d etc/apt/trusted.gpg.d etc/apt/apt.conf.d var/cache/apt/archives/partial var/lib/apt/lists/partial var/lib/dpkg
121 cp /etc/apt/trusted.gpg etc/apt
122 touch var/lib/dpkg/status
123 echo "deb $TEST_SOURCE" > etc/apt/sources.list
124 echo "deb-src $TEST_SOURCE" >> etc/apt/sources.list
126 # specifying -o RootDir at the command line does not work for
127 # etc/apt/apt.conf.d/ since it is parsed after pkgInitConfig(); $APT_CONFIG is
128 # checked first, so this works
129 echo 'RootDir
".";' > apt_config
130 export APT_CONFIG=`pwd`/apt_config
132 echo "===== uncompressed indexes ====="
133 # first attempt should fail, no trusted GPG key
140 echo "--- apt-get update with preexisting indexes"
144 echo "--- apt-get update with preexisting indexes and pdiff mode"
145 $APT_GET -o Acquire::PDiffs=true update
148 echo "===== compressed indexes ====="
149 check_update -o Acquire::GzipIndexes=true
150 check_indexes compressed
155 echo "--- apt-get update with preexisting indexes"
156 $APT_GET -o Acquire::GzipIndexes=true update
157 check_indexes compressed
159 echo "--- apt-get update with preexisting indexes and pdiff mode"
160 $APT_GET -o Acquire::GzipIndexes=true -o Acquire::PDiffs=true update
161 check_indexes compressed
163 echo "===== ALL TESTS PASSED ====="