#!/bin/sh
set -e
-TESTDIR=$(readlink -f $(dirname $0))
+TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"
setupenvironment
configarchitecture 'amd64'
filedown() {
msgtest 'Downloading the same URI twice over file' "$1"
- testsuccess --nomsg apthelper download-file "file:///$APTARCHIVE/foo" ./downloaded/foo1 '' "file:///$APTARCHIVE/foo" ./downloaded/foo2 '' -o Debug::pkgAcquire::Worker=1
+ testsuccess --nomsg apthelper download-file "file:///$APTARCHIVE/foo" './downloaded/foo1' '' \
+ "file:///$APTARCHIVE/foo" './downloaded/foo2' '' -o Debug::pkgAcquire::Worker=1
cp rootdir/tmp/testsuccess.output download.log
testsuccess cmp "$TESTFILE" ./downloaded/foo1
testsuccess cmp ./downloaded/foo1 ./downloaded/foo2
httpdown() {
msgtest 'Downloading the same URI to different files' 'twice over http'
- testsuccess --nomsg apthelper download-file http://localhost:8080/foo ./downloaded/foo1 '' http://localhost:8080/foo ./downloaded/foo2 '' -o Debug::pkgAcquire::Worker=1 -o Debug::Acquire::http=1
+ testsuccess --nomsg apthelper download-file "http://localhost:${APTHTTPPORT}/foo" "./downloaded/foo1" '' \
+ "http://localhost:${APTHTTPPORT}/foo" './downloaded/foo2' '' -o Debug::pkgAcquire::Worker=1 -o Debug::Acquire::http=1
cp rootdir/tmp/testsuccess.output download.log
testsuccess cmp "$TESTDIR/framework" ./downloaded/foo1
testsuccess cmp ./downloaded/foo1 ./downloaded/foo2
httpredirectdown() {
msgtest 'Redirect leads' 'first URI to the second URI'
- testsuccess --nomsg apthelper download-file http://localhost:8080/foo2 ./downloaded/foo1 '' http://localhost:8080/foo ./downloaded/foo2 '' -o Debug::pkgAcquire::Worker=1 -o Debug::Acquire::http=1
- cp rootdir/tmp/testsuccess.output download.log
- testsuccess cmp "$TESTDIR/framework" ./downloaded/foo1
- testsuccess cmp ./downloaded/foo1 ./downloaded/foo2
+ for i in 1 2 3 4 5 6 7 8 9 10; do
+ rm -f ./downloaded/foo1 ./downloaded/foo2
+ testsuccess --nomsg apthelper download-file "http://localhost:${APTHTTPPORT}/foo2" "./downloaded/foo1" '' \
+ "http://localhost:${APTHTTPPORT}/foo" './downloaded/foo2' '' -o Debug::pkgAcquire::Worker=1 -o Debug::Acquire::http=1
+ cp rootdir/tmp/testsuccess.output download.log
+ testsuccess cmp "$TESTDIR/framework" ./downloaded/foo1
+ testsuccess cmp ./downloaded/foo1 ./downloaded/foo2
+
+ if grep -q '103%20Redirect' ./download.log; then
+ break
+ fi
+ done
testequal '1' grep -c '200%20URI%20Start' ./download.log
testequal '1' grep -c '103%20Redirect' ./download.log
testequal '1' grep -c '201%20URI%20Done' ./download.log
httpsamedown() {
msgtest 'Downloading two files via the same URI to' 'the same file'
- testsuccess --nomsg apthelper download-file http://localhost:8080/foo ./downloaded/foo1 '' http://localhost:8080/foo ./downloaded/foo1 '' -o Debug::pkgAcquire::Worker=1
+ testsuccess --nomsg apthelper download-file "http://localhost:${APTHTTPPORT}/foo" "./downloaded/foo1" '' \
+ "http://localhost:${APTHTTPPORT}/foo" './downloaded/foo1' '' -o Debug::pkgAcquire::Worker=1
cp rootdir/tmp/testsuccess.output download.log
testsuccess cmp "$TESTDIR/framework" ./downloaded/foo1
testequal '1' grep -c '200%20URI%20Start' ./download.log