]>
Commit | Line | Data |
---|---|---|
7852873a MV |
1 | #!/bin/sh |
2 | set -e | |
3 | ||
4 | verify_by_hash() { | |
5 | for hash_gen in SHA1:sha1sum SHA256:sha256sum SHA512:sha512sum; do | |
6 | hash=$(echo ${hash_gen} | cut -f1 -d:) | |
7 | gen=$(echo ${hash_gen} | cut -f2 -d:) | |
8 | testsuccess stat aptarchive/dists/unstable/main/binary-i386/by-hash/$hash/$($gen aptarchive/dists/unstable/main/binary-i386/Packages | cut -f1 -d' ') | |
9 | testsuccess stat aptarchive/dists/unstable/main/binary-i386/by-hash/$hash/$($gen aptarchive/dists/unstable/main/binary-i386/Packages.gz | cut -f1 -d' ') | |
10 | done | |
11 | } | |
12 | ||
13 | # | |
14 | # main() | |
15 | # | |
16 | TESTDIR=$(readlink -f $(dirname $0)) | |
17 | . $TESTDIR/framework | |
18 | setupenvironment | |
19 | configarchitecture 'i386' | |
20 | configcompression 'gz' '.' | |
21 | ||
e8e52cd0 MV |
22 | # enable by-hash in apt-ftparchive |
23 | echo 'APT::FTPArchive::DoByHash "1";' >> aptconfig.conf | |
24 | ||
7852873a MV |
25 | # build one pacakge |
26 | buildsimplenativepackage 'foo' 'i386' '1' 'unstable' | |
27 | buildaptarchivefromincoming | |
28 | ||
29 | # verify initial run | |
30 | verify_by_hash | |
31 | previous_hash=$(sha256sum aptarchive/dists/unstable/main/binary-i386/Packages | cut -f1 -d' ') | |
32 | ||
33 | # insert new package | |
34 | buildsimplenativepackage 'bar' 'i386' '1' 'unstable' | |
35 | # and build again | |
36 | buildaptarchivefromincoming | |
37 | ||
38 | # ensure the new package packag is there | |
39 | testsuccess zgrep "Package: bar" aptarchive/dists/unstable/main/binary-i386/Packages.gz | |
40 | ||
41 | # ensure we have the by-hash stuff | |
42 | verify_by_hash | |
43 | ||
44 | # ensure the old hash is still there | |
45 | testsuccess stat aptarchive/dists/unstable/main/binary-i386/by-hash/SHA256/$previous_hash | |
46 | ||
47 | # ensure we have it in the Release file | |
48 | testsuccess grep "Acquire-By-Hash: true" aptarchive/dists/unstable/*Release | |
49 | ||
50 | # now ensure gc work | |
51 | for i in $(seq 3); do | |
52 | buildsimplenativepackage 'bar' 'i386' "$i" 'unstable' | |
53 | buildaptarchivefromincoming | |
54 | done | |
55 | ||
56 | hash_count=$(ls aptarchive/dists/unstable/main/binary-i386/by-hash/SHA256/|wc -l) | |
57 | # we have 2 files (uncompressed, gz) per run, 5 runs in total | |
58 | # by default apt-ftparchive keeps three generations (current plus 2 older) | |
59 | msgtest "Check that gc for by-hash works… " | |
60 | if [ "$hash_count" = "6" ]; then | |
61 | msgpass | |
62 | else | |
63 | echo "Got $hash_count expected 6" | |
64 | msgfail | |
65 | fi | |
66 | ||
67 | # ensure the current generation is still there | |
68 | verify_by_hash | |
69 |