summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <mvo@ubuntu.com>2015-01-06 10:54:24 +0100
committerMichael Vogt <mvo@ubuntu.com>2015-01-06 10:54:24 +0100
commitd13f2ef5dd2cf41d7abd7f309a9e8965a77d2a63 (patch)
tree054e927a2c99e488a6fc32567ad4afa569e362ca
parent9127d7aecf01f2999a2589e4b0503288518b2927 (diff)
downloadapt-d13f2ef5dd2cf41d7abd7f309a9e8965a77d2a63.tar.gz
Add regression test for the previous commit
The issue was that https.cc never called URIStart(), one way to detect this is that no download progress is generated without this call. The test now checks for this and as a side-effect will also ensure that we do not break download progress reporting and Acquire::{http,https}::Dl-Limit accidently.
-rwxr-xr-xtest/integration/test-apt-download-progress43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/integration/test-apt-download-progress b/test/integration/test-apt-download-progress
new file mode 100755
index 000000000..0a9020bec
--- /dev/null
+++ b/test/integration/test-apt-download-progress
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+# ensure downloading sends progress as a regression test for commit 9127d7ae
+#
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+
+setupenvironment
+changetohttpswebserver
+
+assertprogress() {
+ T="$1"
+ testsuccess grep "dlstatus:1:0:Retrieving file 1 of 1" "$T"
+ if ! egrep -q "dlstatus:1:[0-9]{1,2}\.(.*):Retrieving file 1 of 1" "$T"; then
+ cat "$T"
+ msgfail "Failed to detect download progress"
+ fi
+ testsuccess grep "dlstatus:1:100:Retrieving file 1 of 1" "$T"
+ #cat $T
+}
+
+# we need to ensure the file is reasonable big so that apt has a chance to
+# actually report progress - but not too big to ensure its not delaying the
+# test too much
+TESTFILE=testfile.big
+testsuccess dd if=/dev/zero of=./aptarchive/$TESTFILE bs=800k count=1
+
+msgtest 'download progress works via' 'http'
+printf '\n'
+exec 3> apt-progress.log
+testsuccess apthelper download-file "http://localhost:8080/$TESTFILE" http-$TESTFILE -o APT::Status-Fd=3 -o Acquire::http::Dl-Limit=800
+assertprogress apt-progress.log
+
+msgtest 'download progress works via' 'https'
+printf '\n'
+exec 3> apt-progress.log
+testsuccess apthelper download-file "https://localhost:4433/$TESTFILE" https-$TESTFILE -o APT::Status-Fd=3 -o Acquire::https::Dl-Limit=800
+assertprogress apt-progress.log
+
+# cleanup
+rm -f apt-progress*.log