#!/bin/sh set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment configarchitecture 'amd64' insertinstalledpackage 'fuse' 'all' '2' insertpackage 'unstable' 'fuse3' 'all' '3' 'Conflicts: fuse Provides: fuse' insertpackage 'unstable' 'foobar-d' 'all' '1' 'Depends: fuse' insertpackage 'unstable' 'foobar-d2' 'all' '1' 'Depends: fuse Conflicts: fuse3' insertpackage 'unstable' 'foobar-d3' 'all' '1' 'Depends: fuse3' insertpackage 'unstable' 'foobar-r' 'all' '1' 'Recommends: fuse' insertpackage 'unstable' 'foobar-r2' 'all' '1' 'Recommends: fuse Conflicts: fuse3' insertpackage 'unstable' 'foobar-r3' 'all' '1' 'Recommends: fuse3' setupaptarchive installfoobars() { testsuccessequal 'Reading package lists... Building dependency tree... The following NEW packages will be installed: foobar-d 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Inst foobar-d (1 unstable [all]) Conf foobar-d (1 unstable [all])' apt install -s foobar-d testsuccessequal 'Reading package lists... Building dependency tree... The following NEW packages will be installed: foobar-d2 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Inst foobar-d2 (1 unstable [all]) Conf foobar-d2 (1 unstable [all])' apt install -s foobar-d2 testsuccessequal "Reading package lists... Building dependency tree... The following additional packages will be installed: fuse3 The following packages will be REMOVED: fuse The following NEW packages will be installed: foobar-d3 fuse3 0 upgraded, 2 newly installed, 1 to remove and 0 not upgraded. Remv fuse [2]$1 Inst fuse3 (3 unstable [all]) Inst foobar-d3 (1 unstable [all]) Conf fuse3 (3 unstable [all]) Conf foobar-d3 (1 unstable [all])" apt install -s foobar-d3 testsuccessequal 'Reading package lists... Building dependency tree... The following NEW packages will be installed: foobar-r 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Inst foobar-r (1 unstable [all]) Conf foobar-r (1 unstable [all])' apt install -s foobar-r testsuccessequal 'Reading package lists... Building dependency tree... The following NEW packages will be installed: foobar-r2 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Inst foobar-r2 (1 unstable [all]) Conf foobar-r2 (1 unstable [all])' apt install -s foobar-r2 if [ -z "$1" ]; then testsuccessequal "Reading package lists... Building dependency tree... The following additional packages will be installed: fuse3 The following packages will be REMOVED: fuse The following NEW packages will be installed: foobar-r3 fuse3 0 upgraded, 2 newly installed, 1 to remove and 0 not upgraded. Remv fuse [2]$1 Inst foobar-r3 (1 unstable [all]) Inst fuse3 (3 unstable [all]) Conf foobar-r3 (1 unstable [all]) Conf fuse3 (3 unstable [all])" apt install -s foobar-r3 else testsuccessequal "Reading package lists... Building dependency tree... The following additional packages will be installed: fuse3 The following packages will be REMOVED: fuse The following NEW packages will be installed: foobar-r3 fuse3 0 upgraded, 2 newly installed, 1 to remove and 0 not upgraded. Remv fuse [2]$1 Inst fuse3 (3 unstable [all]) Inst foobar-r3 (1 unstable [all]) Conf fuse3 (3 unstable [all]) Conf foobar-r3 (1 unstable [all])" apt install -s foobar-r3 fi } msgmsg 'fuse has no installed dependers' installfoobars for i in $(seq 0 10); do insertinstalledpackage "stuff$i" 'all' '1' 'Depends: fuse' done msgmsg 'fuse has many dependers installed' installfoobars ' [stuff0:amd64 stuff1:amd64 stuff2:amd64 stuff3:amd64 stuff4:amd64 stuff5:amd64 stuff6:amd64 stuff7:amd64 stuff8:amd64 stuff9:amd64 stuff10:amd64 ]'