]>
Commit | Line | Data |
---|---|---|
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 | testsuccess grep "^E: Couldn't configure predependsa:i386, probably a dependency cycle.$" 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 | testsuccess grep "^E: Could not configure 'predependsdependsb:i386'. $" 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 | testsuccess grep "^E: Couldn't configure predependsa:i386, probably a dependency cycle.$" 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 | testsuccess grep "^E: Could not configure 'predependsdependsb:i386'. $" rootdir/tmp/testfailure.output |