1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/bin/sh
- set -e
- verify_by_hash() {
- for hash_gen in SHA256:sha256sum SHA512:sha512sum; do
- hash=$(echo ${hash_gen} | cut -f1 -d:)
- gen=$(echo ${hash_gen} | cut -f2 -d:)
- testsuccess stat aptarchive/dists/unstable/main/binary-i386/by-hash/$hash/$($gen aptarchive/dists/unstable/main/binary-i386/Packages | cut -f1 -d' ')
- testsuccess stat aptarchive/dists/unstable/main/binary-i386/by-hash/$hash/$($gen aptarchive/dists/unstable/main/binary-i386/Packages.gz | cut -f1 -d' ')
- done
- }
- #
- # main()
- #
- TESTDIR="$(readlink -f "$(dirname "$0")")"
- . "$TESTDIR/framework"
- setupenvironment
- configarchitecture 'i386'
- configcompression 'gz' '.'
- confighashes 'SHA256' 'SHA512'
- # enable by-hash in apt-ftparchive
- echo 'APT::FTPArchive::DoByHash "1";' >> aptconfig.conf
- # build one pacakge
- buildsimplenativepackage 'foo' 'i386' '1' 'unstable'
- buildaptarchivefromincoming
- # verify initial run
- verify_by_hash
- previous_hash=$(sha256sum aptarchive/dists/unstable/main/binary-i386/Packages | cut -f1 -d' ')
- # insert new package
- buildsimplenativepackage 'bar' 'i386' '1' 'unstable'
- # and build again
- buildaptarchivefromincoming
- # ensure the new package packag is there
- testsuccess zgrep "Package: bar" aptarchive/dists/unstable/main/binary-i386/Packages.gz
- # ensure we have the by-hash stuff
- verify_by_hash
- # ensure the old hash is still there
- testsuccess stat aptarchive/dists/unstable/main/binary-i386/by-hash/SHA256/$previous_hash
- # ensure we have it in the Release file
- testsuccess grep "Acquire-By-Hash: yes" aptarchive/dists/unstable/*Release
- # now ensure gc work
- for i in $(seq 3); do
- buildsimplenativepackage 'bar' 'i386' "$i" 'unstable'
- buildaptarchivefromincoming
- done
- hash_count=$(ls aptarchive/dists/unstable/main/binary-i386/by-hash/SHA256/|wc -l)
- # we have 2 files (uncompressed, gz) per run, 5 runs in total
- # by default apt-ftparchive keeps three generations (current plus 2 older)
- msgtest "Check that gc for by-hash works… "
- if [ "$hash_count" = "6" ]; then
- msgpass
- else
- echo "Got $hash_count expected 6"
- msgfail
- fi
- # ensure the current generation is still there
- verify_by_hash
|