diff options
Diffstat (limited to '')
-rwxr-xr-x | test/integration/test-apt-ftparchive-cachedb | 103 | ||||
-rwxr-xr-x | test/integration/test-apt-ftparchive-cachedb-lp1274466 | 59 |
2 files changed, 162 insertions, 0 deletions
diff --git a/test/integration/test-apt-ftparchive-cachedb b/test/integration/test-apt-ftparchive-cachedb new file mode 100755 index 0000000..73d762c --- /dev/null +++ b/test/integration/test-apt-ftparchive-cachedb @@ -0,0 +1,103 @@ +#!/bin/sh +set -e + +ensure_correct_packages_file() { + testequal "Package: foo +Architecture: i386 +Version: 1 +Priority: optional +Section: others +Maintainer: Joe Sixpack <joe@example.org> +$(dpkg-deb -I ./aptarchive/pool/main/foo_1_i386.deb | grep 'Installed-Size:' | sed 's#^ ##') +Filename: pool/main/foo_1_i386.deb" head -n8 ./aptarchive/dists/test/main/binary-i386/Packages +} + +ensure_correct_contents_file() { + testfileequal ./aptarchive/dists/test/Contents-i386 "usr/bin/foo-i386 others/foo +usr/share/doc/foo/FEATURES others/foo +usr/share/doc/foo/changelog others/foo +usr/share/doc/foo/copyright others/foo" +} + +# +# main() +# +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" +setupenvironment +configarchitecture 'i386' + +mkdir -p aptarchive/dists/test/main/i18n/ +mkdir -p aptarchive/dists/test/main/source/ +mkdir -p aptarchive/dists/test/main/binary-i386 +mkdir -p aptarchive/pool/main + +mkdir aptarchive-overrides +mkdir aptarchive-cache +cat > ftparchive.conf <<"EOF" +Dir { + ArchiveDir "./aptarchive"; + OverrideDir "./aptarchive-overrides"; + CacheDir "./aptarchive-cache"; +}; + +Default { + Packages::Compress ". gzip bzip2"; + Contents::Compress ". gzip bzip2"; + LongDescription "false"; +}; + +TreeDefault { + BinCacheDB "packages-$(SECTION)-$(ARCH).db"; + + Directory "pool/$(SECTION)"; + SrcDirectory "pool/$(SECTION)"; + + Packages "$(DIST)/$(SECTION)/binary-$(ARCH)/Packages"; + Contents "$(DIST)/Contents-$(ARCH)"; +}; + +Tree "dists/test" { + Sections "main"; + Architectures "i386"; + +}; +EOF + +# build one package +buildsimplenativepackage 'foo' 'i386' '1' 'test' +mv incoming/* aptarchive/pool/main/ + +# generate (empty cachedb) +testsuccess aptftparchive generate ftparchive.conf -o APT::FTPArchive::ShowCacheMisses=1 +cp rootdir/tmp/testsuccess.output stats-out.txt +ensure_correct_packages_file +ensure_correct_contents_file +testsuccessequal ' Misses in Cache: 2 + dists/test/Contents-i386: New 402 B Misses in Cache: 0' grep Misses stats-out.txt + +# generate again +testsuccess aptftparchive generate ftparchive.conf -o APT::FTPArchive::ShowCacheMisses=1 +cp rootdir/tmp/testsuccess.output stats-out.txt +ensure_correct_packages_file +ensure_correct_contents_file +testsuccessequal ' Misses in Cache: 0 + dists/test/Contents-i386: Misses in Cache: 0' grep Misses stats-out.txt + +# and again (with removing the Packages file) +rm -f ./aptarchive/dists/test/main/binary-i386/* +rm -f ./aptarchive/dists/test/Contents-i386 +testsuccess aptftparchive generate ftparchive.conf -o APT::FTPArchive::ShowCacheMisses=1 +cp rootdir/tmp/testsuccess.output stats-out.txt +ensure_correct_packages_file +ensure_correct_contents_file +testsuccessequal ' Misses in Cache: 0 + dists/test/Contents-i386: New 402 B Misses in Cache: 0' grep Misses stats-out.txt + +# and clean +rm -rf aptarchive/pool/main/* +testsuccessequal "packages-main-i386.db" aptftparchive clean ftparchive.conf +testsuccess aptftparchive clean ftparchive.conf -o Debug::APT::FTPArchive::Clean=1 +cp rootdir/tmp/testsuccess.output clean-out.txt +testsuccessequal "0 Number of unique keys in the tree" grep unique clean-out.txt +testsuccessequal "packages-main-i386.db" grep packages-main-i386.db clean-out.txt diff --git a/test/integration/test-apt-ftparchive-cachedb-lp1274466 b/test/integration/test-apt-ftparchive-cachedb-lp1274466 new file mode 100755 index 0000000..b0bcae8 --- /dev/null +++ b/test/integration/test-apt-ftparchive-cachedb-lp1274466 @@ -0,0 +1,59 @@ +#!/bin/sh +set -e + + +# +# main() +# +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" +setupenvironment +configarchitecture "i386" +confighashes 'MD5' 'SHA1' 'SHA256' 'SHA512' + +db_dump=db_dump +if command -v db_dump-5 >/dev/null 2>&1; then + db_dump=db_dump-5 +fi + +# gather the db and the deb, ensure mtime is not modified as its saved in the DB +cp -p "$TESTDIR/deb-lp1274466-cachedb.deb" foo_1_i386.deb +cp -p "$TESTDIR/cachedb-lp1274466-old-format.db" old-format.db + +# verify that the format is different +testsuccess aptftparchive --db new-format.db packages . +$db_dump new-format.db > new-format.dump +$db_dump old-format.db > old-format.dump +testfailure diff -u old-format.dump new-format.dump + +# ensure the new format as the sha512 +testsuccess grep 7da58ff901a40ecf42a730dc33198b182e9ba9ec98799fc2c2b6fabeeee40cc12a0e7cadb4b66764235c56e1009dbfe8a9a566fb1eedf47a992d1fff2cc3332c new-format.dump +# but the old format does not +testfailure grep 7da58ff901a40ecf42a730dc33198b182e9ba9ec98799fc2c2b6fabeeee40cc12a0e7cadb4b66764235c56e1009dbfe8a9a566fb1eedf47a992d1fff2cc3332c old-format.dump + +# regression test for corruption with previous generation of cachedb +testsuccessequal "Package: foo +Architecture: i386 +Version: 1 +Priority: optional +Section: others +Maintainer: Joe Sixpack <joe@example.org> +Installed-Size: 29 +Filename: ./foo_1_i386.deb +Size: 1270 +MD5sum: 85d0e908c1a897700e2c5dea72d7e3c0 +SHA1: 858b09169032b7925a0e463f46b6634243fc40ce +SHA256: 3750a2c9c6b5beee7f307564be3d51d3ec7cbb78fa4f0b47f84a7c41477bff59 +SHA512: 7da58ff901a40ecf42a730dc33198b182e9ba9ec98799fc2c2b6fabeeee40cc12a0e7cadb4b66764235c56e1009dbfe8a9a566fb1eedf47a992d1fff2cc3332c +Description: an autogenerated dummy foo=1/test + If you find such a package installed on your system, + something went horribly wrong! They are autogenerated + und used only by testcases and surf no other proposeā¦ +" aptftparchive --db old-format.db packages . + +# ensure that the db is updated and contains the new sha512 +$db_dump old-format.db > old-format.dump + +testsuccess grep 7da58ff901a40ecf42a730dc33198b182e9ba9ec98799fc2c2b6fabeeee40cc12a0e7cadb4b66764235c56e1009dbfe8a9a566fb1eedf47a992d1fff2cc3332c old-format.dump + + |