]> git.saurik.com Git - apt.git/blobdiff - test/integration/test-apt-ftparchive-src-cachedb
Use _apt as our unprivileged user name
[apt.git] / test / integration / test-apt-ftparchive-src-cachedb
index 3a5507c213e2f21e622637dc9474e2741359e7eb..e7b148530eec5cceefe5b64f0632311243835f18 100755 (executable)
@@ -3,9 +3,9 @@ set -e
 
 assert_correct_sources_file() {
     testequal "Package: bar
-Binary: bar
-Version: 1.0
 Architecture: all
+Version: 1.0
+Binary: bar
 Format: 3.0 (native)
 Directory: pool/main
 Files:
@@ -24,9 +24,9 @@ Checksums-Sha512:
  cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e 0 bar_1.0.tar.gz
 
 Package: foo
-Binary: foo
-Version: 1.0
 Architecture: all
+Version: 1.0
+Binary: foo
 Format: 3.0 (native)
 Directory: pool/main
 Files:
@@ -43,7 +43,7 @@ Checksums-Sha256:
 Checksums-Sha512:
  3da0240fd764657c2f3661b4d750578a9a99b0580591b133756379d48117ebda87a5ed2467f513200d6e7eaf51422cbe91c15720eef7fb4bba2cc8ff81ebc547 171 foo_1.0.dsc
  cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e 0 foo_1.0.tar.gz
-" cat ./aptarchive/dists/test/main/source/Sources
+" aptsortpkgs ./aptarchive/dists/test/main/source/Sources
 }
 
 create_source_files() {
@@ -105,6 +105,30 @@ mkdir -p aptarchive/dists/test/main/source/
 
 mkdir aptarchive-overrides
 mkdir aptarchive-cache
+
+
+
+# generate with --db option
+(cd aptarchive && aptftparchive --db ./test.db sources pool/main/ \
+    -o APT::FTPArchive::ShowCacheMisses=1  \
+    > dists/test/main/source/Sources \
+    2> stats-out.txt
+    testequal " Misses in Cache: 2" grep Misses stats-out.txt
+)
+assert_correct_sources_file
+
+# generate with --db option (again to ensure its in the cache)
+(cd aptarchive && aptftparchive --db ./test.db sources pool/main/ \
+    -o APT::FTPArchive::ShowCacheMisses=1  \
+    > dists/test/main/source/Sources \
+    2> stats-out.txt  
+    testequal " Misses in Cache: 0" grep Misses stats-out.txt
+)
+assert_correct_sources_file
+
+
+
+# get ready for the "apt-ftparchive generate" command
 cat > apt-ftparchive.conf <<"EOF"
 Dir {
   ArchiveDir "./aptarchive";
@@ -135,7 +159,6 @@ Tree "dists/test" {
 };
 EOF
 
-
 # generate (empty cachedb)
 aptftparchive generate apt-ftparchive.conf -o APT::FTPArchive::ShowCacheMisses=1 2> stats-out.txt
 testequal " Misses in Cache: 2" grep Misses stats-out.txt
@@ -148,10 +171,17 @@ aptftparchive generate apt-ftparchive.conf -o APT::FTPArchive::ShowCacheMisses=1
 testequal " Misses in Cache: 0" grep Misses stats-out.txt
 assert_correct_sources_file
 
+
+
 # generate invalid files
 mkdir aptarchive/pool/invalid
 printf "meep" > aptarchive/pool/invalid/invalid_1.0.dsc
 testequal "
+E: Could not find a record in the DSC 'aptarchive/pool/invalid/invalid_1.0.dsc'" aptftparchive sources aptarchive/pool/invalid
+rm -f aptarchive/pool/invalid/invalid_1.0.dsc
+
+printf "meep: yes" > aptarchive/pool/invalid/invalid_1.0.dsc
+testequal "
 E: Could not find a Source entry in the DSC 'aptarchive/pool/invalid/invalid_1.0.dsc'" aptftparchive sources aptarchive/pool/invalid
 rm -f aptarchive/pool/invalid/invalid_1.0.dsc
 
@@ -159,4 +189,10 @@ dd if=/dev/zero of="aptarchive/pool/invalid/toobig_1.0.dsc" bs=1k count=129 2>/d
 testequal "
 E: DSC file 'aptarchive/pool/invalid/toobig_1.0.dsc' is too large!" aptftparchive sources aptarchive/pool/invalid
 
+# ensure clean works
+rm -f aptarchive/pool/main/*
+aptftparchive clean apt-ftparchive.conf -o Debug::APT::FTPArchive::Clean=1 > clean-out.txt 2>&1 
+testequal "0   Number of unique keys in the tree" grep unique clean-out.txt
+testequal "sources-main.db" grep sources-main.db clean-out.txt
+