]> git.saurik.com Git - apt.git/blob - test/integration/test-bug-770291-reinstall
headers are for declarations only
[apt.git] / test / integration / test-bug-770291-reinstall
1 #!/bin/sh
2 set -e
3
4 TESTDIR=$(readlink -f $(dirname $0))
5 . $TESTDIR/framework
6 setupenvironment
7 configarchitecture 'i386'
8
9 insertpackage 'unstable,installed' 'libc6' 'i386' '1'
10 insertpackage 'unstable,installed' 'libselinux1' 'i386' '1'
11
12 cp rootdir/var/lib/dpkg/status dpkg.status
13
14 insertpackage 'unstable,installed' 'init' 'i386' '1' 'Depends: systemd-sysv
15 Essential: yes'
16 insertpackage 'unstable,installed' 'systemd-sysv' 'i386' '215-5+b1' 'Depends: systemd (= 215-5+b1)
17 Pre-Depends: systemd'
18 # fun fact: we need these two pre-depends to get systemd ordered before systemd-sysv as
19 # many pre-depends mean: do early (as they are a pain, so get them out of the way early)
20 insertpackage 'unstable,installed' 'systemd' 'i386' '215-5+b1' 'Pre-Depends: libc6, libselinux1'
21
22 # depends loop
23 insertpackage 'unstable,installed' 'dependsA' 'i386' '1' 'Depends: dependsB
24 Essential: yes'
25 insertpackage 'unstable,installed' 'dependsB' 'i386' '1' 'Depends: dependsA
26 Essential: yes'
27
28 # pre-depends loop
29 insertpackage 'unstable,installed' 'predependsA' 'i386' '1' 'Pre-Depends: predependsB
30 Essential: yes'
31 insertpackage 'unstable,installed' 'predependsB' 'i386' '1' 'Pre-Depends: predependsA
32 Essential: yes'
33
34 # pre-depends-to-depends loop
35 insertpackage 'unstable,installed' 'predependsdependsA' 'i386' '1' 'Pre-Depends: predependsdependsB
36 Essential: yes'
37 insertpackage 'unstable,installed' 'predependsdependsB' 'i386' '1' 'Depends: predependsdependsA
38 Essential: yes'
39
40 setupaptarchive
41
42 testsuccessequal 'Reading package lists...
43 Building dependency tree...
44 0 upgraded, 0 newly installed, 2 reinstalled, 0 to remove and 0 not upgraded.
45 Inst systemd [215-5+b1] (215-5+b1 unstable [i386])
46 Conf systemd (215-5+b1 unstable [i386])
47 Inst systemd-sysv [215-5+b1] (215-5+b1 unstable [i386])
48 Conf systemd-sysv (215-5+b1 unstable [i386])' aptget install --reinstall systemd systemd-sysv -s
49
50 testsuccessequal 'Reading package lists...
51 Building dependency tree...
52 0 upgraded, 0 newly installed, 2 reinstalled, 0 to remove and 0 not upgraded.
53 Inst dependsA [1] (1 unstable [i386])
54 Inst dependsB [1] (1 unstable [i386])
55 Conf dependsB (1 unstable [i386])
56 Conf dependsA (1 unstable [i386])' aptget install --reinstall dependsA dependsB -s
57
58 # there is a chance dpkg can actually do these, BUT this depends on the maintainerscripts (not) present
59 # which is very very risky to depend on (and apt doesn't know about that anyhow).
60 testfailure aptget install --reinstall predependsA predependsB -s -o Debug::pkgPackageManager=1
61 testequal "E: Couldn't configure predependsA:i386, probably a dependency cycle." tail -n1 rootdir/tmp/testfailure.output
62
63 # FIXME: the error message is a catch all here, not like the one above
64 testfailure aptget install --reinstall predependsdependsA predependsdependsB -s -o Debug::pkgPackageManager=1
65 testequal "E: Could not configure 'predependsdependsB:i386'. " tail -n1 rootdir/tmp/testfailure.output
66
67
68 msgmsg 'While we are at it, lets try these loops without reinstall as well'
69 cp dpkg.status rootdir/var/lib/dpkg/status
70
71 testsuccessequal 'Reading package lists...
72 Building dependency tree...
73 The following NEW packages will be installed:
74 systemd systemd-sysv
75 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
76 Inst systemd (215-5+b1 unstable [i386])
77 Conf systemd (215-5+b1 unstable [i386])
78 Inst systemd-sysv (215-5+b1 unstable [i386])
79 Conf systemd-sysv (215-5+b1 unstable [i386])' aptget install systemd systemd-sysv -s
80
81 testsuccessequal 'Reading package lists...
82 Building dependency tree...
83 The following NEW packages will be installed:
84 dependsA dependsB
85 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
86 Inst dependsA (1 unstable [i386]) []
87 Inst dependsB (1 unstable [i386])
88 Conf dependsB (1 unstable [i386])
89 Conf dependsA (1 unstable [i386])' aptget install dependsA dependsB -s
90
91 # there is a chance dpkg can actually do these, BUT this depends on the maintainerscripts (not) present
92 # which is very very risky to depend on (and apt doesn't know about that anyhow).
93 testfailure aptget install predependsA predependsB -s -o Debug::pkgPackageManager=1
94 testequal "E: Couldn't configure predependsA:i386, probably a dependency cycle." tail -n1 rootdir/tmp/testfailure.output
95
96 # FIXME: the error message is a catch all here, not like the one above
97 testfailure aptget install predependsdependsA predependsdependsB -s -o Debug::pkgPackageManager=1
98 testequal "E: Could not configure 'predependsdependsB:i386'. " tail -n1 rootdir/tmp/testfailure.output