summaryrefslogtreecommitdiff
path: root/test/integration/framework
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2013-08-28 00:24:32 +0200
committerDavid Kalnischkies <kalnischkies@gmail.com>2013-08-28 00:24:32 +0200
commit276e51dd701590d187ca2999722329518af96121 (patch)
treed73bce90365c8775e18dc600cb39e0e27cfb7cd1 /test/integration/framework
parentfeae193b0c01181226522a5a2477e696876593d4 (diff)
configurable compression for testcases
Compressing files in 4 different styles eats test-time for no practical gain if we don't test them explicitly, so default to just building 'gz' compressed files as it is the simplest compression algorithm supported Git-Dch: Ignore
Diffstat (limited to 'test/integration/framework')
-rw-r--r--test/integration/framework48
1 files changed, 37 insertions, 11 deletions
diff --git a/test/integration/framework b/test/integration/framework
index cad28af84..4003d932c 100644
--- a/test/integration/framework
+++ b/test/integration/framework
@@ -194,6 +194,7 @@ setupenvironment() {
echo 'quiet::NoUpdate "true";' >> aptconfig.conf
export LC_ALL=C
export PATH="${PATH}:/usr/local/sbin:/usr/sbin:/sbin"
+ configcompression '.' 'gz' #'bz2' 'lzma' 'xz'
msgdone "info"
}
@@ -257,6 +258,20 @@ configdpkg() {
fi
}
+configcompression() {
+ while [ -n "$1" ]; do
+ case "$1" in
+ '.') echo ".\t.\tcat";;
+ 'gz') echo "gzip\tgz\tgzip";;
+ 'bz2') echo "bzip2\tbz2\tbzip2";;
+ 'lzma') echo "lzma\tlzma\txz --format=lzma";;
+ 'xz') echo "xz\txz\txz";;
+ *) echo "$1\t$1\t$1";;
+ esac
+ shift
+ done > ${TMPWORKINGDIRECTORY}/rootdir/etc/testcase-compressor.conf
+}
+
setupsimplenativepackage() {
local NAME="$1"
local ARCH="$2"
@@ -427,6 +442,8 @@ buildaptarchive() {
}
createaptftparchiveconfig() {
+ local COMPRESSORS="$(cut -d' ' -f 1 ${TMPWORKINGDIRECTORY}/rootdir/etc/testcase-compressor.conf | tr '\n' ' ')"
+ COMPRESSORS="${COMPRESSORS%* }"
local ARCHS="$(find pool/ -name '*.deb' | grep -oE '_[a-z0-9-]+\.deb$' | sort | uniq | sed -e '/^_all.deb$/ d' -e 's#^_\([a-z0-9-]*\)\.deb$#\1#' | tr '\n' ' ')"
if [ -z "$ARCHS" ]; then
# the pool is empty, so we will operate on faked packages - let us use the configured archs
@@ -444,10 +461,10 @@ createaptftparchiveconfig() {
echo -n '";
};
Default {
- Packages::Compress ". gzip bzip2 lzma xz";
- Sources::Compress ". gzip bzip2 lzma xz";
- Contents::Compress ". gzip bzip2 lzma xz";
- Translation::Compress ". gzip bzip2 lzma xz";
+ Packages::Compress "'"$COMPRESSORS"'";
+ Sources::Compress "'"$COMPRESSORS"'";
+ Contents::Compress "'"$COMPRESSORS"'";
+ Translation::Compress "'"$COMPRESSORS"'";
LongDescription "false";
};
TreeDefault {
@@ -617,18 +634,27 @@ buildaptarchivefromfiles() {
msginfo "Build APT archive for ${CCMD}$(basename $0)${CINFO} based on prebuild files…"
find aptarchive -name 'Packages' -o -name 'Sources' | while read line; do
msgninfo "\t${line} file… "
- cat ${line} | gzip > ${line}.gz
- cat ${line} | bzip2 > ${line}.bz2
- cat ${line} | xz --format=lzma > ${line}.lzma
- cat ${line} | xz > ${line}.xz
- if [ -n "$1" ]; then
- touch -d "$1" ${line}.gz ${line}.bz2 ${line}.lzma ${line}.xz
- fi
+ compressfile "$line" "$1"
msgdone "info"
done
generatereleasefiles "$@"
}
+compressfile() {
+ cat ${TMPWORKINGDIRECTORY}/rootdir/etc/testcase-compressor.conf | while read compressor extension command; do
+ if [ "$compressor" = '.' ]; then
+ if [ -n "$2" ]; then
+ touch -d "$2" "$1"
+ fi
+ continue
+ fi
+ cat "$1" | $command > "${1}.${extension}"
+ if [ -n "$2" ]; then
+ touch -d "$2" "${1}.${extension}"
+ fi
+ done
+}
+
# can be overridden by testcases for their pleasure
getcodenamefromsuite() { echo -n "$1"; }
getreleaseversionfromsuite() { true; }