]> git.saurik.com Git - apt.git/blobdiff - test/integration/test-bug-612099-multiarch-conflicts
generalize secure->insecure downgrade protection
[apt.git] / test / integration / test-bug-612099-multiarch-conflicts
index 6d09a4fa10d58eead63a0d4de8fb25550fc4a447..bc573951d836394970b9bc7ce2519b68ba367f3b 100755 (executable)
@@ -1,12 +1,10 @@
 #!/bin/sh
 set -e
 
 #!/bin/sh
 set -e
 
-TESTDIR=$(readlink -f $(dirname $0))
-. $TESTDIR/framework
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
 setupenvironment
 setupenvironment
-configarchitecture "i386" "amd64"
-
-buildsimplenativepackage 'peace-dpkg' 'all' '1.0' 'stable'
+configarchitecture 'i386' 'amd64'
 
 buildsimplenativepackage 'libc6' 'i386' '1.0' 'stable'
 buildsimplenativepackage 'libc6' 'amd64' '1.0' 'stable'
 
 buildsimplenativepackage 'libc6' 'i386' '1.0' 'stable'
 buildsimplenativepackage 'libc6' 'amd64' '1.0' 'stable'
@@ -17,12 +15,9 @@ buildsimplenativepackage 'foobar' 'amd64' '1.0' 'stable' 'Depends: libc6'
 
 setupaptarchive
 
 
 setupaptarchive
 
-aptget install peace-dpkg:i386 -y -qq 2>&1 > /dev/null
-testdpkginstalled peace-dpkg
-
-aptget install libc6:i386 -t stable -y -qq 2>&1 > /dev/null
-testdpkginstalled libc6
-testequal 'Reading package lists...
+testsuccess aptget install libc6:i386 -t stable -y
+testdpkginstalled libc6:i386
+testsuccessequal 'Reading package lists...
 Building dependency tree...
 Reading state information...
 The following packages will be REMOVED:
 Building dependency tree...
 Reading state information...
 The following packages will be REMOVED:
@@ -34,7 +29,7 @@ Remv libc6 [1.0]
 Inst libc6:amd64 (1.0 stable [amd64])
 Conf libc6:amd64 (1.0 stable [amd64])' aptget install libc6:amd64 -s -t stable
 
 Inst libc6:amd64 (1.0 stable [amd64])
 Conf libc6:amd64 (1.0 stable [amd64])' aptget install libc6:amd64 -s -t stable
 
-testequal 'Reading package lists...
+testsuccessequal 'Reading package lists...
 Building dependency tree...
 Reading state information...
 The following NEW packages will be installed:
 Building dependency tree...
 Reading state information...
 The following NEW packages will be installed:
@@ -43,10 +38,10 @@ The following NEW packages will be installed:
 Inst foobar (1.0 stable [i386])
 Conf foobar (1.0 stable [i386])' aptget install foobar -st stable
 
 Inst foobar (1.0 stable [i386])
 Conf foobar (1.0 stable [i386])' aptget install foobar -st stable
 
-testequal 'Reading package lists...
+testsuccessequal 'Reading package lists...
 Building dependency tree...
 Reading state information...
 Building dependency tree...
 Reading state information...
-The following extra packages will be installed:
+The following additional packages will be installed:
   libc6:amd64
 The following packages will be REMOVED:
   libc6
   libc6:amd64
 The following packages will be REMOVED:
   libc6
@@ -59,43 +54,52 @@ Inst foobar:amd64 (1.0 stable [amd64])
 Conf libc6:amd64 (1.0 stable [amd64])
 Conf foobar:amd64 (1.0 stable [amd64])' aptget install foobar:amd64 -st stable
 
 Conf libc6:amd64 (1.0 stable [amd64])
 Conf foobar:amd64 (1.0 stable [amd64])' aptget install foobar:amd64 -st stable
 
-testequal 'Reading package lists...
+testsuccessequal "Reading package lists...
 Building dependency tree...
 Reading state information...
 Building dependency tree...
 Reading state information...
+Selected version '1.0' (stable [i386]) for 'foobar'
 The following NEW packages will be installed:
   foobar
 The following packages will be upgraded:
   libc6
 1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
 The following NEW packages will be installed:
   foobar
 The following packages will be upgraded:
   libc6
 1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
-Inst libc6 [1.0] (2.0 testing [i386])
+Inst libc6 [1.0] (2.0 testing [all])
 Inst foobar (1.0 stable [i386])
 Inst foobar (1.0 stable [i386])
-Conf libc6 (2.0 testing [i386])
-Conf foobar (1.0 stable [i386])' aptget install foobar/stable libc6 -st testing
+Conf libc6 (2.0 testing [all])
+Conf foobar (1.0 stable [i386])" aptget install foobar/stable libc6 -st testing
 
 
-testequal 'Reading package lists...
+testsuccessequal 'Reading package lists...
 Building dependency tree...
 Reading state information...
 Building dependency tree...
 Reading state information...
