4 assert_correct_sources_file
() {
5 testsuccessequal
"Package: bar
14 7b57dd065e51de5905288a5104d4bef5 406 bar_1.0.dsc
15 d41d8cd98f00b204e9800998ecf8427e 0 bar_1.0.tar.gz
17 17a40b76715f393ab7fd6485c9392a02f1adf903 406 bar_1.0.dsc
18 da39a3ee5e6b4b0d3255bfef95601890afd80709 0 bar_1.0.tar.gz
20 d9d7507f66a89258b6920aca47747d7a30e0e64b09ecabbf02b2efbdabf840a9 406 bar_1.0.dsc
21 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 bar_1.0.tar.gz
23 ee0a9bfb6614159b45203fc29487d4f37387993ca0e6d6f27b80010498f3731d75753188ece307508ae9af0259bd11a6af15a1a38f0b87dbd5ea1273b7a7d53e 406 bar_1.0.dsc
24 cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e 0 bar_1.0.tar.gz
35 d144826e6f02831c1933e910c92cd7e0 171 foo_1.0.dsc
36 d41d8cd98f00b204e9800998ecf8427e 0 foo_1.0.tar.gz
38 979306aa3ccff3d61bba062bb6977e2493c6f907 171 foo_1.0.dsc
39 da39a3ee5e6b4b0d3255bfef95601890afd80709 0 foo_1.0.tar.gz
41 8c780af8b5a6d5b3c2e2f9518940beebea52ac6d6ad7b52c082dc925cfe5b532 171 foo_1.0.dsc
42 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 foo_1.0.tar.gz
44 3da0240fd764657c2f3661b4d750578a9a99b0580591b133756379d48117ebda87a5ed2467f513200d6e7eaf51422cbe91c15720eef7fb4bba2cc8ff81ebc547 171 foo_1.0.dsc
45 cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e 0 foo_1.0.tar.gz
46 " aptsortpkgs .
/aptarchive
/dists
/test
/main
/source
/Sources
-o APT
::SortPkgs
::Source
=true
49 create_source_files
() {
51 REQUEST_CLEARSIGN
="$2"
53 TARFILE
="aptarchive/pool/main/${NAME}_1.0.tar.gz"
54 DSC_FILE
="aptarchive/pool/main/${NAME}_1.0.dsc"
56 if [ "$REQUEST_CLEARSIGN" = "CLEARSIGN" ]; then
57 printf -- "-----BEGIN PGP SIGNED MESSAGE-----\n\n" > $DSC_FILE
59 cat >> $DSC_FILE << EOF
68 $(md5sum $TARFILE|cut -f1 -d' ') $(stat --print="%s" $TARFILE) ${NAME}_1.0.tar.gz
70 if [ "$REQUEST_CLEARSIGN" = "CLEARSIGN" ]; then
71 cat >> $DSC_FILE <<EOF
73 -----BEGIN PGP SIGNATURE-----
74 Version: GnuPG v1.4.11 (GNU/Linux)
76 iEYEARECAAYFAk3k/VoACgkQliSD4VZixzQxlgCgpav7j68z48qNTDFuT9fLqwT5
77 DFwAoIXatJFENEC371bMKTkUKlwZxQEk
79 -----END PGP SIGNATURE-----
84 create_clearsigned_source_files
() {
86 create_source_files
"$NAME" "CLEARSIGN"
92 TESTDIR
=$(readlink -f $(dirname $0))
95 configarchitecture
"i386"
97 msgtest
'Test apt-ftparchive source with missing hashes in .dsc'
99 mkdir -p aptarchive
/pool
/main
100 create_source_files foo
101 create_clearsigned_source_files bar
103 mkdir -p aptarchive
/dists
/test
/main
/i
18n
/
104 mkdir -p aptarchive
/dists
/test
/main
/source
/
106 mkdir aptarchive
-overrides
107 mkdir aptarchive
-cache
109 msgtest
'generate with --db option'
111 aptftparchive
--db .
/test.db sources pool
/main
/ -q=0 -o APT
::FTPArchive
::ShowCacheMisses
=1 > dists
/test
/main
/source
/Sources
2>stats
-out.txt
&& msgpass
|| msgfail
112 testsuccess
grep Misses stats
-out.txt
113 testfileequal
'../rootdir/tmp/testsuccess.output' ' Misses in Cache: 2'
115 assert_correct_sources_file
117 msgtest
'generate with --db option (again to ensure its in the cache)'
119 aptftparchive
--db .
/test.db sources pool
/main
/ -q=0 -o APT
::FTPArchive
::ShowCacheMisses
=1 > dists
/test
/main
/source
/Sources
2>stats
-out.txt
&& msgpass
|| msgfail
120 testsuccess
grep Misses stats
-out.txt
121 testfileequal
'../rootdir/tmp/testsuccess.output' ' Misses in Cache: 0'
123 assert_correct_sources_file
125 # get ready for the "apt-ftparchive generate" command
126 cat > apt
-ftparchive.conf
<<"EOF"
128 ArchiveDir "./aptarchive";
129 OverrideDir "./aptarchive-overrides";
130 CacheDir "./aptarchive-cache";
134 Packages::Compress ". gzip bzip2";
135 Contents::Compress ". gzip bzip2";
136 LongDescription "false";
140 BinCacheDB "packages-$(SECTION)-$(ARCH).db";
141 SrcCacheDB "sources-$(SECTION).db";
143 Directory "pool/$(SECTION)";
144 SrcDirectory "pool/$(SECTION)";
146 Sources "$(DIST)/$(SECTION)/source/Sources";
151 Architectures "source";
156 msgtest 'generate (empty cachedb)'
157 testsuccess aptftparchive generate apt-ftparchive.conf -q=0 -o APT::FTPArchive::ShowCacheMisses=1
158 cp rootdir/tmp/testsuccess.output stats-out.txt
159 testsuccess grep Misses stats-out.txt
160 testfileequal rootdir/tmp/testsuccess.output ' Misses in Cache: 2'
161 assert_correct_sources_file
163 msgtest 'generate again out of the cache'
164 rm -f ./aptarchive/dists/test/main/source/Sources
165 testsuccess aptftparchive generate apt-ftparchive.conf -q=0 -o APT::FTPArchive::ShowCacheMisses=1
166 cp rootdir/tmp/testsuccess.output stats-out.txt
167 testsuccess grep Misses stats-out.txt
168 testfileequal rootdir/tmp/testsuccess.output ' Misses in Cache: 0'
169 assert_correct_sources_file
171 # generate invalid files
172 mkdir aptarchive/pool/invalid
173 printf "meep" > aptarchive/pool/invalid/invalid_1.0.dsc
175 E: Could not find a record in the DSC 'aptarchive/pool/invalid/invalid_1.0.dsc'" aptftparchive sources aptarchive/pool/invalid
176 rm -f aptarchive/pool/invalid/invalid_1.0.dsc
178 printf "meep: yes" > aptarchive/pool/invalid/invalid_1.0.dsc
180 E: Could not find a Source entry in the DSC 'aptarchive/pool/invalid/invalid_1.0.dsc'" aptftparchive sources aptarchive/pool/invalid
181 rm -f aptarchive/pool/invalid/invalid_1.0.dsc
184 rm -f aptarchive/pool/main/*
185 testsuccess aptftparchive clean apt-ftparchive.conf -q=0 -o Debug::APT::FTPArchive::Clean=1
186 cp rootdir/tmp/testsuccess.output clean-out.txt
187 testsuccess grep unique clean-out.txt
188 testfileequal 'rootdir/tmp/testsuccess.output' "0 Number of unique keys in the tree"
189 testsuccess grep sources-main.db clean-out.txt
190 testfileequal 'rootdir/tmp/testsuccess.output' "sources-main.db"