]> git.saurik.com Git - apt.git/blobdiff - test/integration/test-apt-update-not-modified
Allow lowering trust level of a hash via config
[apt.git] / test / integration / test-apt-update-not-modified
index bac33d5318c0b533ed6ffe2c3ed49e3e5800599a..b1f801bc519c5548d7a6d4674bb2268012dfa498 100755 (executable)
@@ -1,13 +1,13 @@
 #!/bin/sh
 set -e
 
-TESTDIR=$(readlink -f $(dirname $0))
-. $TESTDIR/framework
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
 
 setupenvironment
 configarchitecture 'amd64' 'i386'
 
-insertpackage 'unstable' 'apt' 'all' '1.0'
+insertpackage 'unstable' 'apt' 'amd64,i386' '1.0'
 
 setupaptarchive --no-update
 
@@ -20,20 +20,21 @@ methodtest() {
        listcurrentlistsdirectory > listsdir.lst
 
        # hit again with a good cache
-       testsuccessequal "Hit $1 unstable InRelease
+       testsuccessequal "Hit:1 $1 unstable InRelease
 Reading package lists..." aptget update
        testfileequal 'listsdir.lst' "$(listcurrentlistsdirectory)"
 
        # drop an architecture, which means the file should be gone now
        configarchitecture 'i386'
        sed '/_binary-amd64_Packages/ d' listsdir.lst > listsdir-without-amd64.lst
-       testsuccessequal "Hit $1 unstable InRelease
+       testsuccessequal "Hit:1 $1 unstable InRelease
 Reading package lists..." aptget update
        testfileequal 'listsdir-without-amd64.lst' "$(listcurrentlistsdirectory)"
 
        # readd arch so its downloaded again…
        configarchitecture 'amd64' 'i386'
        # … but oh noes, hashsum mismatch!
+        SIZE=$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz')
        find aptarchive/dists/unstable/main/binary-amd64/ -type f -delete
        cat >> aptarchive/dists/unstable/main/binary-amd64/Packages <<EOF
 
@@ -42,18 +43,20 @@ Architecture: amd64
 Version: 1
 EOF
        compressfile aptarchive/dists/unstable/main/binary-amd64/Packages
-       testfailureequal "Hit $1 unstable InRelease
-Get:1 $1 unstable/main amd64 Packages [$(stat -c '%s' 'aptarchive/dists.good/unstable/main/binary-amd64/Packages.gz') B]
-W: Failed to fetch $1/dists/unstable/main/binary-amd64/Packages.gz  Hash Sum mismatch
-
+       testfailureequal "Hit:1 $1 unstable InRelease
+Get:2 $1 unstable/main amd64 Packages [$SIZE B]
+Err:2 $1 unstable/main amd64 Packages
+  Hash Sum mismatch
+Reading package lists...
+E: Failed to fetch $1/dists/unstable/main/binary-amd64/Packages.gz  Hash Sum mismatch
 E: Some index files failed to download. They have been ignored, or old ones used instead." aptget update
        testfileequal 'listsdir-without-amd64.lst' "$(listcurrentlistsdirectory)"
        rm -rf aptarchive/dists
        cp -a aptarchive/dists.good aptarchive/dists
 
        # … now everything is fine again
-       testsuccessequal "Hit $1 unstable InRelease
-Get:1 $1 unstable/main amd64 Packages [$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') B]
+       testsuccessequal "Hit:1 $1 unstable InRelease
+Get:2 $1 unstable/main amd64 Packages [$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') B]
 Reading package lists..." aptget update
        testfileequal 'listsdir.lst' "$(listcurrentlistsdirectory)"
 
@@ -72,45 +75,89 @@ Reading package lists..." aptget update
        listcurrentlistsdirectory > listsdir.lst
 
        # hit again with a good cache
-       testsuccessequal "Ign $1 unstable InRelease
+       testsuccessequal "Ign:1 $1 unstable InRelease
   404  Not Found
-Hit $1 unstable Release
+Hit:2 $1 unstable Release
 Reading package lists..." aptget update
        testfileequal 'listsdir.lst' "$(listcurrentlistsdirectory)"
 
        # drop an architecture, which means the file should be gone now
        configarchitecture 'i386'
        sed '/_binary-amd64_Packages/ d' listsdir.lst > listsdir-without-amd64.lst
-       testsuccessequal "Ign $1 unstable InRelease
+       testsuccessequal "Ign:1 $1 unstable InRelease
   404  Not Found
-Hit $1 unstable Release
+Hit:2 $1 unstable Release
 Reading package lists..." aptget update
        testfileequal 'listsdir-without-amd64.lst' "$(listcurrentlistsdirectory)"
 
-       # readd arch so its downloaded again
+       # readd arch so its downloaded again
        configarchitecture 'amd64' 'i386'
-       testsuccessequal "Ign $1 unstable InRelease
+       # … but oh noes, hashsum mismatch!
+        SIZE=$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz')
+       find aptarchive/dists/unstable/main/binary-amd64/ -type f -delete
+       cat >> aptarchive/dists/unstable/main/binary-amd64/Packages <<EOF
+
+Package: thisisbad
+Architecture: amd64
+Version: 1
+EOF
+       compressfile aptarchive/dists/unstable/main/binary-amd64/Packages
+       testfailureequal "Ign:1 $1 unstable InRelease
+  404  Not Found
+Hit:2 $1 unstable Release
+Get:4 $1 unstable/main amd64 Packages [$SIZE B]
+Err:4 $1 unstable/main amd64 Packages
+  Hash Sum mismatch
+Reading package lists...
+E: Failed to fetch $1/dists/unstable/main/binary-amd64/Packages.gz  Hash Sum mismatch
+E: Some index files failed to download. They have been ignored, or old ones used instead." aptget update
+       testfileequal 'listsdir-without-amd64.lst' "$(listcurrentlistsdirectory)"
+       rm -rf aptarchive/dists
+       cp -a aptarchive/dists.good aptarchive/dists
+       find aptarchive/dists -name 'InRelease' -delete
+
+       # … now everything is fine again
+       testsuccessequal "Ign:1 $1 unstable InRelease
   404  Not Found
-Hit $1 unstable Release
-Get:1 $1 unstable/main amd64 Packages [$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') B]
+Hit:2 $1 unstable Release
+Get:4 $1 unstable/main amd64 Packages [$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') B]
 Reading package lists..." aptget update
        testfileequal 'listsdir.lst' "$(listcurrentlistsdirectory)"
 
        webserverconfig 'aptwebserver::support::modified-since' 'false'
        webserverconfig 'aptwebserver::support::last-modified' 'false'
-       testsuccessequal "Ign $1 unstable InRelease
+       testsuccessequal "Ign:1 $1 unstable InRelease
   404  Not Found
-Get:1 $1 unstable Release [$(stat -c '%s' 'aptarchive/dists/unstable/Release') B]
+Get:2 $1 unstable Release [$(stat -c '%s' 'aptarchive/dists/unstable/Release') B]
 Reading package lists..." aptget update
        webserverconfig 'aptwebserver::support::modified-since' 'true'
        webserverconfig 'aptwebserver::support::last-modified' 'true'
 
        rm -rf aptarchive/dists
        cp -a aptarchive/dists.good aptarchive/dists
+
+       # new release file, but the indexes are the same
+       redatereleasefiles '+2 hours'
+
+       rm -rf rootdir/var/lib/apt/lists.good
+       cp -a rootdir/var/lib/apt/lists rootdir/var/lib/apt/lists.good
+       testsuccessequal "Get:1 $1 unstable InRelease [$(stat -c '%s' 'aptarchive/dists/unstable/InRelease') B]
+Reading package lists..." aptget update
+
+       rm -rf rootdir/var/lib/apt/lists
+       cp -a rootdir/var/lib/apt/lists.good rootdir/var/lib/apt/lists
+       find rootdir/var/lib/apt/lists -name '*_Packages*' -delete
+       testsuccessequal "Get:1 $1 unstable InRelease [$(stat -c '%s' 'aptarchive/dists/unstable/InRelease') B]
+Get:2 $1 unstable/main amd64 Packages [$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') B]
+Get:3 $1 unstable/main i386 Packages [$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-i386/Packages.gz') B]
+Reading package lists..." aptget update
+
+       rm -rf aptarchive/dists
+       cp -a aptarchive/dists.good aptarchive/dists
 }
 
 changetowebserver
-methodtest 'http://localhost:8080'
+methodtest "http://localhost:${APTHTTPPORT}"
 
 changetohttpswebserver
-methodtest 'https://localhost:4433'
+methodtest "https://localhost:${APTHTTPSPORT}"