+Calculating upgrade...
 The following packages will be upgraded:
   libc6
 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
 The following packages will be upgraded:
   libc6
 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
-Inst libc6 [1.0] (2.0 testing [i386])
-Conf libc6 (2.0 testing [i386])' aptget upgrade -t testing -s
-aptget upgrade -y -qq 2>&1 > /dev/null
-testdpkginstalled libc6
-
-testequal 'Reading package lists...
+Inst libc6 [1.0] (2.0 testing [all])
+Conf libc6 (2.0 testing [all])' aptget upgrade -t testing -s
+# FIXME: on amd64 systems this test wouldn't run with a real upgrade
+# as APT (here i386) disagree about the native architecture, so
+# we fake it here:
+#aptget upgrade -y -qq >/dev/null 2>&1
+testsuccess aptget purge libc6 -y
+testsuccess aptget install libc6:i386 -y
+testdpkginstalled libc6:all
+
+testsuccessequal "Reading package lists...
 Building dependency tree...
 Reading state information...
 Building dependency tree...
 Reading state information...
+Selected version '1.0' (stable [i386]) for 'foobar'
 The following NEW packages will be installed:
   foobar
 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
 Inst foobar (1.0 stable [i386])
 The following NEW packages will be installed:
   foobar
 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
 Inst foobar (1.0 stable [i386])
-Conf foobar (1.0 stable [i386])' aptget install foobar/stable -st testing
+Conf foobar (1.0 stable [i386])" aptget install foobar/stable -st testing
 
 
-testequal 'Reading package lists...
+testsuccessequal "Reading package lists...
 Building dependency tree...
 Reading state information...
 Building dependency tree...
 Reading state information...
-The following extra packages will be installed:
+Selected version '1.0' (stable [amd64]) for 'foobar:amd64'
+The following additional packages will be installed:
   libc6:amd64
 The following packages will be REMOVED:
   libc6
   libc6:amd64
 The following packages will be REMOVED:
   libc6
@@ -106,10 +110,10 @@ Remv libc6 [2.0]
 Inst libc6:amd64 (1.0 stable [amd64])
 Inst foobar:amd64 (1.0 stable [amd64])
 Conf libc6:amd64 (1.0 stable [amd64])
 Inst libc6:amd64 (1.0 stable [amd64])
 Inst foobar:amd64 (1.0 stable [amd64])
 Conf libc6:amd64 (1.0 stable [amd64])
-Conf foobar:amd64 (1.0 stable [amd64])' aptget install foobar:amd64/stable -st testing
+Conf foobar:amd64 (1.0 stable [amd64])" aptget install foobar:amd64/stable -st testing
 
 
 
 
-testequal "Reading package lists...
+testsuccessequal "Reading package lists...
 Building dependency tree...
 Reading state information...
 Selected version '1.0' (stable [i386]) for 'libc6'
 Building dependency tree...
 Reading state information...
 Selected version '1.0' (stable [i386]) for 'libc6'
@@ -117,7 +121,7 @@ The following packages will be DOWNGRADED:
   libc6
 0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
 Inst libc6 [2.0] (1.0 stable [i386])
   libc6
 0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
 Inst libc6 [2.0] (1.0 stable [i386])
-Conf libc6 (1.0 stable [i386])" aptget install libc6/stable -s -q=0
+Conf libc6 (1.0 stable [i386])" aptget install libc6/stable -s
 
 
 buildsimplenativepackage 'libc6-same' 'i386' '1.0' 'stable' 'Multi-Arch: same'
 
 
 buildsimplenativepackage 'libc6-same' 'i386' '1.0' 'stable' 'Multi-Arch: same'
@@ -129,10 +133,10 @@ buildsimplenativepackage 'foobar-same' 'amd64' '1.0' 'stable' 'Depends: libc6-sa
 
 setupaptarchive
 
 
 setupaptarchive
 
-aptget install libc6-same:i386 -t stable -y -qq 2>&1 > /dev/null
-testdpkginstalled libc6-same
+testsuccess aptget install libc6-same:i386 -t stable -y
+testdpkginstalled libc6-same:i386
 
 
-testequal 'Reading package lists...
+testsuccessequal 'Reading package lists...
 Building dependency tree...
 Reading state information...
 The following NEW packages will be installed:
 Building dependency tree...
 Reading state information...
 The following NEW packages will be installed:
@@ -141,10 +145,10 @@ The following NEW packages will be installed:
 Inst foobar-same (1.0 stable [i386])
 Conf foobar-same (1.0 stable [i386])' aptget install foobar-same -st stable
 
 Inst foobar-same (1.0 stable [i386])
 Conf foobar-same (1.0 stable [i386])' aptget install foobar-same -st stable
 
-testequal 'Reading package lists...
+testsuccessequal 'Reading package lists...
 Building dependency tree...
 Reading state information...
 Building dependency tree...
 Reading state information...
