123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 |
- #!/bin/sh
- set -e
- TESTDIR="$(readlink -f "$(dirname "$0")")"
- . "$TESTDIR/framework"
- setupenvironment
- configarchitecture 'amd64' 'i386'
- insertpackage 'unstable' 'foo' 'amd64,i386' '1' 'Multi-Arch: allowed'
- insertpackage 'unstable' 'needsfoo' 'amd64,i386' '1' 'Depends: foo'
- insertpackage 'unstable' 'needsfooany' 'amd64,i386' '1' 'Depends: foo:any'
- 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' 'hatesfoonative' 'amd64' '1' 'Conflicts: foo:amd64'
- insertpackage 'unstable' 'coolfoo' 'amd64' '1' 'Multi-Arch:allowed
- Provides: coolbar'
- insertpackage 'unstable' 'coolfoover' '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: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
- BADPREFIX='Reading package lists...
- Building dependency tree...
- Some packages could not be installed. This may mean that you have
- requested an impossible situation or if you are using the unstable
- distribution that some required packages have not yet been created
- or been moved out of Incoming.
- The following information may help to resolve the situation:
- '
- solveableinsinglearch0() {
- testsuccessequal 'Reading package lists...
- Building dependency tree...
- The following additional packages will be installed:
- foo
- The following NEW packages will be installed:
- foo needsfoo
- 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
- Inst foo (1 unstable [amd64])
- Inst needsfoo (1 unstable [amd64])
- Conf foo (1 unstable [amd64])
- Conf needsfoo (1 unstable [amd64])' aptget install needsfoo -s
- }
- solveableinsinglearch0
- testsuccessequal 'Reading package lists...
- Building dependency tree...
- The following additional packages will be installed:
- foo:i386
- The following NEW packages will be installed:
- foo:i386 needsfoo:i386
- 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
- Inst foo:i386 (1 unstable [i386])
- Inst needsfoo:i386 (1 unstable [i386])
- Conf foo:i386 (1 unstable [i386])
- Conf needsfoo:i386 (1 unstable [i386])' aptget install needsfoo:i386 -s
- testfailureequal "$BADPREFIX
- The following packages have unmet dependencies:
- needsfoo:i386 : Depends: foo:i386 but it is not going to be installed
- E: Unable to correct problems, you have held broken packages." aptget install needsfoo:i386 foo:amd64 -s
- testfailureequal "$BADPREFIX
- The following packages have unmet dependencies:
- needsfoo : Depends: foo but it is not going to be installed
- E: Unable to correct problems, you have held broken packages." aptget install needsfoo foo:i386 -s
- solveableinsinglearch1() {
- testsuccessequal "Reading package lists...
- Building dependency tree...
- The following additional packages will be installed:
- foo
- The following NEW packages will be installed:
- foo $1
- 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
- Inst foo (1 unstable [amd64])
- Inst $1 (1 unstable [amd64])
- Conf foo (1 unstable [amd64])
- Conf $1 (1 unstable [amd64])" aptget install $1 -s
- }
- testneedsfooallgood() {
- solveableinsinglearch1 $1
- testsuccessequal "Reading package lists...
- Building dependency tree...
- The following additional packages will be installed:
- foo
- The following NEW packages will be installed:
- foo $1:i386
- 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
- Inst foo (1 unstable [amd64])
- Inst $1:i386 (1 unstable [i386])
- Conf foo (1 unstable [amd64])
- Conf $1:i386 (1 unstable [i386])" aptget install $1:i386 -s
- testsuccessequal "Reading package lists...
- Building dependency tree...
- The following NEW packages will be installed:
- foo:i386 $1:i386
- 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
- Inst foo:i386 (1 unstable [i386])
- Inst $1:i386 (1 unstable [i386])
- Conf foo:i386 (1 unstable [i386])
- Conf $1:i386 (1 unstable [i386])" aptget install $1:i386 foo:i386 -s
- testsuccessequal "Reading package lists...
- Building dependency tree...
- The following NEW packages will be installed:
- foo:i386 $1
- 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
- Inst foo:i386 (1 unstable [i386])
- Inst $1 (1 unstable [amd64])
- Conf foo:i386 (1 unstable [i386])
- Conf $1 (1 unstable [amd64])" aptget install $1 foo:i386 -s
- }
- testneedsfooallgood 'needsfooany'
- testneedsfooallgood 'needsfoover1'
- NEEDSFOO2NATIVE="$BADPREFIX
- The following packages have unmet dependencies:
- needsfoover2 : Depends: foo:any (>= 2)
- E: Unable to correct problems, you have held broken packages."
- NEEDSFOO2FOREIGN="$BADPREFIX
- The following packages have unmet dependencies:
- 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
- testfailureequal "$NEEDSFOO2FOREIGN" aptget install needsfoover2:i386 foo:i386 -s
- testfailureequal "$NEEDSFOO2NATIVE" aptget install needsfoover2 foo:i386 -s
- solveableinsinglearch2() {
- testfailureequal "$BADPREFIX
- 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:
- hatesfoonative : Conflicts: foo:amd64
- E: Unable to correct problems, you have held broken packages." aptget install foo hatesfoonative -s
- }
- solveableinsinglearch2
- testfailureequal "$BADPREFIX
- The following packages have unmet dependencies:
- hatesfoo : Conflicts: foo:i386 but 1 is to be installed
- E: Unable to correct problems, you have held broken packages." aptget install foo:i386 hatesfoo -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:i386 hatesfooany -s
- testsuccessequal 'Reading package lists...
- Building dependency tree...
- The following NEW packages will be installed:
- foo:i386 hatesfoonative
- 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
- Inst foo:i386 (1 unstable [i386])
- Inst hatesfoonative (1 unstable [amd64])
- Conf foo:i386 (1 unstable [i386])
- Conf hatesfoonative (1 unstable [amd64])' aptget install foo:i386 hatesfoonative -s
- solveableinsinglearch3() {
- testsuccessequal "Reading package lists...
- Building dependency tree...
- The following additional packages will be installed:
- coolfoo
- The following NEW packages will be installed:
- coolfoo needscoolfoo
- 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
- Inst coolfoo (1 unstable [amd64])
- Inst needscoolfoo (1 unstable [amd64])
- Conf coolfoo (1 unstable [amd64])
- Conf needscoolfoo (1 unstable [amd64])" aptget install needscoolfoo -s
- testsuccessequal "Reading package lists...
- Building dependency tree...
- The following additional packages will be installed:
- coolfoo
- The following NEW packages will be installed:
- coolfoo coolfoover needscoolfoo
- 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
- Inst coolfoo (1 unstable [amd64])
- Inst coolfoover (1 unstable [amd64])
- Inst needscoolfoo (1 unstable [amd64])
- Conf coolfoo (1 unstable [amd64])
- Conf coolfoover (1 unstable [amd64])
- Conf needscoolfoo (1 unstable [amd64])" aptget install needscoolfoo coolfoover -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 additional packages will be installed:
- coolfoo
- The following NEW packages will be installed:
- coolfoo needscoolfoover0
- 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
- Inst coolfoo (1 unstable [amd64])
- Inst needscoolfoover0 (1 unstable [amd64])
- Conf coolfoo (1 unstable [amd64])
- Conf needscoolfoover0 (1 unstable [amd64])' aptget install needscoolfoover0 -s
- testsuccessequal 'Reading package lists...
- Building dependency tree...
- The following additional packages will be installed:
- coolfoo coolfoover
- The following NEW packages will be installed:
- coolfoo coolfoover needscoolfoover1
- 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
- Inst coolfoo (1 unstable [amd64])
- Inst coolfoover (1 unstable [amd64])
- Inst needscoolfoover1 (1 unstable [amd64])
- Conf coolfoo (1 unstable [amd64])
- Conf coolfoover (1 unstable [amd64])
- Conf needscoolfoover1 (1 unstable [amd64])' aptget install needscoolfoover1 -s
- testfailureequal "$BADPREFIX
- The following packages have unmet dependencies:
- needscoolfoover2 : Depends: coolfoo:any (>= 2)
- E: Unable to correct problems, you have held broken packages." aptget install needscoolfoover2 -s
- testfailureequal "$BADPREFIX
- The following packages have unmet dependencies:
- needscoolfoover3 : Depends: coolfoo:any (>= 2)
- Depends: coolbar:any (>= 3)
- E: Unable to correct problems, you have held broken packages." aptget install needscoolfoover3 -s
- }
- solveableinsinglearch3
- msgmsg 'switch to single architecture'
- configarchitecture 'amd64'
- solveableinsinglearch0
- testfailureequal 'Reading package lists...
- Building dependency tree...
- 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
|