]>
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 | ||
22 | # build one pacakge | |
23 | buildsimplenativepackage 'foo' 'i386' '1' 'unstable' | |
24 | buildaptarchivefromincoming | |
25 | ||
26 | # verify initial run | |
27 | verify_by_hash | |
28 | previous_hash=$(sha256sum aptarchive/dists/unstable/main/binary-i386/Packages | cut -f1 -d' ') | |
29 | ||
30 | # insert new package | |
31 | buildsimplenativepackage 'bar' 'i386' '1' 'unstable' | |
32 | # and build again | |
33 | buildaptarchivefromincoming | |
34 | ||
35 | # ensure the new package packag is there | |
36 | testsuccess zgrep "Package: bar" aptarchive/dists/unstable/main/binary-i386/Packages.gz | |
37 | ||
38 | # ensure we have the by-hash stuff | |
39 | verify_by_hash | |
40 | ||
41 | # ensure the old hash is still there | |
42 | testsuccess stat aptarchive/dists/unstable/main/binary-i386/by-hash/SHA256/$previous_hash | |
43 | ||
44 | # ensure we have it in the Release file | |
45 | testsuccess grep "Acquire-By-Hash: true" aptarchive/dists/unstable/*Release | |
46 | ||
47 | # now ensure gc work | |
48 | for i in $(seq 3); do | |
49 | buildsimplenativepackage 'bar' 'i386' "$i" 'unstable' | |
50 | buildaptarchivefromincoming | |
51 | done | |
52 | ||
53 | hash_count=$(ls aptarchive/dists/unstable/main/binary-i386/by-hash/SHA256/|wc -l) | |
54 | # we have 2 files (uncompressed, gz) per run, 5 runs in total | |
55 | # by default apt-ftparchive keeps three generations (current plus 2 older) | |
56 | msgtest "Check that gc for by-hash works… " | |
57 | if [ "$hash_count" = "6" ]; then | |
58 | msgpass | |
59 | else | |
60 | echo "Got $hash_count expected 6" | |
61 | msgfail | |
62 | fi | |
63 | ||
64 | # ensure the current generation is still there | |
65 | verify_by_hash | |
66 |