]> git.saurik.com Git - apt.git/blobdiff - test/integration/test-apt-get-install-deb
do not treat same-version local debs as downgrade
[apt.git] / test / integration / test-apt-get-install-deb
index 21cd86e9d8d3d0a2bdb6533dce090f0d9396a90f..3aacc301dcceef5722eddc9546ab95f7d6651a3e 100755 (executable)
@@ -1,8 +1,8 @@
 #!/bin/sh
 set -e
 
-TESTDIR=$(readlink -f $(dirname $0))
-. $TESTDIR/framework
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
 
 setupenvironment
 configarchitecture 'amd64' 'i386'
@@ -40,9 +40,16 @@ The following packages have unmet dependencies:
  foo : Conflicts: foo:i386 but 1.0 is to be installed
 E: Unable to correct problems, you have held broken packages." aptget install ./incoming/foo_1.0_i386.deb ./incoming/foo_1.0_amd64.deb -s
 
-testdpkgnotinstalled 'foo'
+testdpkgnotinstalled 'foo' 'foo:i386'
 testsuccess aptget install ./incoming/foo_1.0_i386.deb -o Debug::pkgCacheGen=1
 testdpkginstalled 'foo:i386'
+testfailure aptget install incoming/foo_1.0_i386.deb -o Debug::pkgCacheGen=1
+cd downloaded
+testsuccess aptget install "$(readlink -f ../incoming/foo_1.0_i386.deb)" -o Debug::pkgCacheGen=1 -y --reinstall
+testfailure grep 'is already the newest version' ../rootdir/tmp/testsuccess.output
+testsuccess aptget install ../incoming/foo_1.0_i386.deb -o Debug::pkgCacheGen=1 -y --reinstall
+testfailure grep 'is already the newest version' ../rootdir/tmp/testsuccess.output
+cd ..
 
 testsuccessequal "Reading package lists...
 Building dependency tree...
@@ -86,6 +93,7 @@ Version: 0
 Priority: extra
 Maintainer: No Body <no@example.org>
 Architecture: all
+Depends: foo:i386
 Description: test package" >> ./incoming/$PKG/DEBIAN/control
        if [ -n "$3" ]; then
                echo -n "$3" >> ./incoming/$PKG/DEBIAN/control
@@ -104,13 +112,24 @@ testsuccess aptget install ./incoming/pkg-as-it-should-be_0_all.deb
 testsuccess aptget install ./incoming/pkg-leading-newline_0_all.deb
 testsuccess aptget install ./incoming/pkg-trailing-newline_0_all.deb
 
-# see if permission dropping is checked before usage
+testempty apt clean
 if [ "$(id -u)" = '0' ]; then
-       apt clean
+       # see if permission dropping is checked before usage
        chmod 711 ./incoming
-       testsuccess aptget install -y --allow-downgrades ./incoming/pkg-as-it-should-be_0_all.deb
+       testsuccess aptget install -y ./incoming/pkg-as-it-should-be_0_all.deb --reinstall
+       testfailure grep 'is already the newest version' rootdir/tmp/testsuccess.output
        chmod 710 ./incoming
-       testsuccesswithnotice aptget install -y --allow-downgrades ./incoming/pkg-as-it-should-be_0_all.deb
+       testsuccesswithnotice aptget install -y ./incoming/pkg-as-it-should-be_0_all.deb --reinstall
+       testfailure grep 'is already the newest version' rootdir/tmp/testsuccesswithnotice.output
        chmod 700 ./incoming
-       testsuccesswithnotice aptget install -y --allow-downgrades ./incoming/pkg-as-it-should-be_0_all.deb
+       testsuccesswithnotice aptget install -y ./incoming/pkg-as-it-should-be_0_all.deb --reinstall
+       testfailure grep 'is already the newest version' rootdir/tmp/testsuccesswithnotice.output
+       chmod 711 ./incoming
+else
+       testsuccess aptget install -y ./incoming/pkg-as-it-should-be_0_all.deb --reinstall
+       testfailure grep 'is already the newest version' rootdir/tmp/testsuccess.output
 fi
+
+sed -i -e '/^Depends: foo/ d' rootdir/var/lib/dpkg/status
+testsuccess aptget install -y ./incoming/pkg-as-it-should-be_0_all.deb
+testfailure grep 'is already the newest version' rootdir/tmp/testsuccess.output