#!/bin/sh
set -e

TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"
setupenvironment
allowremovemanual
configarchitecture 'amd64'

insertpackage 'unstable' 'untouchable-for-solving' 'all' '1' 'Conflicts: main'
insertpackage 'installed' 'bad' 'all' '1' 'Depends: main (= 1)'
insertpackage 'unstable' 'bad' 'all' '2' 'Depends: main (= 2), untouchable-for-solving'

insertpackage 'installed' 'main' 'all' '1'
insertpackage 'unstable' 'main' 'all' '2' 'Breaks: bad'

insertpackage 'unstable' 'else' 'all' '1'
insertpackage 'unstable' 'meta' 'all' '1' 'Depends: main (= 2) | else'

setupaptarchive

testsuccessequal 'Reading package lists...
Building dependency tree...
The following packages will be REMOVED:
  bad
The following packages will be upgraded:
  main
1 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
Remv bad [1]
Inst main [1] (2 unstable [all])
Conf main (2 unstable [all])' apt install -s main
testsuccess apt install -s main -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 -o Debug::pkgDepCache::AutoInstall=1
testfailure grep 'untouchable-for-solving' rootdir/tmp/testsuccess.output
testsuccessequal 'Reading package lists...
Building dependency tree...
The following additional packages will be installed:
  main
The following packages will be REMOVED:
  bad
The following NEW packages will be installed:
  meta
The following packages will be upgraded:
  main
1 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Remv bad [1]
Inst main [1] (2 unstable [all])
Inst meta (1 unstable [all])
Conf main (2 unstable [all])
Conf meta (1 unstable [all])' apt install -s meta
testsuccess apt install -s meta -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 -o Debug::pkgDepCache::AutoInstall=1
testfailure grep 'untouchable-for-solving' rootdir/tmp/testsuccess.output
