From f484906eff85c8c9eadc13ce817d8857abdd08e8 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 10 Sep 2018 18:43:34 +0200 Subject: Don't expect duplicated dpkg status-fd messages The progress reporting relies on parsing the status reports of dpkg which used to repeat being in the same state multiple times in the same run, but by fixing #365921 it will stop doing so. The problem is in theory just with 'config-files' in case we do purge as this (can) do remove + purge in one step, but we remove this also for the unpack + configure combination althrough we handle these currently in two independent dpkg calls. --- test/integration/test-apt-progress-fd | 61 ++++++++++------------ test/integration/test-apt-progress-fd-deb822 | 19 +++---- test/integration/test-apt-progress-fd-error | 4 +- .../test-no-fds-leaked-to-maintainer-scripts | 37 +++++++++++-- 4 files changed, 71 insertions(+), 50 deletions(-) (limited to 'test') diff --git a/test/integration/test-apt-progress-fd b/test/integration/test-apt-progress-fd index 57728ca81..2b9b6532a 100755 --- a/test/integration/test-apt-progress-fd +++ b/test/integration/test-apt-progress-fd @@ -10,7 +10,7 @@ configarchitecture 'amd64' 'i386' buildsimplenativepackage 'testing' 'amd64' '0.1' 'stable' buildsimplenativepackage 'testing' 'amd64' '0.8.15' 'stable' buildsimplenativepackage 'testing2' 'amd64,i386' '0.8.15' 'stable' -setupaptarchive +setupaptarchive # install native exec 3> apt-progress.log @@ -19,13 +19,12 @@ testfileequal './apt-progress.log' 'dlstatus:1:0.0000:Retrieving file 1 of 1 dlstatus:1:100.0000:Retrieving file 1 of 1 pmstatus:dpkg-exec:0.0000:Running dpkg pmstatus:testing:0.0000:Installing testing (amd64) -pmstatus:testing:16.6667:Preparing testing (amd64) -pmstatus:testing:33.3333:Unpacking testing (amd64) -pmstatus:testing:50.0000:Preparing to configure testing (amd64) -pmstatus:dpkg-exec:50.0000:Running dpkg -pmstatus:testing:50.0000:Configuring testing (amd64) -pmstatus:testing:66.6667:Configuring testing (amd64) -pmstatus:testing:83.3333:Installed testing (amd64)' +pmstatus:testing:20.0000:Preparing testing (amd64) +pmstatus:testing:40.0000:Unpacking testing (amd64) +pmstatus:dpkg-exec:40.0000:Running dpkg +pmstatus:testing:40.0000:Configuring testing (amd64) +pmstatus:testing:60.0000:Configuring testing (amd64) +pmstatus:testing:80.0000:Installed testing (amd64)' # upgrade exec 3> apt-progress.log @@ -34,13 +33,12 @@ testfileequal './apt-progress.log' 'dlstatus:1:0.0000:Retrieving file 1 of 1 dlstatus:1:100.0000:Retrieving file 1 of 1 pmstatus:dpkg-exec:0.0000:Running dpkg pmstatus:testing:0.0000:Installing testing (amd64) -pmstatus:testing:16.6667:Preparing testing (amd64) -pmstatus:testing:33.3333:Unpacking testing (amd64) -pmstatus:testing:50.0000:Preparing to configure testing (amd64) -pmstatus:dpkg-exec:50.0000:Running dpkg -pmstatus:testing:50.0000:Configuring testing (amd64) -pmstatus:testing:66.6667:Configuring testing (amd64) -pmstatus:testing:83.3333:Installed testing (amd64)' +pmstatus:testing:20.0000:Preparing testing (amd64) +pmstatus:testing:40.0000:Unpacking testing (amd64) +pmstatus:dpkg-exec:40.0000:Running dpkg +pmstatus:testing:40.0000:Configuring testing (amd64) +pmstatus:testing:60.0000:Configuring testing (amd64) +pmstatus:testing:80.0000:Installed testing (amd64)' # reinstall exec 3> apt-progress.log @@ -49,23 +47,21 @@ testfileequal './apt-progress.log' 'dlstatus:1:0.0000:Retrieving file 1 of 1 dlstatus:1:100.0000:Retrieving file 1 of 1 pmstatus:dpkg-exec:0.0000:Running dpkg pmstatus:testing:0.0000:Installing testing (amd64) -pmstatus:testing:16.6667:Preparing testing (amd64) -pmstatus:testing:33.3333:Unpacking testing (amd64) -pmstatus:testing:50.0000:Preparing to configure testing (amd64) -pmstatus:dpkg-exec:50.0000:Running dpkg -pmstatus:testing:50.0000:Configuring testing (amd64) -pmstatus:testing:66.6667:Configuring testing (amd64) -pmstatus:testing:83.3333:Installed testing (amd64)' +pmstatus:testing:20.0000:Preparing testing (amd64) +pmstatus:testing:40.0000:Unpacking testing (amd64) +pmstatus:dpkg-exec:40.0000:Running dpkg +pmstatus:testing:40.0000:Configuring testing (amd64) +pmstatus:testing:60.0000:Configuring testing (amd64) +pmstatus:testing:80.0000:Installed testing (amd64)' # and remove exec 3> apt-progress.log testsuccess aptget remove testing -y -o APT::Status-Fd=3 testfileequal './apt-progress.log' 'pmstatus:dpkg-exec:0.0000:Running dpkg pmstatus:testing:0.0000:Removing testing (amd64) -pmstatus:testing:25.0000:Preparing for removal of testing (amd64) -pmstatus:testing:50.0000:Removing testing (amd64) -pmstatus:testing:75.0000:Removed testing (amd64) -pmstatus:dpkg-exec:75.0000:Running dpkg' +pmstatus:testing:33.3333:Preparing for removal of testing (amd64) +pmstatus:testing:66.6667:Removing testing (amd64) +pmstatus:dpkg-exec:66.6667:Running dpkg' # install non-native and ensure we get proper progress info exec 3> apt-progress.log @@ -74,12 +70,11 @@ testfileequal './apt-progress.log' 'dlstatus:1:0.0000:Retrieving file 1 of 1 dlstatus:1:100.0000:Retrieving file 1 of 1 pmstatus:dpkg-exec:0.0000:Running dpkg pmstatus:testing2:0.0000:Installing testing2 (i386) -pmstatus:testing2:16.6667:Preparing testing2 (i386) -pmstatus:testing2:33.3333:Unpacking testing2 (i386) -pmstatus:testing2:50.0000:Preparing to configure testing2 (i386) -pmstatus:dpkg-exec:50.0000:Running dpkg -pmstatus:testing2:50.0000:Configuring testing2 (i386) -pmstatus:testing2:66.6667:Configuring testing2 (i386) -pmstatus:testing2:83.3333:Installed testing2 (i386)' +pmstatus:testing2:20.0000:Preparing testing2 (i386) +pmstatus:testing2:40.0000:Unpacking testing2 (i386) +pmstatus:dpkg-exec:40.0000:Running dpkg +pmstatus:testing2:40.0000:Configuring testing2 (i386) +pmstatus:testing2:60.0000:Configuring testing2 (i386) +pmstatus:testing2:80.0000:Installed testing2 (i386)' rm -f apt-progress*.log diff --git a/test/integration/test-apt-progress-fd-deb822 b/test/integration/test-apt-progress-fd-deb822 index d9a4505d1..0c6c525ae 100755 --- a/test/integration/test-apt-progress-fd-deb822 +++ b/test/integration/test-apt-progress-fd-deb822 @@ -10,7 +10,7 @@ configarchitecture 'amd64' 'i386' buildsimplenativepackage 'testing' 'amd64' '0.1' 'stable' buildsimplenativepackage 'testing' 'all' '0.8.15' 'stable' buildsimplenativepackage 'testing2' 'amd64,i386' '0.8.15' 'stable' -setupaptarchive +setupaptarchive # install native exec 3> apt-progress.log @@ -27,36 +27,31 @@ Message: Installing testing (amd64) Status: progress Package: testing:amd64 -Percent: 16.6667 +Percent: 20.0000 Message: Preparing testing (amd64) Status: progress Package: testing:amd64 -Percent: 33.3333 +Percent: 40.0000 Message: Unpacking testing (amd64) Status: progress -Package: testing:amd64 -Percent: 50.0000 -Message: Preparing to configure testing (amd64) - -Status: progress -Percent: 50.0000 +Percent: 40.0000 Message: Running dpkg Status: progress Package: testing:amd64 -Percent: 50.0000 +Percent: 40.0000 Message: Configuring testing (amd64) Status: progress Package: testing:amd64 -Percent: 66.6667 +Percent: 60.0000 Message: Configuring testing (amd64) Status: progress Package: testing:amd64 -Percent: 83.3333 +Percent: 80.0000 Message: Installed testing (amd64) ' diff --git a/test/integration/test-apt-progress-fd-error b/test/integration/test-apt-progress-fd-error index 4439c042a..39c1053a1 100755 --- a/test/integration/test-apt-progress-fd-error +++ b/test/integration/test-apt-progress-fd-error @@ -18,8 +18,8 @@ setupaptarchive exec 3> apt-progress.log testfailure aptget install foo1 foo2 -y -o APT::Status-Fd=3 -msgtest 'Ensure correct error message' -testsuccess --nomsg grep "foo2_0.8.15_[^.]\+.deb:36.3636:trying to overwrite '/usr/bin/file-conflict', which is also in package foo1 0.8.15" apt-progress.log +msgtest 'Ensure correct error message' 'file-conflict' +testsuccess --nomsg grep "foo2_0.8.15_[^.]\+.deb:[0-9.]\+:trying to overwrite '/usr/bin/file-conflict', which is also in package foo1 0.8.15" apt-progress.log testsuccess test -s rootdir/var/crash/foo2.0.crash testsuccess grep '^Package: foo2 0.8.15$' rootdir/var/crash/foo2.0.crash diff --git a/test/integration/test-no-fds-leaked-to-maintainer-scripts b/test/integration/test-no-fds-leaked-to-maintainer-scripts index 747af69ff..85b3d0ee1 100755 --- a/test/integration/test-no-fds-leaked-to-maintainer-scripts +++ b/test/integration/test-no-fds-leaked-to-maintainer-scripts @@ -55,7 +55,15 @@ checkinstall() { tail -n +3 rootdir/var/log/apt/term.log | head -n -1 > terminal.log testfileequal 'terminal.log' "$(cat terminal.output)" - testequal "startup archives unpack + testequalor2 "startup archives unpack +install $PKGNAME 1.0 +status half-installed $PKGNAME 1.0 +status unpacked $PKGNAME 1.0 +startup packages configure +configure $PKGNAME 1.0 +status unpacked $PKGNAME 1.0 +status half-configured $PKGNAME 1.0 +status installed $PKGNAME 1.0" "startup archives unpack install $PKGNAME 1.0 status half-installed $PKGNAME 1.0 status unpacked $PKGNAME 1.0 @@ -78,7 +86,18 @@ checkpurge() { testfileequal 'terminal.log' "$(cat terminal.output)" if dpkg --compare-versions "$(dpkg_version)" 'ge' '1.18.11'; then - testequal "startup packages remove + testequalor2 "startup packages remove +status installed $PKGNAME 1.0 +remove $PKGNAME 1.0 +status half-configured $PKGNAME 1.0 +status half-installed $PKGNAME 1.0 +status config-files $PKGNAME 1.0 +startup packages configure +startup packages purge +purge $PKGNAME 1.0 +status config-files $PKGNAME 1.0 +status not-installed $PKGNAME +startup packages configure" "startup packages remove status installed $PKGNAME 1.0 remove $PKGNAME 1.0 status half-configured $PKGNAME 1.0 @@ -96,7 +115,19 @@ status config-files $PKGNAME 1.0 status not-installed $PKGNAME startup packages configure" cut -f 3- -d' ' rootdir/var/log/dpkg.log else - testequal "startup packages remove + testequalor2 "startup packages remove +status installed $PKGNAME 1.0 +remove $PKGNAME 1.0 +status half-configured $PKGNAME 1.0 +status half-installed $PKGNAME 1.0 +status config-files $PKGNAME 1.0 +startup packages configure +startup packages purge +remove $PKGNAME 1.0 +purge $PKGNAME 1.0 +status config-files $PKGNAME 1.0 +status not-installed $PKGNAME +startup packages configure" "startup packages remove status installed $PKGNAME 1.0 remove $PKGNAME 1.0 status half-configured $PKGNAME 1.0 -- cgit v1.2.3 From 329c8d5e149465003ea9007661a7af1099c75c43 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 10 Sep 2018 21:34:11 +0200 Subject: Reorder progress report messages We are seeing 'processing' messages from dpkg first, so it makes sense to translate them to "Preparing" messages instead of using "Installing" and co to override these shortly after with the "Preparing" messages. The difference isn't all to visible as later messages tend to linger far longer in the display than the ealier ones, but at least in a listing it seems more logical. --- test/integration/test-apt-progress-fd | 36 ++++++++++++++-------------- test/integration/test-apt-progress-fd-deb822 | 8 +++---- 2 files changed, 22 insertions(+), 22 deletions(-) (limited to 'test') diff --git a/test/integration/test-apt-progress-fd b/test/integration/test-apt-progress-fd index 2b9b6532a..4c19a7b00 100755 --- a/test/integration/test-apt-progress-fd +++ b/test/integration/test-apt-progress-fd @@ -18,11 +18,11 @@ testsuccess aptget install testing=0.1 -y -o APT::Status-Fd=3 testfileequal './apt-progress.log' 'dlstatus:1:0.0000:Retrieving file 1 of 1 dlstatus:1:100.0000:Retrieving file 1 of 1 pmstatus:dpkg-exec:0.0000:Running dpkg -pmstatus:testing:0.0000:Installing testing (amd64) -pmstatus:testing:20.0000:Preparing testing (amd64) -pmstatus:testing:40.0000:Unpacking testing (amd64) +pmstatus:testing:0.0000:Preparing testing (amd64) +pmstatus:testing:20.0000:Unpacking testing (amd64) +pmstatus:testing:40.0000:Installing testing (amd64) pmstatus:dpkg-exec:40.0000:Running dpkg -pmstatus:testing:40.0000:Configuring testing (amd64) +pmstatus:testing:40.0000:Preparing to configure testing (amd64) pmstatus:testing:60.0000:Configuring testing (amd64) pmstatus:testing:80.0000:Installed testing (amd64)' @@ -32,11 +32,11 @@ testsuccess aptget install testing=0.8.15 -y -o APT::Status-Fd=3 testfileequal './apt-progress.log' 'dlstatus:1:0.0000:Retrieving file 1 of 1 dlstatus:1:100.0000:Retrieving file 1 of 1 pmstatus:dpkg-exec:0.0000:Running dpkg -pmstatus:testing:0.0000:Installing testing (amd64) -pmstatus:testing:20.0000:Preparing testing (amd64) -pmstatus:testing:40.0000:Unpacking testing (amd64) +pmstatus:testing:0.0000:Preparing testing (amd64) +pmstatus:testing:20.0000:Unpacking testing (amd64) +pmstatus:testing:40.0000:Installing testing (amd64) pmstatus:dpkg-exec:40.0000:Running dpkg -pmstatus:testing:40.0000:Configuring testing (amd64) +pmstatus:testing:40.0000:Preparing to configure testing (amd64) pmstatus:testing:60.0000:Configuring testing (amd64) pmstatus:testing:80.0000:Installed testing (amd64)' @@ -46,11 +46,11 @@ testsuccess aptget install testing=0.8.15 --reinstall -y -o APT::Status-Fd=3 testfileequal './apt-progress.log' 'dlstatus:1:0.0000:Retrieving file 1 of 1 dlstatus:1:100.0000:Retrieving file 1 of 1 pmstatus:dpkg-exec:0.0000:Running dpkg -pmstatus:testing:0.0000:Installing testing (amd64) -pmstatus:testing:20.0000:Preparing testing (amd64) -pmstatus:testing:40.0000:Unpacking testing (amd64) +pmstatus:testing:0.0000:Preparing testing (amd64) +pmstatus:testing:20.0000:Unpacking testing (amd64) +pmstatus:testing:40.0000:Installing testing (amd64) pmstatus:dpkg-exec:40.0000:Running dpkg -pmstatus:testing:40.0000:Configuring testing (amd64) +pmstatus:testing:40.0000:Preparing to configure testing (amd64) pmstatus:testing:60.0000:Configuring testing (amd64) pmstatus:testing:80.0000:Installed testing (amd64)' @@ -58,8 +58,8 @@ pmstatus:testing:80.0000:Installed testing (amd64)' exec 3> apt-progress.log testsuccess aptget remove testing -y -o APT::Status-Fd=3 testfileequal './apt-progress.log' 'pmstatus:dpkg-exec:0.0000:Running dpkg -pmstatus:testing:0.0000:Removing testing (amd64) -pmstatus:testing:33.3333:Preparing for removal of testing (amd64) +pmstatus:testing:0.0000:Preparing for removal of testing (amd64) +pmstatus:testing:33.3333:Removing testing (amd64) pmstatus:testing:66.6667:Removing testing (amd64) pmstatus:dpkg-exec:66.6667:Running dpkg' @@ -69,11 +69,11 @@ testsuccess aptget install testing2:i386 -y -o APT::Status-Fd=3 testfileequal './apt-progress.log' 'dlstatus:1:0.0000:Retrieving file 1 of 1 dlstatus:1:100.0000:Retrieving file 1 of 1 pmstatus:dpkg-exec:0.0000:Running dpkg -pmstatus:testing2:0.0000:Installing testing2 (i386) -pmstatus:testing2:20.0000:Preparing testing2 (i386) -pmstatus:testing2:40.0000:Unpacking testing2 (i386) +pmstatus:testing2:0.0000:Preparing testing2 (i386) +pmstatus:testing2:20.0000:Unpacking testing2 (i386) +pmstatus:testing2:40.0000:Installing testing2 (i386) pmstatus:dpkg-exec:40.0000:Running dpkg -pmstatus:testing2:40.0000:Configuring testing2 (i386) +pmstatus:testing2:40.0000:Preparing to configure testing2 (i386) pmstatus:testing2:60.0000:Configuring testing2 (i386) pmstatus:testing2:80.0000:Installed testing2 (i386)' diff --git a/test/integration/test-apt-progress-fd-deb822 b/test/integration/test-apt-progress-fd-deb822 index 0c6c525ae..dd66e28a9 100755 --- a/test/integration/test-apt-progress-fd-deb822 +++ b/test/integration/test-apt-progress-fd-deb822 @@ -23,17 +23,17 @@ Message: Running dpkg Status: progress Package: testing:amd64 Percent: 0.0000 -Message: Installing testing (amd64) +Message: Preparing testing (amd64) Status: progress Package: testing:amd64 Percent: 20.0000 -Message: Preparing testing (amd64) +Message: Unpacking testing (amd64) Status: progress Package: testing:amd64 Percent: 40.0000 -Message: Unpacking testing (amd64) +Message: Installing testing (amd64) Status: progress Percent: 40.0000 @@ -42,7 +42,7 @@ Message: Running dpkg Status: progress Package: testing:amd64 Percent: 40.0000 -Message: Configuring testing (amd64) +Message: Preparing to configure testing (amd64) Status: progress Package: testing:amd64 -- cgit v1.2.3