-The following extra packages will be installed:
+The following additional packages will be installed:
   libc6-same:amd64
 The following NEW packages will be installed:
   foobar-same:amd64 libc6-same:amd64
   libc6-same:amd64
 The following NEW packages will be installed:
   foobar-same:amd64 libc6-same:amd64
@@ -154,7 +158,7 @@ Inst foobar-same:amd64 (1.0 stable [amd64])
 Conf libc6-same:amd64 (1.0 stable [amd64])
 Conf foobar-same:amd64 (1.0 stable [amd64])' aptget install foobar-same:amd64 -st stable
 
 Conf libc6-same:amd64 (1.0 stable [amd64])
 Conf foobar-same:amd64 (1.0 stable [amd64])' aptget install foobar-same:amd64 -st stable
 
-testequal 'Reading package lists...
+testsuccessequal 'Reading package lists...
 Building dependency tree...
 Reading state information...
 The following NEW packages will be installed:
 Building dependency tree...
 Reading state information...
 The following NEW packages will be installed:
@@ -165,18 +169,25 @@ Conf libc6-same:amd64 (1.0 stable [amd64])' aptget install libc6-same:amd64 -s -
 
 # FIXME: We should test installing libc6-same:amd64 here, but dpkg doesn't allow it currently
 
 
 # FIXME: We should test installing libc6-same:amd64 here, but dpkg doesn't allow it currently
 
-testequal 'Reading package lists...
+testsuccessequal 'Reading package lists...
 Building dependency tree...
 Reading state information...
 Building dependency tree...
 Reading state information...
+Calculating upgrade...
 The following packages will be upgraded:
   libc6-same
 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
 The following packages will be upgraded:
   libc6-same
 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
-Inst libc6-same [1.0] (2.0 testing [i386])
-Conf libc6-same (2.0 testing [i386])' aptget upgrade -t testing -s
-aptget upgrade -y -qq 2>&1 > /dev/null
-testdpkginstalled libc6-same
-
-testequal "Reading package lists...
+Inst libc6-same [1.0] (2.0 testing [all])
+Conf libc6-same (2.0 testing [all])' aptget upgrade -t testing -s
+# FIXME: on amd64 systems this test wouldn't run with a real upgrade
+# as APT (here i386) disagree about the native architecture, so
+# we fake it here:
+#aptget upgrade -y -qq >/dev/null 2>&1
+testsuccess aptget purge libc6-same -y
+testsuccess aptget install libc6-same:i386 -y
+testdpkginstalled libc6-same:all
+
+
+testsuccessequal "Reading package lists...
 Building dependency tree...
 Reading state information...
 Selected version '1.0' (stable [i386]) for 'libc6-same'
 Building dependency tree...
 Reading state information...
 Selected version '1.0' (stable [i386]) for 'libc6-same'
@@ -184,21 +195,23 @@ The following packages will be DOWNGRADED:
   libc6-same
 0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
 Inst libc6-same [2.0] (1.0 stable [i386])
   libc6-same
 0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
 Inst libc6-same [2.0] (1.0 stable [i386])
-Conf libc6-same (1.0 stable [i386])" aptget install libc6-same/stable -s -q=0
+Conf libc6-same (1.0 stable [i386])" aptget install libc6-same/stable -s
 
 
-testequal 'Reading package lists...
+testsuccessequal "Reading package lists...
 Building dependency tree...
 Reading state information...
 Building dependency tree...
 Reading state information...
+Selected version '1.0' (stable [i386]) for 'foobar-same'
 The following NEW packages will be installed:
   foobar-same
 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
 Inst foobar-same (1.0 stable [i386])
 The following NEW packages will be installed:
   foobar-same
 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
 Inst foobar-same (1.0 stable [i386])
-Conf foobar-same (1.0 stable [i386])' aptget install foobar-same/stable -st testing
+Conf foobar-same (1.0 stable [i386])" aptget install foobar-same/stable -st testing
 
 
-testequal 'Reading package lists...
+testsuccessequal "Reading package lists...
 Building dependency tree...
 Reading state information...
 Building dependency tree...
 Reading state information...
-The following extra packages will be installed:
+Selected version '1.0' (stable [amd64]) for 'foobar-same:amd64'
+The following additional packages will be installed:
   libc6-same:amd64
 The following packages will be REMOVED:
   libc6-same
   libc6-same:amd64
 The following packages will be REMOVED:
   libc6-same
@@ -209,4 +222,4 @@ Remv libc6-same [2.0]
 Inst libc6-same:amd64 (1.0 stable [amd64])
 Inst foobar-same:amd64 (1.0 stable [amd64])
 Conf libc6-same:amd64 (1.0 stable [amd64])
 Inst libc6-same:amd64 (1.0 stable [amd64])
 Inst foobar-same:amd64 (1.0 stable [amd64])
 Conf libc6-same:amd64 (1.0 stable [amd64])
-Conf foobar-same:amd64 (1.0 stable [amd64])' aptget install foobar-same:amd64/stable -st testing
+Conf foobar-same:amd64 (1.0 stable [amd64])" aptget install foobar-same:amd64/stable -st testing