summaryrefslogtreecommitdiffstats
path: root/test/integration/test-apt-get-install-virtual-pkgs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xtest/integration/test-apt-get-install-virtual-pkgs138
1 files changed, 138 insertions, 0 deletions
diff --git a/test/integration/test-apt-get-install-virtual-pkgs b/test/integration/test-apt-get-install-virtual-pkgs
new file mode 100755
index 0000000..99e01ab
--- /dev/null
+++ b/test/integration/test-apt-get-install-virtual-pkgs
@@ -0,0 +1,138 @@
+#!/bin/sh
+set -e
+
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
+setupenvironment
+configarchitecture 'amd64' 'i386'
+
+insertpackage 'unstable' 'foo' 'amd64' '1' 'Provides: foo-prv'
+
+insertpackage 'unstable' 'baz1' 'amd64' '1' 'Provides: foo-prv1'
+insertpackage 'unstable' 'foo1' 'amd64' '1' 'Provides: foo-prv1'
+
+insertpackage 'unstable' 'baz2' 'amd64' '1' 'Provides: foo-prv2'
+insertpackage 'unstable' 'foo2' 'amd64' '2' 'Provides: foo-prv2:amd64'
+
+insertpackage 'unstable' 'baz3' 'amd64' '1' 'Provides: foo-prv3'
+insertpackage 'unstable' 'foo3' 'i386' '2' 'Provides: foo-prv3:amd64'
+
+insertpackage 'unstable' 'baz4' 'amd64' '1' 'Provides: foo-prv4:amd64'
+insertpackage 'unstable' 'foo4' 'i386' '2' 'Provides: foo-prv4:amd64'
+
+insertpackage 'experimental' 'baz5' 'amd64' '1' 'Provides: foo-prv5:amd64'
+insertpackage 'experimental' 'foo5' 'i386' '2' 'Provides: foo-prv5:amd64'
+
+insertpackage 'stable' 'debhelper' 'amd64,i386' '1' 'Provides: debhelper-compat (= 12)'
+insertpackage 'unstable,testing' 'debhelper' 'amd64,i386' '2' 'Provides: debhelper-compat (= 13)'
+insertpackage 'experimental' 'debhelper' 'amd64,i386' '3' 'Provides: debhelper-compat (= 13)'
+insertpackage 'experimental' 'debhelper-ng' 'amd64,i386' '4' 'Provides: debhelper-compat (= 13)'
+
+setupaptarchive
+
+testsuccessequal "Reading package lists...
+Building dependency tree...
+Note, selecting 'foo' instead of 'foo-prv'
+The following NEW packages will be installed:
+ foo
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst foo (1 unstable [amd64])
+Conf foo (1 unstable [amd64])" aptget install foo-prv -s
+
+testvirtuals() {
+ testfailureequal "Reading package lists...
+Building dependency tree...
+Package $1 is a virtual package provided by:
+ $3
+ $2
+You should explicitly select one to install.
+
+E: Package '$1' has no installation candidate" aptget install $1 -s
+}
+
+testvirtuals 'foo-prv1' 'baz1 1' 'foo1 1'
+testvirtuals 'foo-prv2' 'baz2 1' 'foo2 2'
+testvirtuals 'foo-prv3' 'baz3 1' 'foo3:i386 2'
+testvirtuals 'foo-prv4' 'baz4 1' 'foo4:i386 2'
+testvirtuals 'foo-prv5' 'baz5 1' 'foo5:i386 2'
+
+echo 'Package: *
+Pin: release a=experimental
+Pin-Priority: -1' > rootdir/etc/apt/preferences.d/experimental.pref
+
+testfailureequal "Reading package lists...
+Building dependency tree...
+Package foo-prv5 is a virtual package provided by:
+ foo5:i386 2 [Not candidate version]
+ baz5 1 [Not candidate version]
+
+E: Package 'foo-prv5' has no installation candidate" aptget install foo-prv5 -s
+
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+ debhelper
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst debhelper (2 testing, unstable [amd64])
+Conf debhelper (2 testing, unstable [amd64])' apt install debhelper -s
+testsuccessequal "Reading package lists...
+Building dependency tree...
+Note, selecting 'debhelper' instead of 'debhelper-compat'
+The following NEW packages will be installed:
+ debhelper
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst debhelper (2 testing, unstable [amd64])
+Conf debhelper (2 testing, unstable [amd64])" apt install debhelper-compat -s
+testsuccessequal "Reading package lists...
+Building dependency tree...
+Note, selecting 'debhelper' instead of 'debhelper-compat'
+Selected version '1' (stable [amd64]) for 'debhelper'
+The following NEW packages will be installed:
+ debhelper
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst debhelper (1 stable [amd64])
+Conf debhelper (1 stable [amd64])" apt install debhelper-compat=12 -s
+testsuccessequal "Reading package lists...
+Building dependency tree...
+Note, selecting 'debhelper' instead of 'debhelper-compat'
+Selected version '1' (stable [amd64]) for 'debhelper'
+The following NEW packages will be installed:
+ debhelper
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst debhelper (1 stable [amd64])
+Conf debhelper (1 stable [amd64])" apt install debhelper-compat/stable -s
+# by version selection we have selected the experimental debhelper-ng here
+# but dehelper stays at the candidate as it already provides 13
+testfailureequal "Reading package lists...
+Building dependency tree...
+Package debhelper-compat is a virtual package provided by:
+ debhelper 2 (= 13)
+ debhelper-ng 4 (= 13)
+You should explicitly select one to install.
+
+E: Version '13' for 'debhelper-compat' was not found" apt install debhelper-compat=13 -s
+testsuccessequal "Reading package lists...
+Building dependency tree...
+Note, selecting 'debhelper' instead of 'debhelper-compat'
+Selected version '2' (testing, unstable [amd64]) for 'debhelper'
+The following NEW packages will be installed:
+ debhelper
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst debhelper (2 testing, unstable [amd64])
+Conf debhelper (2 testing, unstable [amd64])" apt install debhelper-compat/unstable -s
+testfailureequal "Reading package lists...
+Building dependency tree...
+Package debhelper-compat is a virtual package provided by:
+ debhelper-ng 4 (= 13)
+ debhelper 3 (= 13)
+You should explicitly select one to install.
+
+E: Version '13' for 'debhelper-compat' was not found" apt install debhelper-compat=13 -st experimental
+testfailureequal "Reading package lists...
+Building dependency tree...
+Package debhelper-compat is a virtual package provided by:
+ debhelper-ng 4 (= 13)
+ debhelper 3 (= 13)
+You should explicitly select one to install.
+
+E: Release 'experimental' for 'debhelper-compat' was not found" apt install debhelper-compat/experimental -s