|
|
@@ -0,0 +1,93 @@
|
|
|
+#!/bin/sh
|
|
|
+set -e
|
|
|
+
|
|
|
+ensure_correct_packages_file() {
|
|
|
+ testequal "Package: foo
|
|
|
+Priority: optional
|
|
|
+Section: others
|
|
|
+Installed-Size: 29
|
|
|
+Maintainer: Joe Sixpack <joe@example.org>
|
|
|
+Architecture: i386
|
|
|
+Version: 1
|
|
|
+Filename: pool/main/foo_1_i386.deb" head -n8 ./aptarchive/dists/test/main/binary-i386/Packages
|
|
|
+}
|
|
|
+
|
|
|
+ensure_correct_contents_file() {
|
|
|
+ testequal "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" cat ./aptarchive/dists/test/Contents-i386
|
|
|
+}
|
|
|
+
|
|
|
+#
|
|
|
+# 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 pacakge
|
|
|
+buildsimplenativepackage 'foo' 'i386' '1' 'test'
|
|
|
+mv incoming/* aptarchive/pool/main/
|
|
|
+
|
|
|
+# generate (empty cachedb)
|
|
|
+aptftparchive generate ftparchive.conf -o APT::FTPArchive::ShowCacheMisses=1 2> stats-out.txt
|
|
|
+ensure_correct_packages_file
|
|
|
+ensure_correct_contents_file
|
|
|
+testequal " Misses in Cache: 2
|
|
|
+ dists/test/Contents-i386: New 402 B Misses in Cache: 0" grep Misses stats-out.txt
|
|
|
+
|
|
|
+# generate again
|
|
|
+aptftparchive generate ftparchive.conf -o APT::FTPArchive::ShowCacheMisses=1 2> stats-out.txt
|
|
|
+ensure_correct_packages_file
|
|
|
+ensure_correct_contents_file
|
|
|
+testequal " 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
|
|
|
+aptftparchive generate ftparchive.conf -o APT::FTPArchive::ShowCacheMisses=1 2> stats-out.txt
|
|
|
+ensure_correct_packages_file
|
|
|
+ensure_correct_contents_file
|
|
|
+testequal " Misses in Cache: 0
|
|
|
+ dists/test/Contents-i386: New 402 B Misses in Cache: 0" grep Misses stats-out.txt
|
|
|
+
|