]>
Commit | Line | Data |
---|---|---|
4e6a7e26 DK |
1 | #!/bin/sh |
2 | set -e | |
3 | ||
3abb6a6a DK |
4 | TESTDIR="$(readlink -f "$(dirname "$0")")" |
5 | . "$TESTDIR/framework" | |
4e6a7e26 DK |
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 | |
03dfa26f | 23 | insertpackage 'unstable,installed' 'dependsa' 'i386' '1' 'Depends: dependsb |
4e6a7e26 | 24 | Essential: yes' |
03dfa26f | 25 | insertpackage 'unstable,installed' 'dependsb' 'i386' '1' 'Depends: dependsa |
4e6a7e26 DK |
26 | Essential: yes' |
27 | ||
28 | # pre-depends loop | |
03dfa26f | 29 | insertpackage 'unstable,installed' 'predependsa' 'i386' '1' 'Pre-Depends: predependsb |
4e6a7e26 | 30 | Essential: yes' |
03dfa26f | 31 | insertpackage 'unstable,installed' 'predependsb' 'i386' '1' 'Pre-Depends: predependsa |
4e6a7e26 DK |
32 | Essential: yes' |
33 | ||
34 | # pre-depends-to-depends loop | |
03dfa26f | 35 | insertpackage 'unstable,installed' 'predependsdependsa' 'i386' '1' 'Pre-Depends: predependsdependsb |
4e6a7e26 | 36 | Essential: yes' |
03dfa26f | 37 | insertpackage 'unstable,installed' 'predependsdependsb' 'i386' '1' 'Depends: predependsdependsa |
4e6a7e26 DK |
38 | Essential: yes' |
39 | ||
40 | setupaptarchive | |
41 | ||
25b86db1 | 42 | testsuccessequal 'Reading package lists... |
4e6a7e26 DK |
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 | ||
25b86db1 | 50 | testsuccessequal 'Reading package lists... |
4e6a7e26 DK |
51 | Building dependency tree... |
52 | 0 upgraded, 0 newly installed, 2 reinstalled, 0 to remove and 0 not upgraded. | |
03dfa26f JAK |
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 | |
4e6a7e26 DK |
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). | |
03dfa26f JAK |
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 | |
4e6a7e26 DK |
62 | |
63 | # FIXME: the error message is a catch all here, not like the one above | |
03dfa26f JAK |
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 | |
4e6a7e26 DK |
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 | ||
25b86db1 | 71 | testsuccessequal 'Reading package lists... |
4e6a7e26 DK |
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 | ||
25b86db1 | 81 | testsuccessequal 'Reading package lists... |
4e6a7e26 DK |
82 | Building dependency tree... |
83 | The following NEW packages will be installed: | |
03dfa26f | 84 | dependsa dependsb |
4e6a7e26 | 85 | 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. |
03dfa26f JAK |
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 | |
4e6a7e26 DK |
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). | |
03dfa26f JAK |
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 | |
4e6a7e26 DK |
95 | |
96 | # FIXME: the error message is a catch all here, not like the one above | |
03dfa26f JAK |
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 |