diff options
Diffstat (limited to 'test/integration/test-crossgrades')
-rwxr-xr-x | test/integration/test-crossgrades | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/test/integration/test-crossgrades b/test/integration/test-crossgrades new file mode 100755 index 000000000..6398e7e7f --- /dev/null +++ b/test/integration/test-crossgrades @@ -0,0 +1,82 @@ +#!/bin/sh +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" + +setupenvironment +configarchitecture 'i386' 'amd64' 'armel' +configdpkgnoopchroot + +buildsimplenativepackage 'unrelated' 'amd64' '1' 'stable' +buildsimplenativepackage 'crosser' 'i386,armel' '1' 'stable' 'Multi-Arch: same' +buildsimplenativepackage 'crosser' 'amd64' '2' 'unstable' +buildsimplenativepackage 'crosser' 'i386,armel' '3' 'experimental' 'Multi-Arch: same' +setupaptarchive + +singleinstance() { + testsuccess apt install crosser:i386=1 unrelated:amd64 -y --planner $1 + testdpkginstalled 'crosser:i386' 'unrelated' + + testsuccess apt install crosser:amd64 -y -o Debug::pkgDpkgPm=1 -o Dpkg::Use-Pty=0 --purge --planner $1 + cp -a rootdir/tmp/testsuccess.output crosser.output + testfailure grep -- '--remove.*crosser.*' crosser.output + testfailure grep -- '--purge' crosser.output + testsuccess apt install crosser:amd64 unrelated:amd64- -y -o Dpkg::Use-Pty=0 --purge -o Debug::pkgDPkgProgressReporting=1 --planner $1 + testdpkgnotinstalled 'crosser:i386' 'unrelated' + testdpkginstalled 'crosser:amd64' + + testsuccess apt install crosser:armel=3 -y -o Debug::pkgDpkgPm=1 -o Dpkg::Use-Pty=0 --purge --planner $1 + cp -a rootdir/tmp/testsuccess.output crosser.output + testsuccess grep -- '--remove.*crosser.*' crosser.output + testsuccess grep -- '--purge' crosser.output + testsuccess apt install crosser:armel=3 -y -o Debug::pkgDPkgProgressReporting=1 -o Dpkg::Use-Pty=0 --purge --planner $1 + testdpkgnotinstalled 'crosser:i386' 'crosser:amd64' 'unrelated' + testdpkginstalled 'crosser:armel' + + testsuccess apt install crosser=1 -y -o Debug::pkgDpkgPm=1 -o Dpkg::Use-Pty=0 --purge --planner $1 --allow-downgrades + cp -a rootdir/tmp/testsuccess.output crosser.output + testsuccess grep -- '--remove.*crosser.*' crosser.output + testsuccess grep -- '--purge' crosser.output + testsuccess apt install crosser=1 -y -o Debug::pkgDPkgProgressReporting=1 -o Dpkg::Use-Pty=0 --purge --planner $1 --allow-downgrades + testdpkgnotinstalled 'crosser:armel' 'crosser:amd64' 'unrelated' + testdpkginstalled 'crosser:i386' + + testsuccess apt purge crosser:i386 -y --planner $1 + testdpkgnotinstalled 'crosser:i386' +} +singleinstance 'internal' +singleinstance 'apt' + +multiinstance() { + testsuccess apt install crosser:i386=1 crosser:armel=1 unrelated:amd64 -y --planner $1 + testdpkginstalled 'crosser:i386' 'crosser:armel' 'unrelated' + + testsuccess apt install crosser:amd64 -y -o Debug::pkgDpkgPm=1 -o Dpkg::Use-Pty=0 --purge --planner $1 + cp -a rootdir/tmp/testsuccess.output crosser.output + testsuccess grep -- '--remove.*crosser.*' crosser.output + testsuccess grep -- '--purge' crosser.output + testsuccess apt install crosser:amd64 unrelated:amd64- -y -o Dpkg::Use-Pty=0 --purge -o Debug::pkgDPkgProgressReporting=1 --planner $1 + testdpkgnotinstalled 'crosser:i386' 'crosser:armel' 'unrelated' + testdpkginstalled 'crosser:amd64' + + testsuccess apt install crosser:i386 crosser:armel -t experimental -y -o Debug::pkgDpkgPm=1 -o Dpkg::Use-Pty=0 --purge --planner $1 + cp -a rootdir/tmp/testsuccess.output crosser.output + testsuccess grep -- '--remove.*crosser.*' crosser.output + testsuccess grep -- '--purge' crosser.output + testsuccess apt install crosser:i386 crosser:armel -t experimental -y -o Debug::pkgDPkgProgressReporting=1 -o Dpkg::Use-Pty=0 --purge --planner $1 + testdpkgnotinstalled 'crosser:amd64' 'unrelated' + testdpkginstalled 'crosser:i386' 'crosser:armel' + + testsuccess apt install crosser:i386- crosser:armel=1 -y -o Debug::pkgDpkgPm=1 -o Dpkg::Use-Pty=0 --purge --planner $1 --allow-downgrades + cp -a rootdir/tmp/testsuccess.output crosser.output + testsuccess grep -- '--remove.*crosser.*' crosser.output + testsuccess grep -- '--purge' crosser.output + testsuccess apt install crosser:i386- crosser:armel=1 -y -o Debug::pkgDPkgProgressReporting=1 -o Dpkg::Use-Pty=0 --purge --planner $1 --allow-downgrades + testdpkgnotinstalled 'crosser:amd64' 'crosser:i386' 'unrelated' + testdpkginstalled 'crosser:armel' + + testsuccess apt purge crosser:armel -y --planner $1 -o Debug::pkgDPkgProgressReporting=1 + testdpkgnotinstalled 'crosser:i386' 'crosser:armel' 'crosser:amd64' 'unrelated' +} +multiinstance 'internal' |