]> git.saurik.com Git - apt.git/blobdiff - test/integration/test-essential-force-loopbreak
pass --force-remove-essential to dpkg only if needed
[apt.git] / test / integration / test-essential-force-loopbreak
index ac8fc6d2833f264329ae861860c186d969f15775..f585e9c424b02061e3356bc03092315c265a9466 100755 (executable)
@@ -1,8 +1,8 @@
 #!/bin/sh
 set -e
 
-TESTDIR=$(readlink -f $(dirname $0))
-. $TESTDIR/framework
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
 
 setupenvironment
 configarchitecture 'native'
@@ -25,9 +25,9 @@ cp -a rootdir/var/lib/dpkg/status dpkg.status.backup
 testforcebreak() {
        cp -a dpkg.status.backup rootdir/var/lib/dpkg/status
        rm -f rootdir/var/lib/apt/extended_states
-       testequal "Reading package lists...
+       testfailureequal "Reading package lists...
 Building dependency tree...
-The following extra packages will be installed:
+The following additional packages will be installed:
   sysvinit
 The following NEW packages will be installed:
   systemd-sysv
@@ -37,13 +37,16 @@ The following packages will be upgraded:
 E: This installation run will require temporarily removing the essential package sysvinit:$(getarchitecture 'native') due to a Conflicts/Pre-Depends loop. This is often bad, but if you really want to do it, activate the APT::Force-LoopBreak option.
 E: Internal Error, Could not early remove sysvinit:$(dpkg --print-architecture) (2)" aptget install systemd-sysv -t "$1" -s
        # ensure that really nothing happens
-       testfailure aptget install systemd-sysv -y -t "$1" -o Debug::pkgPackageManager=1
+       testfailure aptget install systemd-sysv -y -t "$1"
        testdpkginstalled 'sysvinit'
        testdpkgnotinstalled 'systemd-sysv'
 
        # with enough force however …
        cp -a dpkg.status.backup rootdir/var/lib/dpkg/status
-       testsuccess aptget install systemd-sysv -y -t "$1" -o Debug::pkgPackageManager=1 -o APT::Force-LoopBreak=1
+       testsuccess aptget install systemd-sysv -y -t "$1" -o APT::Force-LoopBreak=1 -o Debug::pkgDpkgPm=1
+       cp rootdir/tmp/testsuccess.output apt.output
+       testsuccess grep -- '--force-remove-essential --remove sysvinit' apt.output
+       testsuccess aptget install systemd-sysv -y -t "$1" -o APT::Force-LoopBreak=1
        testdpkginstalled 'sysvinit' 'systemd-sysv'
 }