+check_update() {
+ echo "--- apt-get update $@ (no trusted keys)"
+
+ 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
+}
+
+# if $1 == "compressed", check that we have compressed indexes, otherwise
+# uncompressed ones
+check_indexes() {
+ echo "--- only ${1:-uncompressed} index files present"
+ local F
+ if [ "$1" = "compressed" ]; then
+ ! test -e var/lib/apt/lists/*_Packages || F=1
+ ! test -e var/lib/apt/lists/*_Sources || F=1
+ test -e var/lib/apt/lists/*_Packages.gz || F=1
+ test -e var/lib/apt/lists/*_Sources.gz || F=1
+ else
+ test -e var/lib/apt/lists/*_Packages || F=1
+ test -e var/lib/apt/lists/*_Sources || F=1
+ ! test -e var/lib/apt/lists/*_Packages.gz || F=1
+ ! test -e var/lib/apt/lists/*_Sources.gz || F=1
+ fi
+
+ if [ -n "$F" ]; then
+ ls -laR var/lib/apt/lists/
+ exit 1
+ fi
+}
+
+# test apt-cache commands
+check_cache() {
+ echo "--- apt-cache commands"
+
+ $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 | egrep -q '500 (http://|file:/)'
+ # again (with cache)
+ $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
+ $APT_CACHE showsrc $TEST_SRC | grep -q ^Binary:
+ # again (with cache)
+ $APT_CACHE showsrc $TEST_SRC | grep -q ^Binary:
+}
+
+# test apt-get install
+check_install() {
+ echo "--- apt-get 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
+}
+
+# test apt-get source
+check_get_source() {
+ echo "--- apt-get source"
+ # 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*
+}
+
+############################################################################
+# main
+############################################################################
+
+echo "===== building sandbox ====="