]> git.saurik.com Git - apt.git/blob - test/integration/test-apt-update-unauth
Merge remote-tracking branch 'mvo/feature/acq-trans' into debian/experimental
[apt.git] / test / integration / test-apt-update-unauth
1 #!/bin/sh
2 #
3 # Ensure that when going from unauthenticated to authenticated all
4 # files are checked again
5 #
6 set -e
7
8 TESTDIR=$(readlink -f $(dirname $0))
9 . $TESTDIR/framework
10
11 umask 022
12
13 setupenvironment
14 configarchitecture "i386"
15
16 insertpackage 'unstable' 'foo' 'all' '1.0'
17 insertsource 'unstable' 'foo' 'all' '1.0'
18
19 setupaptarchive
20 changetowebserver
21
22 # FIXME:
23 # - also check the unauth -> auth success case, i.e. that all files are
24 # reverified
25 runtest() {
26 # start unauthenticated
27 find rootdir/var/lib/apt/lists/ -type f | xargs rm -f
28 rm -f aptarchive/dists/unstable/*Release*
29
30 testsuccess aptget update -qq --allow-insecure-repositories
31
32 # FIXME: this really shouldn't be needed
33 rm -f rootdir/var/lib/apt/lists/partial/*
34
35 # become authenticated
36 generatereleasefiles
37 signreleasefiles
38
39 # move uncompressed away
40 mv aptarchive/dists/unstable/main/binary-i386/Packages \
41 aptarchive/dists/unstable/main/binary-i386/Packages.uncompressed
42
43 # and ensure we re-check the downloaded data
44
45 # change the local packages file
46 PKGS=$(ls rootdir/var/lib/apt/lists/*Packages*)
47 echo "meep" > $PKGS
48 ls rootdir/var/lib/apt/lists/ > lists.before
49
50 # update and ensure all is reverted on the hashsum failure
51 testfailure aptget update -o Debug::Acquire::Transaction=0 -o Debug::pkgAcquire::Auth=1 -o Debug::pkgAcquire::worker=0 -o Debug::acquire::http=0
52
53 # ensure we have before what we have after
54 msgtest 'Check rollback on going from' 'unauth -> auth'
55 ls rootdir/var/lib/apt/lists/ > lists.after
56 if cmp lists.before lists.after; then
57 msgpass
58 else
59 echo >&2 '### Output of previous apt-get update ###'
60 cat >&2 rootdir/tmp/testfailure.output
61 echo >&2 '### Changes in the lists-directory: ###'
62 diff -u >&2 lists.before lists.after
63 msgfail
64 fi
65
66 # move uncompressed back for release file
67 mv aptarchive/dists/unstable/main/binary-i386/Packages.uncompressed \
68 aptarchive/dists/unstable/main/binary-i386/Packages
69 }
70
71 for COMPRESSEDINDEXES in 'false' 'true'; do
72 echo "Acquire::GzipIndexes \"$COMPRESSEDINDEXES\";" > rootdir/etc/apt/apt.conf.d/compressindexes
73 if $COMPRESSEDINDEXES; then
74 msgmsg 'Run tests with GzipIndexes enabled'
75 else
76 msgmsg 'Run tests with GzipIndexes disabled'
77 fi
78 runtest
79 done