X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/276e51dd701590d187ca2999722329518af96121..ff02180ca8abeec0cc1913abf4ad6697d7b25a36:/test/integration/test-hashsum-verification

diff --git a/test/integration/test-hashsum-verification b/test/integration/test-hashsum-verification
index e77efb46e..a514b85e2 100755
--- a/test/integration/test-hashsum-verification
+++ b/test/integration/test-hashsum-verification
@@ -1,8 +1,8 @@
 #!/bin/sh
 set -e
 
-TESTDIR=$(readlink -f $(dirname $0))
-. $TESTDIR/framework
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
 
 setupenvironment
 configarchitecture "i386"
@@ -17,9 +17,9 @@ prepare() {
 		DATE='now + 6 days'
 	fi
 	for release in $(find rootdir/var/lib/apt/lists 2> /dev/null); do
-		touch -d 'now - 6 hours' $release
+		touch -d 'now - 6 hours' "$release"
 	done
-	cp $1 aptarchive/Packages
+	cp "$1" aptarchive/Packages
 	find aptarchive -name 'Release' -delete
 	compressfile aptarchive/Packages
         # create Release file with incorret checksums
@@ -44,36 +44,39 @@ SHA256:
  xb306e66e5e6a7169c8d281a888539d1fdca9cecc99ae605717df579d5b9c166              527 Packages.lzma
  x9585d0e66b74c9385727fbea11fea9ab33c716b18a32f3036f037a2b9b57120              572 Packages.xz
 EOF
-        cp aptarchive/Release aptarchive/InRelease
 }
 
-# fake our downloadable file
-touch aptarchive/apt.deb
-
 PKGFILE="${TESTDIR}/$(echo "$(basename $0)" | sed 's#^test-#Packages-#')"
 
 runtest() {
-	prepare ${PKGFILE}
+	prepare "${PKGFILE}"
 	rm -rf rootdir/var/lib/apt/lists
 	signreleasefiles 'Joe Sixpack'
-	find aptarchive/ -name "$DELETEFILE" -delete
 
-        # test signed release file
-        msgtest 'apt-get update gets the expected hashsum mismatch'
-	aptget update 2>&1 | grep "Hash Sum mismatch" > /dev/null && msgpass || msgfail
-        msgtest 'No package from the source available'
-        [ "$(aptcache show apt 2>&1)" = "E: No packages found" ] && msgpass || msgfail
-        msgtest 'No Packages file in /var/lib/apt/lists'
-        [ "$(ls rootdir/var/lib/apt/lists/*Package* 2>/dev/null)" = "" ] && msgpass || msgfail 
-        
+	# test signed release file
+	msgtest 'apt-get update gets the expected hashsum mismatch'
+	testfailure aptget update
+	testsuccess grep "Hash Sum mismatch" rootdir/tmp/testfailure.output
+	msgtest 'No package from the source available'
+	testfailureequal --nomsg 'N: Unable to locate package apt
+E: No packages found' aptcache show apt
+	msgtest 'No Packages file in /var/lib/apt/lists'
+	testempty find rootdir/var/lib/apt/lists -maxdepth 1 -name '*Package*'
+
         # now with the unsigned Release file
         rm -rf rootdir/var/lib/apt/lists
-        rm aptarchive/InRelease aptarchive/Release.gpg
-        msgtest 'unsigned apt-get update gets the expected hashsum mismatch'
-	aptget update 2>&1 | grep "Hash Sum mismatch" > /dev/null && msgpass || msgfail
-
-
+        rm -f aptarchive/InRelease aptarchive/Release.gpg
+	msgtest 'unsigned apt-get update gets the expected hashsum mismatch'
+	testfailure --nomsg aptget update --allow-insecure-repositories
+	testsuccess grep "Hash Sum mismatch" rootdir/tmp/testfailure.output
 }
 
-runtest
-
+for COMPRESSEDINDEXES in 'false' 'true'; do
+	echo "Acquire::GzipIndexes \"$COMPRESSEDINDEXES\";" > rootdir/etc/apt/apt.conf.d/compressindexes
+	if $COMPRESSEDINDEXES; then
+		msgmsg 'Run tests with GzipIndexes enabled'
+	else
+		msgmsg 'Run tests with GzipIndexes disabled'
+	fi
+        runtest
+done