summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2016-03-10 13:06:29 +0100
committerDavid Kalnischkies <david@kalnischkies.de>2016-03-14 11:47:19 +0100
commit915f4ac6d9ae239bd1aef47892075d019ec8b581 (patch)
tree8b8b31716dfc877aff45e8d1c4d9e7d0df3618a2
parent12f40394b3940573c0e63d74722a95148fb1ad39 (diff)
flush line-clearing on progress stop before post-invoke
All other interactions with std::cout are flushed directly, just in the stop case we hadn't done it – no problem expect if there is still output coming after apt is done like in the case of a post-invoke script producing output. Closes: 793672
-rw-r--r--apt-pkg/install-progress.cc1
-rwxr-xr-xtest/integration/test-failing-maintainer-scripts7
2 files changed, 6 insertions, 2 deletions
diff --git a/apt-pkg/install-progress.cc b/apt-pkg/install-progress.cc
index 14409e301..f1a9f42dc 100644
--- a/apt-pkg/install-progress.cc
+++ b/apt-pkg/install-progress.cc
@@ -333,6 +333,7 @@ void PackageManagerFancy::Stop()
// override the progress line (sledgehammer)
static const char* clear_screen_below_cursor = "\033[J";
std::cout << clear_screen_below_cursor;
+ std::flush(std::cout);
}
child_pty = -1;
}
diff --git a/test/integration/test-failing-maintainer-scripts b/test/integration/test-failing-maintainer-scripts
index 781d06e5c..8cf2380ee 100755
--- a/test/integration/test-failing-maintainer-scripts
+++ b/test/integration/test-failing-maintainer-scripts
@@ -84,5 +84,8 @@ testdpkginstalled failure-postrm
testmyfailure aptget purge failure-postrm -y
# FIXME: test with output going to a PTY as it usually does
-#cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status
-#aptget install failure-preinst -y
+if false; then
+ cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status
+ apt install dependee -y || true
+ apt install failure-postinst -y || true
+fi