summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2015-09-13 17:25:23 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2015-09-14 15:22:19 +0200
commitc5ede4cac6e6496ce19ccea3313ac6b49ba5e8d6 (patch)
treef9175998cf276df229750904d637b8e58841a7cf
parent9e4464914bcc5c896d81f7ca1948f9bfbfb50886 (diff)
tests: use SHA1 checksum only by default in tests
This is mostly a small speedup for the testcases, but it is also handy to document which tests actually deal with a specific hash compared to those which 'just' need some hash which can be important while adding new hashes. Git-Dch: Ignore
-rw-r--r--test/integration/framework76
-rwxr-xr-xtest/integration/test-apt-by-hash-update1
-rwxr-xr-xtest/integration/test-apt-ftparchive-by-hash1
-rwxr-xr-xtest/integration/test-apt-ftparchive-cachedb-lp12744661
-rwxr-xr-xtest/integration/test-apt-ftparchive-src-cachedb1
-rwxr-xr-xtest/integration/test-apt-get-download1
-rwxr-xr-xtest/integration/test-apt-update-file1
-rwxr-xr-xtest/integration/test-pdiff-usage1
-rwxr-xr-xtest/integration/test-ubuntu-bug-1078697-missing-source-hashes11
9 files changed, 52 insertions, 42 deletions
diff --git a/test/integration/framework b/test/integration/framework
index 322c74a21..c830d852b 100644
--- a/test/integration/framework
+++ b/test/integration/framework
@@ -368,6 +368,7 @@ EOF
echo "Acquire::https::CaInfo \"${TMPWORKINGDIRECTORY}/rootdir/etc/webserver.pem\";" > rootdir/etc/apt/apt.conf.d/99https
echo "Apt::Cmd::Disable-Script-Warning \"1\";" > rootdir/etc/apt/apt.conf.d/apt-binary
configcompression '.' 'gz' #'bz2' 'lzma' 'xz'
+ confighashes 'SHA1' # these are tests, not security best-practices
# create some files in /tmp and look at user/group to get what this means
TEST_DEFAULT_USER="$USER"
@@ -513,7 +514,22 @@ configcompression() {
shift
done > ${TMPWORKINGDIRECTORY}/rootdir/etc/testcase-compressor.conf
}
-
+confighashes() {
+ {
+ echo 'APT::FTPArchive {'
+ {
+ while [ -n "$1" ]; do
+ printf "$1" | tr 'a-z' 'A-Z'
+ printf "\t\"true\";\n"
+ shift
+ done
+ for h in 'MD5' 'SHA1' 'SHA256' 'SHA512'; do
+ printf "$h\t\"false\";\n"
+ done
+ } | awk '!x[$1]++'
+ echo '};'
+ } >> "${TMPWORKINGDIRECTORY}/rootdir/etc/apt/apt.conf.d/ftparchive-hashes.conf"
+}
forcecompressor() {
COMPRESSOR="$1"
COMPRESSOR_CMD="$1"
@@ -734,41 +750,24 @@ createaptftparchiveconfig() {
local COMPRESSORS="$(cut -d' ' -f 1 ${TMPWORKINGDIRECTORY}/rootdir/etc/testcase-compressor.conf | tr '\n' ' ')"
local COMPRESSORS="${COMPRESSORS%* }"
local ARCHS="$(getarchitectures)"
- echo -n 'Dir {
- ArchiveDir "' >> ftparchive.conf
- echo -n $(readlink -f .) >> ftparchive.conf
- echo -n '";
- CacheDir "' >> ftparchive.conf
- echo -n $(readlink -f ..) >> ftparchive.conf
- echo -n '";
- FileListDir "' >> ftparchive.conf
- echo -n $(readlink -f pool/) >> ftparchive.conf
- echo -n '";
+ cat > ftparchive.conf <<EOF
+Dir {
+ ArchiveDir "$(readlink -f .)";
+ CacheDir "$(readlink -f ..)";
+ FileListDir "$(readlink -f pool/)";
};
Default {
- Packages::Compress "'"$COMPRESSORS"'";
- Sources::Compress "'"$COMPRESSORS"'";
- Contents::Compress "'"$COMPRESSORS"'";
- Translation::Compress "'"$COMPRESSORS"'";
+ Packages::Compress "$COMPRESSORS";
+ Sources::Compress "$COMPRESSORS";
+ Contents::Compress "$COMPRESSORS";
+ Translation::Compress "$COMPRESSORS";
LongDescription "false";
};
TreeDefault {
Directory "pool/";
SrcDirectory "pool/";
};
-APT {
- FTPArchive {
- Release {
- Origin "joesixpack";
- Label "apttestcases";
- Suite "unstable";
- Description "repository with dummy packages";
- Architectures "' >> ftparchive.conf
- echo -n "$ARCHS" >> ftparchive.conf
- echo 'source";
- };
- };
-};' >> ftparchive.conf
+EOF
for DIST in $(find ./pool/ -maxdepth 1 -name '*.pkglist' -type f | cut -d'/' -f 3 | cut -d'.' -f 1 | sort | uniq); do
echo -n 'tree "dists/' >> ftparchive.conf
echo -n "$DIST" >> ftparchive.conf
@@ -968,6 +967,9 @@ getreleaseversionfromsuite() { true; }
getlabelfromsuite() { true; }
getoriginfromsuite() { true; }
+aptftparchiverelease() {
+ aptftparchive -qq release "$@" | sed -e '/0 Release$/ d' # remove the self reference
+}
generatereleasefiles() {
# $1 is the Date header and $2 is the ValidUntil header to be set
# both should be given in notation date/touch can understand
@@ -988,33 +990,31 @@ generatereleasefiles() {
if [ -n "$ORIGIN" ]; then
ORIGIN="-o APT::FTPArchive::Release::Origin=${ORIGIN}"
fi
- aptftparchive -qq release $dir \
+ aptftparchiverelease $dir \
-o APT::FTPArchive::Release::Suite="${SUITE}" \
-o APT::FTPArchive::Release::Codename="${CODENAME}" \
${LABEL} \
${ORIGIN} \
${VERSION} \
- | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference
+ > $dir/Release
if [ "$SUITE" = "experimental" -o "$SUITE" = "experimental2" ]; then
sed -i '/^Date: / a\
NotAutomatic: yes' $dir/Release
fi
- if [ -n "$1" -a "$1" != "now" ]; then
- sed -i "s/^Date: .*$/Date: $(date -d "$1" '+%a, %d %b %Y %H:%M:%S %Z')/" $dir/Release
- fi
- if [ -n "$2" ]; then
- sed -i "/^Date: / a\
-Valid-Until: $(date -d "$2" '+%a, %d %b %Y %H:%M:%S %Z')" $dir/Release
- fi
done
else
- aptftparchive -qq release ./aptarchive | sed -e '/0 Release$/ d' > aptarchive/Release # remove the self reference
+ aptftparchiverelease ./aptarchive > aptarchive/Release
fi
if [ -n "$1" -a "$1" != "now" ]; then
for release in $(find ./aptarchive -name 'Release'); do
+ sed -i "s/^Date: .*$/Date: $(date -d "$1" '+%a, %d %b %Y %H:%M:%S %Z')/" $release
touch -d "$1" $release
done
fi
+ if [ -n "$2" ]; then
+ sed -i "/^Date: / a\
+Valid-Until: $(date -d "$2" '+%a, %d %b %Y %H:%M:%S %Z')" $(find ./aptarchive -name 'Release')
+ fi
msgdone "info"
}
diff --git a/test/integration/test-apt-by-hash-update b/test/integration/test-apt-by-hash-update
index cef46a1b8..293836861 100755
--- a/test/integration/test-apt-by-hash-update
+++ b/test/integration/test-apt-by-hash-update
@@ -6,6 +6,7 @@ TESTDIR=$(readlink -f $(dirname $0))
setupenvironment
configarchitecture "i386"
+confighashes 'SHA512'
insertpackage 'unstable' 'foo' 'all' '1.0'
diff --git a/test/integration/test-apt-ftparchive-by-hash b/test/integration/test-apt-ftparchive-by-hash
index f00e2a24c..ca881ed81 100755
--- a/test/integration/test-apt-ftparchive-by-hash
+++ b/test/integration/test-apt-ftparchive-by-hash
@@ -18,6 +18,7 @@ TESTDIR=$(readlink -f $(dirname $0))
setupenvironment
configarchitecture 'i386'
configcompression 'gz' '.'
+confighashes 'SHA1' 'SHA256' 'SHA512'
# enable by-hash in apt-ftparchive
echo 'APT::FTPArchive::DoByHash "1";' >> aptconfig.conf
diff --git a/test/integration/test-apt-ftparchive-cachedb-lp1274466 b/test/integration/test-apt-ftparchive-cachedb-lp1274466
index 8b768441a..44bc85fea 100755
--- a/test/integration/test-apt-ftparchive-cachedb-lp1274466
+++ b/test/integration/test-apt-ftparchive-cachedb-lp1274466
@@ -9,6 +9,7 @@ TESTDIR=$(readlink -f $(dirname $0))
. $TESTDIR/framework
setupenvironment
configarchitecture "i386"
+confighashes 'MD5' 'SHA1' 'SHA256' 'SHA512'
# gather the db and the deb, ensure mtime is not modfied as its saved in the DB
cp -p $TESTDIR/deb-lp1274466-cachedb.deb foo_1_i386.deb
diff --git a/test/integration/test-apt-ftparchive-src-cachedb b/test/integration/test-apt-ftparchive-src-cachedb
index 66a3b7845..06f5bdd9d 100755
--- a/test/integration/test-apt-ftparchive-src-cachedb
+++ b/test/integration/test-apt-ftparchive-src-cachedb
@@ -93,6 +93,7 @@ TESTDIR=$(readlink -f $(dirname $0))
. $TESTDIR/framework
setupenvironment
configarchitecture "i386"
+confighashes 'MD5' 'SHA1' 'SHA256' 'SHA512'
msgtest 'Test apt-ftparchive source with missing hashes in .dsc'
diff --git a/test/integration/test-apt-get-download b/test/integration/test-apt-get-download
index fa0b65672..c4ebd03bb 100755
--- a/test/integration/test-apt-get-download
+++ b/test/integration/test-apt-get-download
@@ -6,6 +6,7 @@ TESTDIR=$(readlink -f $(dirname $0))
setupenvironment
configarchitecture "i386"
+confighashes 'SHA512'
buildsimplenativepackage 'apt' 'all' '1.0' 'stable'
buildsimplenativepackage 'apt' 'all' '2.0' 'unstable'
diff --git a/test/integration/test-apt-update-file b/test/integration/test-apt-update-file
index 94b604f0e..f976993ca 100755
--- a/test/integration/test-apt-update-file
+++ b/test/integration/test-apt-update-file
@@ -11,6 +11,7 @@ TESTDIR=$(readlink -f $(dirname $0))
setupenvironment
configarchitecture "amd64"
configcompression 'bz2' 'gz'
+confighashes 'SHA512'
insertpackage 'unstable' 'foo' 'all' '1'
insertsource 'unstable' 'foo' 'all' '1'
diff --git a/test/integration/test-pdiff-usage b/test/integration/test-pdiff-usage
index f6a94ba67..62c87fe08 100755
--- a/test/integration/test-pdiff-usage
+++ b/test/integration/test-pdiff-usage
@@ -6,6 +6,7 @@ TESTDIR=$(readlink -f $(dirname $0))
setupenvironment
configarchitecture 'i386'
+confighashes 'SHA1' 'SHA256'
buildaptarchive
setupflataptarchive
diff --git a/test/integration/test-ubuntu-bug-1078697-missing-source-hashes b/test/integration/test-ubuntu-bug-1078697-missing-source-hashes
index 6fcb856b5..badc097b3 100755
--- a/test/integration/test-ubuntu-bug-1078697-missing-source-hashes
+++ b/test/integration/test-ubuntu-bug-1078697-missing-source-hashes
@@ -5,6 +5,7 @@ TESTDIR=$(readlink -f $(dirname $0))
. $TESTDIR/framework
setupenvironment
configarchitecture "i386"
+confighashes 'MD5' 'SHA1' 'SHA256' 'SHA512'
msgtest 'Test apt-ftparchive source with missing hashes in .dsc'
@@ -22,14 +23,16 @@ Files:
EOF
# check for the SHA hashes
-aptftparchive sources aptarchive/ > aptarchive/Sources 2>/dev/null || msgfail
-test -n "$(grep Checksums-Sha512 aptarchive/Sources)" && msgpass || msgfail
+testsuccess aptftparchive sources aptarchive/
+cp rootdir/tmp/testsuccess.output aptarchive/Sources
+testsuccess grep Checksums-Sha512 aptarchive/Sources
for hash in sha512sum sha256sum sha1sum; do
for f in foo_1.0.tar.gz foo_1.0.dsc; do
SUM=$($hash aptarchive/$f | cut -d' ' -f1)
- msgtest "Test $hash hash matches for $f"
NEEDLE="$SUM $(stat -c%s aptarchive/$f) $f"
- test -n "$SUM" && test -n "$(grep "$NEEDLE" aptarchive/Sources)" && msgpass || msgfail
+ testsuccess test -n "$SUM"
+ msgtest "Test $hash hash matches for $f"
+ testsuccess --nomsg grep "$NEEDLE" aptarchive/Sources
done
done