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
+has_progress() {
+ 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
+ cat progress.log
+ return 1
+ fi
+ prev_percent="$percent"
+ done < progress.log
+ return 0
+}
+msgtest "Testing that progress does not go backward"
+testsuccess --nomsg has_progress