]> git.saurik.com Git - apt.git/commitdiff
Merge remote-tracking branch 'upstream/debian/experimental' into feature/no-more...
authorMichael Vogt <mvo@ubuntu.com>
Thu, 6 Nov 2014 07:55:06 +0000 (08:55 +0100)
committerMichael Vogt <mvo@ubuntu.com>
Thu, 6 Nov 2014 07:55:06 +0000 (08:55 +0100)
Conflicts:
apt-pkg/acquire-item.cc

1  2 
apt-pkg/acquire-item.cc
apt-pkg/acquire-item.h
test/integration/test-apt-update-filesize-mismatch
test/integration/test-apt-update-hashsum-mismatch

Simple merge
Simple merge
index 0000000000000000000000000000000000000000,b484c5161645d36a03a456b7f74a3a426101ee62..f78b83b5ff6d1ca858fbe303db948e810235ff49
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,55 +1,50 @@@
 -              TEST='testfailure'
 -              if expr match "$COMPRESSFILE" '^.*Translation-.*$' >/dev/null; then
 -                      TEST='testsuccess'
 -                      unset COMPRESSFILE
 -              fi
 -              $TEST aptget update -o Debug::pkgAcquire::Worker=1
 -              cp rootdir/tmp/${TEST}.output rootdir/tmp/update.output
+ #!/bin/sh
+ set -e
+ TESTDIR=$(readlink -f $(dirname $0))
+ . $TESTDIR/framework
+ setupenvironment
+ configarchitecture 'i386'
+ configcompression 'gz'
+ insertpackage 'testing' 'foo' 'all' '1'
+ insertpackage 'testing' 'foo2' 'all' '1'
+ insertsource 'testing' 'foo' 'all' '1'
+ insertsource 'testing' 'foo2' 'all' '1'
+ setupaptarchive --no-update
+ changetowebserver
+ find aptarchive \( -name 'Packages' -o -name 'Sources' -o -name 'Translation-en' \) -delete
+ for release in $(find aptarchive -name 'Release'); do
+       cp "$release" "${release}.backup"
+ done
+ testsuccess aptget update
+ testsuccess aptcache show foo
+ testsuccess aptget install foo -s
+ for get in $(sed -n 's#^GET /\([^ ]\+\.gz\) HTTP.\+$#\1#p' aptarchive/webserver.log); do
+       for ext in '' '.gz'; do
+               COMPRESSFILE="$get"
+               get="${get}${ext}"
+               FILE="$(basename "$get" '.gz')"
+               msgmsg 'Test filesize mismatch with file' "$FILE"
+               rm -rf rootdir/var/lib/apt/lists
+               for release in $(find aptarchive -name 'Release'); do
+                       SIZE="$(awk "/$FILE\$/ { print \$2; exit }" "${release}.backup")"
+                       sed "s# $SIZE # $(($SIZE + 111)) #" "${release}.backup" > "$release"
+               done
+               signreleasefiles
 -              $TEST aptcache show foo
 -              $TEST aptget install foo -s
++              testfailure aptget update -o Debug::pkgAcquire::Worker=1
++              cp rootdir/tmp/testfailure.output rootdir/tmp/update.output
+               testsuccess grep -E "$(basename -s '.gz' "$COMPRESSFILE").*Hash Sum mismatch" rootdir/tmp/update.output
++              testfailure aptcache show foo
++              testfailure aptget install foo -s
+               testfailure aptcache show bar
+               testfailure aptget install bar -s
+       done
+ done
index 0000000000000000000000000000000000000000,747418c53872d7ea3b00071f9997646f3fc74833..c2c5b388797d57c9aea4ee0b778fb128859605e8
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,49 +1,44 @@@
 -      TEST='testfailure'
 -      if expr match "$get" '^.*Translation-.*$' >/dev/null; then
 -              TEST='testsuccess'
 -              unset get
 -      fi
 -      $TEST aptget update
 -      cp rootdir/tmp/${TEST}.output rootdir/tmp/update.output
+ #!/bin/sh
+ set -e
+ TESTDIR=$(readlink -f $(dirname $0))
+ . $TESTDIR/framework
+ setupenvironment
+ configarchitecture 'i386'
+ configcompression 'gz'
+ insertpackage 'testing' 'foo' 'all' '1'
+ insertpackage 'testing' 'foo2' 'all' '1'
+ insertsource 'testing' 'foo' 'all' '1'
+ insertsource 'testing' 'foo2' 'all' '1'
+ setupaptarchive --no-update
+ changetowebserver
+ echo 'Package: bar
+ Maintainer: Doctor Evil <evil@example.com>
+ Description: come to the dark side
+ ' > aptarchive/DoctorEvil
+ compressfile aptarchive/DoctorEvil
+ find aptarchive \( -name 'Packages' -o -name 'Sources' -o -name 'Translation-en' \) -delete
+ testsuccess aptget update
+ testsuccess aptcache show foo
+ testsuccess aptget install foo -s
+ for get in $(sed -n 's#^GET /\([^ ]\+\.gz\) HTTP.\+$#\1#p' aptarchive/webserver.log); do
+       msgmsg 'Test hashsum mismatch with file' "$get"
+       rm -rf rootdir/var/lib/apt/lists
+       webserverconfig 'aptwebserver::overwrite' ''
+       webserverconfig "aptwebserver::overwrite::$(printf '%s' "${get}" | sed 's#/#%2F#g' )::filename" '%2FDoctorEvil.gz'
 -      $TEST aptcache show foo
 -      $TEST aptget install foo -s
++      testfailure aptget update
++      cp rootdir/tmp/testfailure.output rootdir/tmp/update.output
+       testsuccess grep -E "$(basename -s '.gz' "$get").*Hash Sum mismatch" rootdir/tmp/update.output
++      testfailure aptcache show foo
++      testfailure aptget install foo -s
+       testfailure aptcache show bar
+       testfailure aptget install bar -s
+ done