X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/5c6ceb4557cb6497dea827d1ec4e2615ccd53e50..ecc138f858fab61e0b888d3d13854d1422c3432b:/test/integration/test-multiarch-foreign diff --git a/test/integration/test-multiarch-foreign b/test/integration/test-multiarch-foreign index 332466d96..a266e35ed 100755 --- a/test/integration/test-multiarch-foreign +++ b/test/integration/test-multiarch-foreign @@ -7,15 +7,25 @@ setupenvironment configarchitecture 'amd64' 'i386' 'armel' insertpackage 'unstable' 'cool-foo' 'amd64,i386' '1.0' 'Depends: foo' +insertpackage 'unstable' 'cool-foo-x64' 'amd64' '1.0' 'Depends: foo:amd64' +insertpackage 'unstable' 'cool-foo-x32' 'amd64' '1.0' 'Depends: foo:i386' +insertpackage 'unstable' 'hates-foo' 'amd64,i386' '1.0' 'Conflicts: foo' +insertpackage 'unstable' 'hates-foo-x64' 'amd64' '1.0' 'Conflicts: foo:amd64' +insertpackage 'unstable' 'hates-foo-x32' 'amd64' '1.0' 'Conflicts: foo:i386' insertpackage 'unstable' 'foo' 'amd64,i386,armel' '1.0' 'Multi-Arch: foreign' insertpackage 'unstable' 'cool-bar' 'amd64,i386' '1.0' 'Depends: bar-provider' +insertpackage 'unstable' 'cool-bar-x64' 'amd64' '1.0' 'Depends: bar-provider:amd64' +insertpackage 'unstable' 'cool-bar-x32' 'amd64' '1.0' 'Depends: bar-provider:i386' +insertpackage 'unstable' 'hates-bar' 'amd64,i386' '1.0' 'Conflicts: bar-provider' +insertpackage 'unstable' 'hates-bar-x64' 'amd64' '1.0' 'Conflicts: bar-provider:amd64' +insertpackage 'unstable' 'hates-bar-x32' 'amd64' '1.0' 'Conflicts: bar-provider:i386' insertpackage 'unstable' 'bar' 'amd64,i386,armel' '1.0' 'Provides: bar-provider Multi-Arch: foreign' setupaptarchive -testequal 'Reading package lists... +testsuccessequal 'Reading package lists... Building dependency tree... The following extra packages will be installed: foo @@ -27,29 +37,7 @@ Inst cool-foo:i386 (1.0 unstable [i386]) Conf foo (1.0 unstable [amd64]) Conf cool-foo:i386 (1.0 unstable [i386])' aptget install cool-foo:i386 -s -testequal 'Reading package lists... -Building dependency tree... -The following extra packages will be installed: - foo -The following NEW packages will be installed: - cool-foo foo -0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. -Inst foo (1.0 unstable [amd64]) -Inst cool-foo (1.0 unstable [amd64]) -Conf foo (1.0 unstable [amd64]) -Conf cool-foo (1.0 unstable [amd64])' aptget install cool-foo:amd64 -s - -testequal 'Reading package lists... -Building dependency tree... -The following NEW packages will be installed: - cool-foo foo -0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. -Inst foo (1.0 unstable [amd64]) -Inst cool-foo (1.0 unstable [amd64]) -Conf foo (1.0 unstable [amd64]) -Conf cool-foo (1.0 unstable [amd64])' aptget install cool-foo:amd64 foo:amd64 -s - -testequal 'Reading package lists... +testsuccessequal 'Reading package lists... Building dependency tree... The following NEW packages will be installed: cool-foo foo:i386 @@ -59,7 +47,7 @@ Inst cool-foo (1.0 unstable [amd64]) Conf foo:i386 (1.0 unstable [i386]) Conf cool-foo (1.0 unstable [amd64])' aptget install cool-foo:amd64 foo:i386 -s -testequal 'Reading package lists... +testsuccessequal 'Reading package lists... Building dependency tree... The following NEW packages will be installed: cool-foo foo:armel @@ -69,11 +57,7 @@ Inst cool-foo (1.0 unstable [amd64]) Conf foo:armel (1.0 unstable [armel]) Conf cool-foo (1.0 unstable [amd64])' aptget install cool-foo:amd64 foo:armel -s - - - - -testequal 'Reading package lists... +testsuccessequal 'Reading package lists... Building dependency tree... The following extra packages will be installed: bar @@ -85,7 +69,61 @@ Inst cool-bar:i386 (1.0 unstable [i386]) Conf bar (1.0 unstable [amd64]) Conf cool-bar:i386 (1.0 unstable [i386])' aptget install cool-bar:i386 -s -testequal 'Reading package lists... +testsuccessequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + bar:i386 cool-bar +0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +Inst bar:i386 (1.0 unstable [i386]) +Inst cool-bar (1.0 unstable [amd64]) +Conf bar:i386 (1.0 unstable [i386]) +Conf cool-bar (1.0 unstable [amd64])' aptget install cool-bar:amd64 bar:i386 -s + +testsuccessequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + bar:armel cool-bar +0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +Inst bar:armel (1.0 unstable [armel]) +Inst cool-bar (1.0 unstable [amd64]) +Conf bar:armel (1.0 unstable [armel]) +Conf cool-bar (1.0 unstable [amd64])' aptget install cool-bar:amd64 bar:armel -s + +testsuccessequal "Reading package lists... +Building dependency tree... +Note, selecting 'bar:i386' instead of 'bar-provider:i386' +The following NEW packages will be installed: + bar:i386 cool-bar +0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +Inst bar:i386 (1.0 unstable [i386]) +Inst cool-bar (1.0 unstable [amd64]) +Conf bar:i386 (1.0 unstable [i386]) +Conf cool-bar (1.0 unstable [amd64])" aptget install cool-bar bar-provider:i386 -s -q=0 + +satisfiable_in_singlearch() { + testsuccessequal 'Reading package lists... +Building dependency tree... +The following extra packages will be installed: + foo +The following NEW packages will be installed: + cool-foo foo +0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +Inst foo (1.0 unstable [amd64]) +Inst cool-foo (1.0 unstable [amd64]) +Conf foo (1.0 unstable [amd64]) +Conf cool-foo (1.0 unstable [amd64])' aptget install cool-foo:amd64 -s + + testsuccessequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + cool-foo foo +0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +Inst foo (1.0 unstable [amd64]) +Inst cool-foo (1.0 unstable [amd64]) +Conf foo (1.0 unstable [amd64]) +Conf cool-foo (1.0 unstable [amd64])' aptget install cool-foo:amd64 foo:amd64 -s + + testsuccessequal 'Reading package lists... Building dependency tree... The following extra packages will be installed: bar @@ -97,7 +135,7 @@ Inst cool-bar (1.0 unstable [amd64]) Conf bar (1.0 unstable [amd64]) Conf cool-bar (1.0 unstable [amd64])' aptget install cool-bar:amd64 -s -testequal 'Reading package lists... + testsuccessequal 'Reading package lists... Building dependency tree... The following NEW packages will be installed: bar cool-bar @@ -107,44 +145,98 @@ Inst cool-bar (1.0 unstable [amd64]) Conf bar (1.0 unstable [amd64]) Conf cool-bar (1.0 unstable [amd64])' aptget install cool-bar:amd64 bar:amd64 -s -testequal 'Reading package lists... + testsuccessequal "Reading package lists... Building dependency tree... +Note, selecting 'bar' instead of 'bar-provider' The following NEW packages will be installed: - bar:i386 cool-bar + bar cool-bar 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. -Inst bar:i386 (1.0 unstable [i386]) +Inst bar (1.0 unstable [amd64]) Inst cool-bar (1.0 unstable [amd64]) -Conf bar:i386 (1.0 unstable [i386]) -Conf cool-bar (1.0 unstable [amd64])' aptget install cool-bar:amd64 bar:i386 -s +Conf bar (1.0 unstable [amd64]) +Conf cool-bar (1.0 unstable [amd64])" aptget install cool-bar bar-provider -s -q=0 -testequal 'Reading package lists... + testsuccessequal 'Reading package lists... Building dependency tree... +The following extra packages will be installed: + foo The following NEW packages will be installed: - bar:armel cool-bar + cool-foo-x64 foo 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. -Inst bar:armel (1.0 unstable [armel]) -Inst cool-bar (1.0 unstable [amd64]) -Conf bar:armel (1.0 unstable [armel]) -Conf cool-bar (1.0 unstable [amd64])' aptget install cool-bar:amd64 bar:armel -s +Inst foo (1.0 unstable [amd64]) +Inst cool-foo-x64 (1.0 unstable [amd64]) +Conf foo (1.0 unstable [amd64]) +Conf cool-foo-x64 (1.0 unstable [amd64])' aptget install cool-foo-x64 -s +} -testequal "Reading package lists... +hatersgonnahate() { + BADPREFIX='Reading package lists... Building dependency tree... -Note, selecting 'bar' instead of 'bar-provider' +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: +' + testfailureequal "$BADPREFIX +The following packages have unmet dependencies: + hates-foo : Conflicts: foo + Conflicts: foo:i386 + Conflicts: foo:armel +E: Unable to correct problems, you have held broken packages." aptget install $1 hates-foo -s + testfailureequal "$BADPREFIX +The following packages have unmet dependencies: + hates-foo-x64 : Conflicts: foo +E: Unable to correct problems, you have held broken packages." aptget install $1 hates-foo-x64 -s + testfailureequal "$BADPREFIX +The following packages have unmet dependencies: + hates-foo-x32 : Conflicts: foo:i386 +E: Unable to correct problems, you have held broken packages." aptget install $1 hates-foo-x32 -s +} +hatersgonnahate 'foo' +hatersgonnahate 'foo:i386' + +#FIXME: do not work in single-arch as i386 isn't known at cache generation time + testsuccessequal 'Reading package lists... +Building dependency tree... +The following extra packages will be installed: + foo The following NEW packages will be installed: - bar cool-bar + cool-foo-x32 foo +0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +Inst foo (1.0 unstable [amd64]) +Inst cool-foo-x32 (1.0 unstable [amd64]) +Conf foo (1.0 unstable [amd64]) +Conf cool-foo-x32 (1.0 unstable [amd64])' aptget install cool-foo-x32 -s + + testsuccessequal 'Reading package lists... +Building dependency tree... +The following extra packages will be installed: + bar +The following NEW packages will be installed: + bar cool-bar-x32 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Inst bar (1.0 unstable [amd64]) -Inst cool-bar (1.0 unstable [amd64]) +Inst cool-bar-x32 (1.0 unstable [amd64]) Conf bar (1.0 unstable [amd64]) -Conf cool-bar (1.0 unstable [amd64])" aptget install cool-bar bar-provider -s -q=0 +Conf cool-bar-x32 (1.0 unstable [amd64])' aptget install cool-bar-x32 -s -q=0 -testequal "Reading package lists... + testsuccessequal 'Reading package lists... Building dependency tree... -Note, selecting 'bar:i386' instead of 'bar-provider:i386' +The following extra packages will be installed: + bar The following NEW packages will be installed: - bar:i386 cool-bar + bar cool-bar-x64 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. -Inst bar:i386 (1.0 unstable [i386]) -Inst cool-bar (1.0 unstable [amd64]) -Conf bar:i386 (1.0 unstable [i386]) -Conf cool-bar (1.0 unstable [amd64])" aptget install cool-bar bar-provider:i386 -s -q=0 +Inst bar (1.0 unstable [amd64]) +Inst cool-bar-x64 (1.0 unstable [amd64]) +Conf bar (1.0 unstable [amd64]) +Conf cool-bar-x64 (1.0 unstable [amd64])' aptget install cool-bar-x64 -s -q=0 + + +satisfiable_in_singlearch + +msgmsg 'switch to single architecture' +configarchitecture 'amd64' + +satisfiable_in_singlearch