]> git.saurik.com Git - apt.git/blob - test/integration/test-apt-ftparchive-cachedb
Fix the test suite again
[apt.git] / test / integration / test-apt-ftparchive-cachedb
1 #!/bin/sh
2 set -e
3
4 ensure_correct_packages_file() {
5 testequal "Package: foo
6 Architecture: i386
7 Version: 1
8 Priority: optional
9 Section: others
10 Maintainer: Joe Sixpack <joe@example.org>
11 $(dpkg-deb -I ./aptarchive/pool/main/foo_1_i386.deb | grep 'Installed-Size:' | sed 's#^ ##')
12 Filename: pool/main/foo_1_i386.deb" head -n8 ./aptarchive/dists/test/main/binary-i386/Packages
13 }
14
15 ensure_correct_contents_file() {
16 testfileequal ./aptarchive/dists/test/Contents-i386 "usr/bin/foo-i386 others/foo
17 usr/share/doc/foo/FEATURES others/foo
18 usr/share/doc/foo/changelog others/foo
19 usr/share/doc/foo/copyright others/foo"
20 }
21
22 #
23 # main()
24 #
25 TESTDIR=$(readlink -f $(dirname $0))
26 . $TESTDIR/framework
27 setupenvironment
28 configarchitecture 'i386'
29
30 mkdir -p aptarchive/dists/test/main/i18n/
31 mkdir -p aptarchive/dists/test/main/source/
32 mkdir -p aptarchive/dists/test/main/binary-i386
33 mkdir -p aptarchive/pool/main
34
35 mkdir aptarchive-overrides
36 mkdir aptarchive-cache
37 cat > ftparchive.conf <<"EOF"
38 Dir {
39 ArchiveDir "./aptarchive";
40 OverrideDir "./aptarchive-overrides";
41 CacheDir "./aptarchive-cache";
42 };
43
44 Default {
45 Packages::Compress ". gzip bzip2";
46 Contents::Compress ". gzip bzip2";
47 LongDescription "false";
48 };
49
50 TreeDefault {
51 BinCacheDB "packages-$(SECTION)-$(ARCH).db";
52
53 Directory "pool/$(SECTION)";
54 SrcDirectory "pool/$(SECTION)";
55
56 Packages "$(DIST)/$(SECTION)/binary-$(ARCH)/Packages";
57 Contents "$(DIST)/Contents-$(ARCH)";
58 };
59
60 Tree "dists/test" {
61 Sections "main";
62 Architectures "i386";
63
64 };
65 EOF
66
67 # build one pacakge
68 buildsimplenativepackage 'foo' 'i386' '1' 'test'
69 mv incoming/* aptarchive/pool/main/
70
71 # generate (empty cachedb)
72 testsuccess aptftparchive generate ftparchive.conf -q=0 -o APT::FTPArchive::ShowCacheMisses=1
73 cp rootdir/tmp/testsuccess.output stats-out.txt
74 ensure_correct_packages_file
75 ensure_correct_contents_file
76 testsuccess grep Misses stats-out.txt
77 testfileequal 'rootdir/tmp/testsuccess.output' ' Misses in Cache: 2
78 dists/test/Contents-i386: New 402 B Misses in Cache: 0'
79
80 # generate again
81 testsuccess aptftparchive generate ftparchive.conf -q=0 -o APT::FTPArchive::ShowCacheMisses=1
82 cp rootdir/tmp/testsuccess.output stats-out.txt
83 ensure_correct_packages_file
84 ensure_correct_contents_file
85 testsuccess grep Misses stats-out.txt
86 testfileequal 'rootdir/tmp/testsuccess.output' ' Misses in Cache: 0
87 dists/test/Contents-i386: Misses in Cache: 0'
88
89 # and again (with removing the Packages file)
90 rm -f ./aptarchive/dists/test/main/binary-i386/*
91 rm -f ./aptarchive/dists/test/Contents-i386
92 testsuccess aptftparchive generate ftparchive.conf -q=0 -o APT::FTPArchive::ShowCacheMisses=1
93 cp rootdir/tmp/testsuccess.output stats-out.txt
94 ensure_correct_packages_file
95 ensure_correct_contents_file
96 testsuccess grep Misses stats-out.txt
97 testfileequal 'rootdir/tmp/testsuccess.output' ' Misses in Cache: 0
98 dists/test/Contents-i386: New 402 B Misses in Cache: 0'
99
100 # and clean
101 rm -rf aptarchive/pool/main/*
102 testsuccessequal "packages-main-i386.db" aptftparchive clean ftparchive.conf -q=0
103 testsuccess aptftparchive clean ftparchive.conf -q=0 -o Debug::APT::FTPArchive::Clean=1
104 cp rootdir/tmp/testsuccess.output clean-out.txt
105 testsuccessequal "0 Number of unique keys in the tree" grep unique clean-out.txt
106 testsuccessequal "packages-main-i386.db" grep packages-main-i386.db clean-out.txt