summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael Vogt <mvo@ubuntu.com>2016-03-15 14:50:37 +0100
committerMichael Vogt <mvo@debian.org>2016-03-16 17:52:40 +0100
commitfb193b1cd43f0e8c3b7e5f69f183b9abe7e83761 (patch)
treef0ef684a93cf8f18ee95e1b4acc635a6722ac7b4 /test
parent8e0c56db82fe10b0f8ceadf3187ffc672eaaff3a (diff)
Get accurate progress reporting in apt update again
For the non-pdiff case, we have can have accurate progress reporting because after fetching the {,In}Release files we know how many IndexFiles will be fetched and what size they have. Therefore init the filesize early (in pkgAcqIndex::Init) and ensure that in Acquire::Pulse() looks at already downloaded bits when calculating the progress in Acquire::Pulse. Also improve debug output of Debug::acquire::progress
Diffstat (limited to 'test')
-rwxr-xr-xtest/integration/test-apt-progress-fd8
-rwxr-xr-xtest/integration/test-apt-update-not-modified6
-rwxr-xr-xtest/integration/test-apt-update-reporting31
3 files changed, 39 insertions, 6 deletions
diff --git a/test/integration/test-apt-progress-fd b/test/integration/test-apt-progress-fd
index f0d208967..c6650bc2e 100755
--- a/test/integration/test-apt-progress-fd
+++ b/test/integration/test-apt-progress-fd
@@ -16,7 +16,7 @@ setupaptarchive
exec 3> apt-progress.log
testsuccess aptget install testing=0.1 -y -o APT::Status-Fd=3
testfileequal './apt-progress.log' 'dlstatus:1:0:Retrieving file 1 of 1
-dlstatus:1:20:Retrieving file 1 of 1
+dlstatus:1:100:Retrieving file 1 of 1
pmstatus:dpkg-exec:0:Running dpkg
pmstatus:testing:0:Installing testing (amd64)
pmstatus:testing:16.6667:Preparing testing (amd64)
@@ -32,7 +32,7 @@ pmstatus:dpkg-exec:83.3333:Running dpkg'
exec 3> apt-progress.log
testsuccess aptget install testing=0.8.15 -y -o APT::Status-Fd=3
testfileequal './apt-progress.log' 'dlstatus:1:0:Retrieving file 1 of 1
-dlstatus:1:20:Retrieving file 1 of 1
+dlstatus:1:100:Retrieving file 1 of 1
pmstatus:dpkg-exec:0:Running dpkg
pmstatus:testing:0:Installing testing (amd64)
pmstatus:testing:16.6667:Preparing testing (amd64)
@@ -48,7 +48,7 @@ pmstatus:dpkg-exec:83.3333:Running dpkg'
exec 3> apt-progress.log
testsuccess aptget install testing=0.8.15 --reinstall -y -o APT::Status-Fd=3
testfileequal './apt-progress.log' 'dlstatus:1:0:Retrieving file 1 of 1
-dlstatus:1:20:Retrieving file 1 of 1
+dlstatus:1:100:Retrieving file 1 of 1
pmstatus:dpkg-exec:0:Running dpkg
pmstatus:testing:0:Installing testing (amd64)
pmstatus:testing:16.6667:Preparing testing (amd64)
@@ -74,7 +74,7 @@ pmstatus:dpkg-exec:75:Running dpkg'
exec 3> apt-progress.log
testsuccess aptget install testing2:i386 -y -o APT::Status-Fd=3
testfileequal './apt-progress.log' 'dlstatus:1:0:Retrieving file 1 of 1
-dlstatus:1:20:Retrieving file 1 of 1
+dlstatus:1:100:Retrieving file 1 of 1
pmstatus:dpkg-exec:0:Running dpkg
pmstatus:testing2:0:Installing testing2 (i386)
pmstatus:testing2:16.6667:Preparing testing2 (i386)
diff --git a/test/integration/test-apt-update-not-modified b/test/integration/test-apt-update-not-modified
index 82e69d5d5..ce3bc0dd3 100755
--- a/test/integration/test-apt-update-not-modified
+++ b/test/integration/test-apt-update-not-modified
@@ -34,6 +34,7 @@ Reading package lists..." aptget update
# readd arch so its downloaded again…
configarchitecture 'amd64' 'i386'
# … but oh noes, hashsum mismatch!
+ SIZE=$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz')
find aptarchive/dists/unstable/main/binary-amd64/ -type f -delete
cat >> aptarchive/dists/unstable/main/binary-amd64/Packages <<EOF
@@ -43,7 +44,7 @@ Version: 1
EOF
compressfile aptarchive/dists/unstable/main/binary-amd64/Packages
testfailureequal "Hit:1 $1 unstable InRelease
-Get:2 $1 unstable/main amd64 Packages [$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') B]
+Get:2 $1 unstable/main amd64 Packages [$SIZE B]
Err:2 $1 unstable/main amd64 Packages
Hash Sum mismatch
Reading package lists...
@@ -92,6 +93,7 @@ Reading package lists..." aptget update
# readd arch so its downloaded again…
configarchitecture 'amd64' 'i386'
# … but oh noes, hashsum mismatch!
+ SIZE=$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz')
find aptarchive/dists/unstable/main/binary-amd64/ -type f -delete
cat >> aptarchive/dists/unstable/main/binary-amd64/Packages <<EOF
@@ -103,7 +105,7 @@ EOF
testfailureequal "Ign:1 $1 unstable InRelease
404 Not Found
Hit:2 $1 unstable Release
-Get:4 $1 unstable/main amd64 Packages [$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') B]
+Get:4 $1 unstable/main amd64 Packages [$SIZE B]
Err:4 $1 unstable/main amd64 Packages
Hash Sum mismatch
Reading package lists...
diff --git a/test/integration/test-apt-update-reporting b/test/integration/test-apt-update-reporting
new file mode 100755
index 000000000..bc1d119a1
--- /dev/null
+++ b/test/integration/test-apt-update-reporting
@@ -0,0 +1,31 @@
+#!/bin/sh
+set -e
+
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
+setupenvironment
+configarchitecture 'amd64'
+
+for i in $(seq 100); do
+ insertpackage 'unstable' "foo-$i" 'all' '1.0'
+ insertsource 'unstable' "foo-$i" 'all' '1.0'
+done
+
+setupaptarchive --no-update
+changetowebserver
+
+aptget update -o Debug::Acquire::Progress=1 2>progress.log >ignore.out
+
+prev_percent=0.0
+while read line; do
+ percent="$(echo "$line"|cut -b2-6)"
+ # need to cut the decimal point and digits because sh can not do
+ # float compare
+ if [ "${percent%%.*}" -lt "${prev_percent%%.*}" ]; then
+ echo "progress goes backwards"
+ cat progress.log
+ exit 1
+ fi
+ prev_percent="$percent"
+done < progress.log
+