Parcourir la source

cleanup, fix test-apt-update-unauth as the behavior of apt changed

Michael Vogt il y a 11 ans
Parent
commit
c8aa88aa2c
3 fichiers modifiés avec 29 ajouts et 12 suppressions
  1. 6 3
      apt-pkg/acquire-item.cc
  2. 0 4
      apt-pkg/acquire-item.h
  3. 23 5
      test/integration/test-apt-update-unauth

+ 6 - 3
apt-pkg/acquire-item.cc

@@ -1051,7 +1051,8 @@ void pkgAcqIndex::ReverifyAfterIMS()
    to the uncompressed version of the file. If this is so the file
    to the uncompressed version of the file. If this is so the file
    is copied into the partial directory. In all other cases the file
    is copied into the partial directory. In all other cases the file
    is decompressed with a compressed uri. */
    is decompressed with a compressed uri. */
-void pkgAcqIndex::Done(string Message,unsigned long long Size,HashStringList const &Hashes,
+void pkgAcqIndex::Done(string Message, unsigned long long Size,
+                       HashStringList const &Hashes,
 		       pkgAcquire::MethodConfig *Cfg)
 		       pkgAcquire::MethodConfig *Cfg)
 {
 {
    Item::Done(Message,Size,Hashes,Cfg);
    Item::Done(Message,Size,Hashes,Cfg);
@@ -1164,7 +1165,7 @@ void pkgAcqIndex::Done(string Message,unsigned long long Size,HashStringList con
    string decompProg;
    string decompProg;
 
 
    // If we enable compressed indexes, queue for hash verification
    // If we enable compressed indexes, queue for hash verification
-   if (_config->FindB("Acquire::GzipIndexes",false) && compExt == "gz" && !Local) 
+   if (_config->FindB("Acquire::GzipIndexes",false) && compExt == "gz")
    {
    {
       DestFile = _config->FindDir("Dir::State::lists");
       DestFile = _config->FindDir("Dir::State::lists");
       DestFile += URItoFileName(RealURI) + ".gz";
       DestFile += URItoFileName(RealURI) + ".gz";
@@ -1682,6 +1683,8 @@ void pkgAcqMetaIndex::AuthDone(string Message)				/*{{{*/
       std::cerr << "Signature verification succeeded: "
       std::cerr << "Signature verification succeeded: "
                 << DestFile << std::endl;
                 << DestFile << std::endl;
 
 
+// we ensure this by other means
+#if 0 
    // do not trust any previously unverified content that we may have
    // do not trust any previously unverified content that we may have
    string LastGoodSigFile = _config->FindDir("Dir::State::lists").append("partial/").append(URItoFileName(RealURI));
    string LastGoodSigFile = _config->FindDir("Dir::State::lists").append("partial/").append(URItoFileName(RealURI));
    if (DestFile != SigFile)
    if (DestFile != SigFile)
@@ -1702,7 +1705,7 @@ void pkgAcqMetaIndex::AuthDone(string Message)				/*{{{*/
          unlink(index.c_str());
          unlink(index.c_str());
       }
       }
    }
    }
-
+#endif
 
 
    // Download further indexes with verification
    // Download further indexes with verification
    QueueIndexes(true);
    QueueIndexes(true);

+ 0 - 4
apt-pkg/acquire-item.h

@@ -859,10 +859,6 @@ class pkgAcqIndex : public pkgAcqBaseIndex
     */
     */
    bool Erase;
    bool Erase;
 
 
-   // FIXME:
-   // Unused, used to be used to verify that "Packages: " header was there
-   bool __DELME_ON_NEXT_ABI_BREAK_Verify;
-
    /** \brief The object that is actually being fetched (minus any
    /** \brief The object that is actually being fetched (minus any
     *  compression-related extensions).
     *  compression-related extensions).
     */
     */

+ 23 - 5
test/integration/test-apt-update-unauth

@@ -17,23 +17,41 @@ insertsource 'unstable' 'foo' 'all' '1.0'
 setupaptarchive
 setupaptarchive
 changetowebserver
 changetowebserver
 
 
+# FIXME: 
+#  - also check the unauth -> auth success case, i.e. that all files are
+#    reverified
 runtest() {
 runtest() {
     # start unauthenticated
     # start unauthenticated
     find rootdir/var/lib/apt/lists/ -type f | xargs rm -f
     find rootdir/var/lib/apt/lists/ -type f | xargs rm -f
     rm -f aptarchive/dists/unstable/*Release*
     rm -f aptarchive/dists/unstable/*Release*
+    # remove uncompressed version
+    find aptarchive/ -name Packages | xargs rm -f
     aptget update -qq
     aptget update -qq
 
 
     # become authenticated
     # become authenticated
     generatereleasefiles
     generatereleasefiles
     signreleasefiles
     signreleasefiles
 
 
-    # and ensure we do download the data again
-    msgtest "Check that the data is check when going to authenticated"
-    if aptget update |grep -q Hit; then
-        msgfail
-    else
+    # and ensure we re-check the downloaded data
+    msgtest "Check rollback on going from unauth -> auth"
+
+    # change the local packages file
+    PKGS=$(ls rootdir/var/lib/apt/lists/*Packages*)
+    echo "meep" > $PKGS
+    ls -l rootdir/var/lib/apt/lists > lists.before
+
+    # update and ensure all is reverted on the hashsum failure
+    aptget update -o Debug::Acquire::Transaction=1 -o Debug::pkgAcquire::Auth=1 -o Debug::pkgAcquire::worker=0 > output.log 2>&1 || true
+
+    # ensure we have before what we have after
+    ls -l rootdir/var/lib/apt/lists > lists.after
+    if diff -u lists.before lists.after; then
         msgpass
         msgpass
+    else
+        #cat output.log
+        msgfail
     fi
     fi
+
 }
 }
 
 
 for COMPRESSEDINDEXES in 'false' 'true'; do
 for COMPRESSEDINDEXES in 'false' 'true'; do