From fb193b1cd43f0e8c3b7e5f69f183b9abe7e83761 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 15 Mar 2016 14:50:37 +0100 Subject: 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 --- test/integration/test-apt-update-reporting | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 test/integration/test-apt-update-reporting (limited to 'test/integration/test-apt-update-reporting') 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 + -- cgit v1.2.3