summaryrefslogtreecommitdiff
path: root/test/integration/test-disappearing-packages
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2010-08-24 21:44:11 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2010-08-24 21:44:11 +0200
commit17ea77d3332ce3abbbc96a9e110a37ae055ac422 (patch)
tree611708d199721f5bca0ea4826d03da0016f3780d /test/integration/test-disappearing-packages
parent7e32e3e58d5499056b17acd0a9992704e3f55951 (diff)
parent39ee79d5b84390ae79d8cce9389c1541bcd68a25 (diff)
* merged from debian/unstable
* merge of the debian-expermental-ma branch * refresh po/pot files in doc/ and po/ * Fix spelling error in cmdline/apt-get.cc. Thanks to Osamu Aoki Closes: #594211 * Swedish (Daniel Nylander). Closes: #592366 * French (Christian Perrier) * Thai (Theppitak Karoonboonyanan). Closes: #592695 * Russian (Yuri Kozlov). Closes: #594232 * French (Christian Perrier) * apt-pkg/contrib/strutl.cc: - fix error checking for vsnprintf in its safe variant * methods/bzip2.cc: - fix error checking for read in case of failing bzip2/lzma/whatever * debian/apt.cron.daily: - create backups for our extended_states file (Closes: #593430) * apt-pkg/init.cc: - set the default values for dir::etc::trusted options correctly * ftparchive/writer.cc: - init valid-until correctly to prevent garbage entering Release file * apt-pkg/deb/debsystem.cc: - set dir::state::status based at least on dir * apt-pkg/deb/dpkgpm.cc: - use the InstVer instead of the CurrentVer for the autobit transfer * methods/http.cc: - some http servers violate HTTP1.1 by not issuing a Reason-Phrase (or at least a space after the code) especially for 200, but lets be nice and ignore it as we don't need the reason in general * apt-pkg/acquire-item.cc: - don't use ReadOnlyGzip mode for PDiffs as this mode doesn't work in combination with the AddFd methods of our hashclasses
Diffstat (limited to 'test/integration/test-disappearing-packages')
-rwxr-xr-xtest/integration/test-disappearing-packages54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/integration/test-disappearing-packages b/test/integration/test-disappearing-packages
new file mode 100755
index 000000000..ebf2bb14f
--- /dev/null
+++ b/test/integration/test-disappearing-packages
@@ -0,0 +1,54 @@
+#!/bin/sh
+set -e
+
+local TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture "i386"
+
+buildsimplenativepackage "old-pkg" "i386" "1.0" "stable"
+buildsimplenativepackage "unrelated" "all" "0.5" "unstable"
+
+setupsimplenativepackage "new-pkg" "i386" "2.0" "unstable" "Provides: old-pkg
+Replaces: old-pkg
+Conflicts: old-pkg (<< 2.0)"
+local BUILDDIR="incoming/new-pkg-2.0"
+echo "/usr/share/doc/new-pkg /usr/share/doc/old-pkg" > ${BUILDDIR}/debian/new-pkg.links
+buildpackage "$BUILDDIR" "unstable" "main"
+rm -rf "$BUILDDIR"
+
+setupsimplenativepackage "old-pkg" "all" "2.0" "unstable" "Depends: new-pkg"
+local BUILDDIR="incoming/old-pkg-2.0"
+echo "/usr/share/doc/new-pkg /usr/share/doc/old-pkg" > ${BUILDDIR}/debian/old-pkg.links
+echo "
+override_dh_link:
+ rm -rf debian/old-pkg/usr/share/doc/old-pkg/
+ dh_link" >> ${BUILDDIR}/debian/rules
+buildpackage "$BUILDDIR" "unstable" "main"
+rm -rf "$BUILDDIR"
+
+setupaptarchive
+
+aptget install old-pkg=1.0 --trivial-only -qq 2>&1 > /dev/null
+
+testfileequal "rootdir/var/lib/apt/extended_states" "" # old-pkg is manual installed
+
+local CMD="aptget dist-upgrade -y -q=0"
+msgtest "Test for equality of" "$CMD"
+local COMPAREFILE=$(mktemp)
+echo "The following package disappeared from your system as
+all files have been overwritten by other packages:
+ old-pkg
+Note: This is done automatic and on purpose by dpkg." > $COMPAREFILE
+$CMD 2>&1 | tail -n 4 | diff $COMPAREFILE - && msgpass || msgfail
+rm $COMPAREFILE
+
+sed -i rootdir/var/log/apt/history.log -e '/^Commandline: / d' -e '/^Start-Date: / d' -e '/^End-Date: / d'
+testfileequal "rootdir/var/log/apt/history.log" "
+Install: old-pkg:i386 (1.0)
+
+Install: new-pkg:i386 (2.0, automatic)
+Upgrade: old-pkg:i386 (1.0, 2.0)
+Disappeared: old-pkg (1.0)"
+
+testfileequal "rootdir/var/lib/apt/extended_states" "" # new-pkg should have get the manual flag from old-pkg