]> git.saurik.com Git - apt.git/blame - test/integration/test-apt-by-hash-update
add by-hash sources.list option and document all of by-hash
[apt.git] / test / integration / test-apt-by-hash-update
CommitLineData
50d98a1b
MV
1#!/bin/sh
2set -e
3
4TESTDIR=$(readlink -f $(dirname $0))
5. $TESTDIR/framework
6
7setupenvironment
24e8f24e 8configarchitecture 'i386'
c5ede4ca 9confighashes 'SHA512'
24e8f24e 10configcompression '.' 'gz'
50d98a1b
MV
11
12insertpackage 'unstable' 'foo' 'all' '1.0'
13
14setupaptarchive --no-update
15
3a8776a3 16# make Packages *only* accessible by-hash for this test
a2fdb57f
MV
17mkdir -p aptarchive/dists/unstable/main/binary-i386/by-hash/SHA512
18(cd aptarchive/dists/unstable/main/binary-i386/by-hash/SHA512 &&
19 mv ../../Packages* . &&
20 ln -s Packages.gz $(sha512sum Packages.gz|cut -f1 -d' ') )
50d98a1b
MV
21
22# add sources
a2fdb57f
MV
23mkdir -p aptarchive/dists/unstable/main/source/by-hash/SHA512
24(cd aptarchive/dists/unstable/main/source/by-hash/SHA512 &&
25 ln -s ../../Sources.gz $(sha512sum ../../Sources.gz|cut -f1 -d' ')
50d98a1b
MV
26)
27
24e8f24e
DK
28ensureitsbroken() {
29 rm -rf rootdir/var/lib/apt/lists
30 # we moved the Packages file away, normal update won't work
31 testfailure aptget update "$@"
32 # ensure we do not know about "foo"
33 testfailureequal "Reading package lists...
50d98a1b
MV
34Building dependency tree...
35E: Unable to locate package foo" aptget install -q -s foo
24e8f24e
DK
36}
37ensureitsbroken
38ensureitsbroken -o Acquire::By-Hash=1
50d98a1b 39
1e0f0f28 40ensureitworks() {
24e8f24e
DK
41 rm -rf rootdir/var/lib/apt/lists
42 testsuccess aptget update -o Acquire::Languages=none "$@"
1e0f0f28 43 testsuccessequal "Inst foo (1.0 unstable [all])
a2fdb57f 44Conf foo (1.0 unstable [all])" aptget install -qq -s foo
1e0f0f28 45}
24e8f24e
DK
46msgmsg 'Test by-hash via' 'config option'
47ensureitworks -o Acquire::By-Hash=force
a2fdb57f 48
24e8f24e
DK
49msgmsg 'Test by-hash via' 'release option'
50cp -a aptarchive/dists aptarchive/dists.bak
a2fdb57f 51# add magic string to Release file ...
24e8f24e
DK
52sed -i '/^Suite: / a \
53Acquire-By-Hash: yes' aptarchive/dists/unstable/Release
a2fdb57f 54signreleasefiles
24e8f24e
DK
55ensureitworks
56ensureitsbroken -o Acquire::By-Hash=0
57
58msgmsg 'Test by-hash via' 'sources option'
59sed -i "s#^\(deb\(-src\)\?\) #\1 [by-hash=yes] #" rootdir/etc/apt/sources.list.d/*
60ensureitworks
61#ensureitsbroken -o Acquire::By-Hash=0
62
63rm -rf aptarchive/dists
64cp -a aptarchive/dists.bak aptarchive/dists
65#ensureitworks -o Acquire::By-Hash=force
66ensureitsbroken -o Acquire::By-Hash=1
67ensureitsbroken -o Acquire::By-Hash=0
a2fdb57f 68
24e8f24e 69sed -i "s#^\(deb\(-src\)\?\) \[by-hash=yes\] #\1 [by-hash=force] #" rootdir/etc/apt/sources.list.d/*
1e0f0f28 70ensureitworks
24e8f24e 71#ensureitsbroken -o Acquire::By-Hash=0