#!/bin/sh
set -e
-TESTDIR=$(readlink -f $(dirname $0))
-. $TESTDIR/framework
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
setupenvironment
configarchitecture 'amd64' 'i386'
insertpackage 'unstable' 'needsfoover1' 'amd64,i386' '1' 'Depends: foo:any (>= 1)'
insertpackage 'unstable' 'needsfoover2' 'amd64,i386' '1' 'Depends: foo:any (>= 2)'
insertpackage 'unstable' 'hatesfoo' 'amd64' '1' 'Conflicts: foo'
-insertpackage 'unstable' 'hatesfooany' 'amd64' '1' 'Conflicts: foo:any' # this makes no sense…
+insertpackage 'unstable' 'hatesfooany' 'amd64' '1' 'Conflicts: foo:any' # this makes no sense…?
insertpackage 'unstable' 'hatesfoonative' 'amd64' '1' 'Conflicts: foo:amd64'
insertpackage 'unstable' 'coolfoo' 'amd64' '1' 'Multi-Arch:allowed
Provides: coolbar (= 2)'
insertpackage 'unstable' 'needscoolfoo' 'amd64' '1' 'Depends: coolfoo, coolbar'
insertpackage 'unstable' 'needscoolfooany' 'amd64' '1' 'Depends: coolfoo:any, coolbar:any'
-insertpackage 'unstable' 'needscoolfoover0' 'amd64' '1' 'Depends: coolfoo:any (>= 1), coolbar'
-insertpackage 'unstable' 'needscoolfoover1' 'amd64' '1' 'Depends: coolfoo:any (>= 1), coolbar (>= 1)'
-insertpackage 'unstable' 'needscoolfoover2' 'amd64' '1' 'Depends: coolfoo:any (>= 2), coolbar (>= 1)'
-insertpackage 'unstable' 'needscoolfoover3' 'amd64' '1' 'Depends: coolfoo:any (>= 2), coolbar (>= 3)'
+insertpackage 'unstable' 'needscoolfoover0' 'amd64' '1' 'Depends: coolfoo:any (>= 1), coolbar:any'
+insertpackage 'unstable' 'needscoolfoover1' 'amd64' '1' 'Depends: coolfoo:any (>= 1), coolbar:any (>= 1)'
+insertpackage 'unstable' 'needscoolfoover2' 'amd64' '1' 'Depends: coolfoo:any (>= 2), coolbar:any (>= 1)'
+insertpackage 'unstable' 'needscoolfoover3' 'amd64' '1' 'Depends: coolfoo:any (>= 2), coolbar:any (>= 3)'
setupaptarchive
solveableinsinglearch0() {
testsuccessequal 'Reading package lists...
Building dependency tree...
-The following extra packages will be installed:
+The following additional packages will be installed:
foo
The following NEW packages will be installed:
foo needsfoo
solveableinsinglearch0
testsuccessequal 'Reading package lists...
Building dependency tree...
-The following extra packages will be installed:
+The following additional packages will be installed:
foo:i386
The following NEW packages will be installed:
foo:i386 needsfoo:i386
solveableinsinglearch1() {
testsuccessequal "Reading package lists...
Building dependency tree...
-The following extra packages will be installed:
+The following additional packages will be installed:
foo
The following NEW packages will be installed:
foo $1
solveableinsinglearch1 $1
testsuccessequal "Reading package lists...
Building dependency tree...
-The following extra packages will be installed:
+The following additional packages will be installed:
foo
The following NEW packages will be installed:
foo $1:i386
E: Unable to correct problems, you have held broken packages."
NEEDSFOO2FOREIGN="$BADPREFIX
The following packages have unmet dependencies:
- needsfoover2:i386 : Depends: foo:any:i386 (>= 2)
+ needsfoover2:i386 : Depends: foo:any (>= 2)
E: Unable to correct problems, you have held broken packages."
testfailureequal "$NEEDSFOO2NATIVE" aptget install needsfoover2 -s
testfailureequal "$NEEDSFOO2FOREIGN" aptget install needsfoover2:i386 -s
The following packages have unmet dependencies:
hatesfoo : Conflicts: foo but 1 is to be installed
E: Unable to correct problems, you have held broken packages." aptget install foo hatesfoo -s
+ # the message differs slightly between single and multiarch
+ testfailuremsg 'E: Unable to correct problems, you have held broken packages.' aptget install foo hatesfooany -s
testfailureequal "$BADPREFIX
The following packages have unmet dependencies:
- hatesfooany : Conflicts: foo:any
-E: Unable to correct problems, you have held broken packages." aptget install foo hatesfooany -s
- testfailureequal "$BADPREFIX
-The following packages have unmet dependencies:
- hatesfoonative : Conflicts: foo but 1 is to be installed
+ hatesfoonative : Conflicts: foo:amd64
E: Unable to correct problems, you have held broken packages." aptget install foo hatesfoonative -s
}
solveableinsinglearch2
solveableinsinglearch3() {
testsuccessequal "Reading package lists...
Building dependency tree...
-The following extra packages will be installed:
+The following additional packages will be installed:
coolfoo
The following NEW packages will be installed:
coolfoo needscoolfoo
Conf needscoolfoo (1 unstable [amd64])" aptget install needscoolfoo -s
testsuccessequal "Reading package lists...
Building dependency tree...
-The following extra packages will be installed:
+The following additional packages will be installed:
coolfoo
The following NEW packages will be installed:
coolfoo coolfoover needscoolfoo
Conf coolfoo (1 unstable [amd64])
Conf coolfoover (1 unstable [amd64])
Conf needscoolfoo (1 unstable [amd64])" aptget install needscoolfoo coolfoover -s
- testfailureequal "$BADPREFIX
-The following packages have unmet dependencies:
- needscoolfooany : Depends: coolbar:any but it is not installable
-E: Unable to correct problems, you have held broken packages." aptget install needscoolfooany -s
+ testsuccessequal "Reading package lists...
+Building dependency tree...
+The following additional packages will be installed:
+ coolfoo
+The following NEW packages will be installed:
+ coolfoo needscoolfooany
+0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
+Inst coolfoo (1 unstable [amd64])
+Inst needscoolfooany (1 unstable [amd64])
+Conf coolfoo (1 unstable [amd64])
+Conf needscoolfooany (1 unstable [amd64])" aptget install needscoolfooany -s
testsuccessequal 'Reading package lists...
Building dependency tree...
-The following extra packages will be installed:
+The following additional packages will be installed:
coolfoo
The following NEW packages will be installed:
coolfoo needscoolfoover0
Conf needscoolfoover0 (1 unstable [amd64])' aptget install needscoolfoover0 -s
testsuccessequal 'Reading package lists...
Building dependency tree...
-The following extra packages will be installed:
+The following additional packages will be installed:
coolfoo coolfoover
The following NEW packages will be installed:
coolfoo coolfoover needscoolfoover1
testfailureequal "$BADPREFIX
The following packages have unmet dependencies:
needscoolfoover3 : Depends: coolfoo:any (>= 2)
- Depends: coolbar (>= 3)
+ Depends: coolbar:any (>= 3)
E: Unable to correct problems, you have held broken packages." aptget install needscoolfoover3 -s
}
solveableinsinglearch3
solveableinsinglearch0
testfailureequal 'Reading package lists...
Building dependency tree...
-E: Unable to locate package needsfoo' aptget install needsfoo:i386 -s
+E: Unable to locate package needsfoo:i386' aptget install needsfoo:i386 -s
solveableinsinglearch1 'needsfooany'
solveableinsinglearch1 'needsfoover1'
testfailureequal "$NEEDSFOO2NATIVE" aptget install needsfoover2 -s
solveableinsinglearch2
solveableinsinglearch3
+
+msgmsg 'multi-arch with barbarian archs'
+configarchitecture 'amd64' 'i386'
+insertinstalledpackage 'foo' 'armel' '1' 'Multi-Arch: allowed'
+insertinstalledpackage 'coolfoo' 'armel' '1' 'Multi-Arch:allowed
+Provides: coolbar'
+insertinstalledpackage 'bar-needer' 'armel' '1.0' 'Depends: coolbar:any'
+
+testsuccess aptget check
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+The following additional packages will be installed:
+ foo
+The following packages will be REMOVED:
+ foo:armel
+The following NEW packages will be installed:
+ foo needsfooany
+0 upgraded, 2 newly installed, 1 to remove and 0 not upgraded.
+Remv foo:armel [1]
+Inst foo (1 unstable [amd64])
+Inst needsfooany (1 unstable [amd64])
+Conf foo (1 unstable [amd64])
+Conf needsfooany (1 unstable [amd64])' aptget install needsfooany -s
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+The following additional packages will be installed:
+ foo
+The following packages will be REMOVED:
+ foo:armel
+The following NEW packages will be installed:
+ foo needsfooany:i386
+0 upgraded, 2 newly installed, 1 to remove and 0 not upgraded.
+Remv foo:armel [1]
+Inst foo (1 unstable [amd64])
+Inst needsfooany:i386 (1 unstable [i386])
+Conf foo (1 unstable [amd64])
+Conf needsfooany:i386 (1 unstable [i386])' aptget install needsfooany:i386 -s
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+The following additional packages will be installed:
+ coolfoo
+The following packages will be REMOVED:
+ coolfoo:armel
+The following NEW packages will be installed:
+ coolfoo needscoolfoover0
+0 upgraded, 2 newly installed, 1 to remove and 0 not upgraded.
+Remv coolfoo:armel [1] [bar-needer:armel ]
+Inst coolfoo (1 unstable [amd64])
+Inst needscoolfoover0 (1 unstable [amd64])
+Conf coolfoo (1 unstable [amd64])
+Conf needscoolfoover0 (1 unstable [amd64])' aptget install needscoolfoover0 -s