summaryrefslogtreecommitdiff
path: root/test/integration
diff options
context:
space:
mode:
authorMichael Vogt <mvo@debian.org>2014-02-27 16:46:05 +0100
committerMichael Vogt <mvo@debian.org>2014-02-27 23:27:11 +0100
commite43a426e5d402d36eb180935fbbf1430a4a86e3f (patch)
tree3e64fc090c94e443097f7f5acfeb6e1c0e19bf05 /test/integration
parentfc104da6a583736223b2f941e43a05ea26b63a7d (diff)
initial version of apt-helper
Diffstat (limited to 'test/integration')
-rw-r--r--test/integration/framework69
-rwxr-xr-xtest/integration/test-apt-https-no-redirect20
2 files changed, 35 insertions, 54 deletions
diff --git a/test/integration/framework b/test/integration/framework
index 99214ef73..d9bacef83 100644
--- a/test/integration/framework
+++ b/test/integration/framework
@@ -90,18 +90,18 @@ msgdone() {
echo "${CDONE}DONE${CNORMAL}";
fi
}
-
+getaptconfig() {
+ if [ -f ./aptconfig.conf ]; then
+ echo "./aptconfig.conf"
+ elif [ -f ../aptconfig.conf ]; then
+ echo "../aptconfig.conf"
+ fi
+}
runapt() {
msgdebug "Executing: ${CCMD}$*${CDEBUG} "
local CMD="$1"
shift
- if [ -f ./aptconfig.conf ]; then
- MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@"
- elif [ -f ../aptconfig.conf ]; then
- MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@"
- else
- MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@"
- fi
+ MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG="$(getaptconfig)" LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@"
}
aptconfig() { runapt apt-config "$@"; }
aptcache() { runapt apt-cache "$@"; }
@@ -111,6 +111,9 @@ aptftparchive() { runapt apt-ftparchive "$@"; }
aptkey() { runapt apt-key "$@"; }
aptmark() { runapt apt-mark "$@"; }
apt() { runapt apt "$@"; }
+apthelper() {
+ APT_CONFIG="$(getaptconfig)" LD_LIBRARY_PATH=${APTHELPERBINDIR} ${APTHELPERBINDIR}/apt-helper "$@";
+}
aptwebserver() {
LD_LIBRARY_PATH=${APTWEBSERVERBINDIR} ${APTWEBSERVERBINDIR}/aptwebserver "$@";
}
@@ -118,17 +121,11 @@ dpkg() {
command dpkg --root=${TMPWORKINGDIRECTORY}/rootdir --force-not-root --force-bad-path --log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log "$@"
}
aptitude() {
- if [ -f ./aptconfig.conf ]; then
- APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@"
- elif [ -f ../aptconfig.conf ]; then
- APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@"
- else
- LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@"
- fi
+ APT_CONFIG="$(getaptconfig)" LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@"
}
gdb() {
echo "gdb: run »$*«"
- APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command gdb ${BUILDDIRECTORY}/$1 --args "$@"
+ APT_CONFIG="$(getaptconfig)" LD_LIBRARY_PATH=${BUILDDIRECTORY} command gdb ${BUILDDIRECTORY}/$1 --args "$@"
}
http() {
LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/methods/http
@@ -177,6 +174,7 @@ setupenvironment() {
# allow overriding the default BUILDDIR location
BUILDDIRECTORY=${APT_INTEGRATION_TESTS_BUILD_DIR:-"${TESTDIRECTORY}/../../build/bin"}
METHODSDIR=${APT_INTEGRATION_TESTS_METHODS_DIR:-"${BUILDDIRECTORY}/methods"}
+ APTHELPERBINDIR=${APT_INTEGRATION_TESTS_LIBEXEC_DIR:-"${BUILDDIRECTORY}"}
APTWEBSERVERBINDIR=${APT_INTEGRATION_TESTS_WEBSERVER_BIN_DIR:-"${BUILDDIRECTORY}"}
test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first"
# -----
@@ -934,41 +932,10 @@ changetocdrom() {
}
downloadfile() {
- PROTO="$(echo "$1" | cut -d':' -f 1)"
- if [ ! -x "${METHODSDIR}/${PROTO}" ]; then
- msgwarn "can not find ${METHODSDIR}/${PROTO}"
- return 1
- fi
- local DOWNLOG="${TMPWORKINGDIRECTORY}/download.log"
- rm -f "$DOWNLOG"
- touch "$DOWNLOG"
- {
- echo "601 Configuration
-Config-Item: Acquire::https::CaInfo=${TESTDIR}/apt.pem
-Config-Item: Debug::Acquire::${PROTO}=1
-
-600 Acquire URI
-URI: $1
-Filename: ${2}
-"
- # simple worker keeping stdin open until we are done (201) or error (400)
- # and requesting new URIs on try-agains/redirects in-between
- { tail -n 999 -f "$DOWNLOG" & echo "TAILPID: $!"; } | while read f1 f2; do
- if [ "$f1" = 'TAILPID:' ]; then
- TAILPID="$f2"
- elif [ "$f1" = 'New-URI:' ]; then
- echo "600 Acquire URI
-URI: $f2
-Filename: ${2}
-"
- elif [ "$f1" = '201' ] || [ "$f1" = '400' ]; then
- # tail would only die on next read – which never happens
- test -z "$TAILPID" || kill -s HUP "$TAILPID"
- break
- fi
- done
- } | LD_LIBRARY_PATH=${BUILDDIRECTORY} ${METHODSDIR}/${PROTO} 2>&1 | tee "$DOWNLOG"
- rm "$DOWNLOG"
+ PROTO="$(echo "$1" | cut -d':' -f 1)"
+ apthelper -o Acquire::https::CaInfo=${TESTDIR}/apt.pem \
+ -o Debug::Acquire::${PROTO}=1 \
+ download-file "$1" "$2" 2>&1
# only if the file exists the download was successful
if [ -e "$2" ]; then
return 0
diff --git a/test/integration/test-apt-https-no-redirect b/test/integration/test-apt-https-no-redirect
index c405d1167..106d4bced 100755
--- a/test/integration/test-apt-https-no-redirect
+++ b/test/integration/test-apt-https-no-redirect
@@ -12,13 +12,27 @@ setupaptarchive --no-update
changetohttpswebserver -o 'aptwebserver::redirect::replace::/redirectme/=http://localhost:8080/'
+DOWNLOG='download-testfile.log'
msgtest 'normal http download works'
-downloadfile 'http://localhost:8080/pool/apt_1.0/changelog' changelog2 >/dev/null 2>/dev/null && msgpass || msgfail
+downloadfile 'http://localhost:8080/pool/apt_1.0/changelog' changelog2 > "$DOWNLOG" && msgpass || msgfail
msgtest 'normal https download works'
-downloadfile 'https://localhost:4433/pool/apt_1.0/changelog' changelog >/dev/null 2>/dev/null && msgpass || msgfail
+downloadfile 'https://localhost:4433/pool/apt_1.0/changelog' changelog > "$DOWNLOG" && msgpass || msgfail
msgtest 'redirecting https to http does not work'
-downloadfile 'https://localhost:4433/redirectme/pool/apt_1.0/changelog' changelog3 2>&1 | grep "Protocol http not supported or disabled in libcurl" > /dev/null && msgpass
+if ! downloadfile 'https://localhost:4433/redirectme/pool/apt_1.0/changelog' changelog3 > "$DOWNLOG"; then
+ msgpass
+else
+ cat >&2 "$DOWNLOG"
+ msgfail
+fi
+
+msgtest 'https methods given proper error on redirect attempt'
+if grep -q 'Protocol http not supported or disabled in libcurl' "$DOWNLOG"; then
+ msgpass
+else
+ cat >&2 "$DOWNLOG"
+ msgfail
+fi