]>
Commit | Line | Data |
---|---|---|
4e6a7e26 DK |
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 | ||
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. | |
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 | ||
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: | |
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 |