summaryrefslogtreecommitdiff
path: root/test/integration/test-disappearing-packages
blob: ebf2bb14f4f2e1cbebff6dd66a69445ca3d84165 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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