summaryrefslogtreecommitdiff
path: root/test/integration
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2020-06-19 18:49:11 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2020-07-02 18:57:11 +0200
commit1f910d94add8f20ebfa5999a7795e678a4af0826 (patch)
tree7404454d1641db86bf12f067ba13e6d772577595 /test/integration
parentcfd0172fb0eeb15b2e2427c0e11b2ec65f501839 (diff)
Add dependency points in the resolver also to providers
We were traditionally adding points for some dependency types to the real package, but we should also do it for providers of that package to help the resolver especially if the real package is for some reason not tagged for removal yet/anymore. While at it we ensure that the points are only attributed once for each package as especially with versioned provides a package can nowadays provide another many times and would hence acquire a lot of points.
Diffstat (limited to 'test/integration')
-rwxr-xr-xtest/integration/test-resolver-provider-exchange107
1 files changed, 107 insertions, 0 deletions
diff --git a/test/integration/test-resolver-provider-exchange b/test/integration/test-resolver-provider-exchange
new file mode 100755
index 000000000..3f5310fa6
--- /dev/null
+++ b/test/integration/test-resolver-provider-exchange
@@ -0,0 +1,107 @@
+#!/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 ' [stuff10:amd64 stuff0:amd64 stuff1:amd64 stuff2:amd64 stuff3:amd64 stuff4:amd64 stuff5:amd64 stuff6:amd64 stuff7:amd64 stuff8:amd64 stuff9:amd64 ]'