]> git.saurik.com Git - apt.git/blobdiff - test/integration/test-apt-get-upgrade
eipp: add Allow-Temporary-Remove-of-Essentials
[apt.git] / test / integration / test-apt-get-upgrade
index 46662f1983b464bf509265205d9d4f874018ce1a..50a90ce66d9436c08dcf95cd3e29393100d107b4 100755 (executable)
 #!/bin/sh
 set -e
 
-TESTDIR=$(readlink -f $(dirname $0))
-. $TESTDIR/framework
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
 
 setupenvironment
 configarchitecture "i386"
 
-# FIXME: use simulated packages instead
+# simple case
+insertpackage 'stable,installed' 'upgrade-simple' 'all' '1.0'
+insertpackage 'unstable' 'upgrade-simple' 'all' '2.0'
 
-insertpackage 'stable' 'foo' 'all' '1.0'
-insertpackage 'unstable' 'foo' 'all' '2.0'
+# upgrade with a new dependency
+insertpackage 'stable,installed' 'upgrade-with-new-dep' 'all' '1.0'
+insertpackage 'unstable' 'upgrade-with-new-dep' 'all' '2.0' 'Depends: new-dep'
+insertpackage 'stable' 'new-dep' 'all' '1.0'
 
-insertpackage 'unstable' 'bar' 'all' '1.0'
+# upgrade with conflict and a new pkg with higher priority than conflict
+insertpackage 'stable,installed' 'upgrade-with-conflict' 'all' '1.0'
+insertpackage 'unstable' 'upgrade-with-conflict' 'all' '2.0' 'Conflicts: conflicting-dep' 'standard'
+insertpackage 'stable,installed' 'conflicting-dep' 'all' '1.0'
 
-insertpackage 'stable' 'apx' 'all' '1.0'
-insertpackage 'unstable' 'apx' 'all' '2.0' 'Conflicts: foo'
-
-insertpackage 'stable' 'apc' 'all' '1.0' 
-insertpackage 'unstable' 'apc' 'all' '2.0' 'Depends: bar'
-
-insertinstalledpackage 'apx' 'all' '1.0'
-insertinstalledpackage 'apc' 'all' '1.0'
-insertinstalledpackage 'foo' 'all' '1.0'
+# upgrade with conflict and a new pkg with higher priority than conflict
+insertpackage 'stable,installed' 'init' 'all' '1'
+insertpackage 'unstable' 'init' 'all' '2' 'Pre-Depends: systemd | sysvinit'
+insertpackage 'unstable' 'systemd' 'all' '2' 'Conflicts: conflicting-dep'
+insertpackage 'unstable' 'sysvinit' 'all' '2'
 
 setupaptarchive
 
-msgtest "Test normal upgrade works"
-testequal 'Reading package lists...
+# Test if normal upgrade works as expected
+UPGRADE='Reading package lists...
 Building dependency tree...
+Calculating upgrade...
 The following packages have been kept back:
-  apc apx
+  init upgrade-with-conflict upgrade-with-new-dep
 The following packages will be upgraded:
-  foo
-1 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
-Inst foo [1.0] (2.0 unstable [all])
-Conf foo (2.0 unstable [all])' aptget -s upgrade && msgpass || msgfail
+  upgrade-simple
+1 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
+Inst upgrade-simple [1.0] (2.0 unstable [all])
+Conf upgrade-simple (2.0 unstable [all])'
+testsuccessequal "$UPGRADE" aptget upgrade -s
+testsuccessequal "$UPGRADE" apt upgrade -s --without-new-pkgs
 
-msgtest "Test if upgrade --with-new-pkgs works"
-testequal 'Reading package lists...
+# Test if apt-get upgrade --with-new-pkgs works
+UPGRADENEW='Reading package lists...
 Building dependency tree...
+Calculating upgrade...
 The following NEW packages will be installed:
-  bar
+  new-dep
 The following packages have been kept back:
-  apx foo
+  init upgrade-with-conflict
 The following packages will be upgraded:
-  apc
-1 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
-Inst bar (1.0 unstable [all])
-Inst apc [1.0] (2.0 unstable [all])
-Conf bar (1.0 unstable [all])
-Conf apc (2.0 unstable [all])' aptget -s upgrade --with-new-pkgs && msgpass || msgfail
+  upgrade-simple upgrade-with-new-dep
+2 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
+Inst new-dep (1.0 stable [all])
+Inst upgrade-simple [1.0] (2.0 unstable [all])
+Inst upgrade-with-new-dep [1.0] (2.0 unstable [all])
+Conf new-dep (1.0 stable [all])
+Conf upgrade-simple (2.0 unstable [all])
+Conf upgrade-with-new-dep (2.0 unstable [all])'
+testsuccessequal "$UPGRADENEW" aptget upgrade -s --with-new-pkgs
+testsuccessequal "$UPGRADENEW" apt upgrade -s
 
-msgtest "Test dist-upgrade works"
-testequal 'Reading package lists...
+# Test if apt-get dist-upgrade works
+testsuccessequal 'Reading package lists...
 Building dependency tree...
+Calculating upgrade...
+The following packages will be REMOVED:
+  conflicting-dep
 The following NEW packages will be installed:
-  bar
+  new-dep systemd
+The following packages will be upgraded:
+  init upgrade-simple upgrade-with-conflict upgrade-with-new-dep
+4 upgraded, 2 newly installed, 1 to remove and 0 not upgraded.
+Remv conflicting-dep [1.0]
+Inst systemd (2 unstable [all])
+Conf systemd (2 unstable [all])
+Inst init [1] (2 unstable [all])
+Inst upgrade-with-conflict [1.0] (2.0 unstable [all])
+Inst new-dep (1.0 stable [all])
+Inst upgrade-simple [1.0] (2.0 unstable [all])
+Inst upgrade-with-new-dep [1.0] (2.0 unstable [all])
+Conf init (2 unstable [all])
+Conf upgrade-with-conflict (2.0 unstable [all])
+Conf new-dep (1.0 stable [all])
+Conf upgrade-simple (2.0 unstable [all])
+Conf upgrade-with-new-dep (2.0 unstable [all])' aptget -s dist-upgrade
+
+msgmsg 'make systemd a non-choice in the or-group and try again'
+echo 'Package: systemd
+Pin: release unstable
+Pin-Priority: -1' > rootdir/etc/apt/preferences.d/nosystemd.pref
+
+testsuccessequal "$UPGRADE" aptget upgrade -s
+testsuccessequal "$UPGRADE" apt upgrade -s --without-new-pkgs
+
+UPGRADENEW='Reading package lists...
+Building dependency tree...
+Calculating upgrade...
+The following NEW packages will be installed:
+  new-dep sysvinit
 The following packages have been kept back:
-  apx
+  upgrade-with-conflict
 The following packages will be upgraded:
-  apc foo
-2 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
-Inst bar (1.0 unstable [all])
-Inst apc [1.0] (2.0 unstable [all])
-Inst foo [1.0] (2.0 unstable [all])
-Conf bar (1.0 unstable [all])
-Conf apc (2.0 unstable [all])
-Conf foo (2.0 unstable [all])' aptget -s dist-upgrade && msgpass || msgfail
+  init upgrade-simple upgrade-with-new-dep
+3 upgraded, 2 newly installed, 0 to remove and 1 not upgraded.
+Inst sysvinit (2 unstable [all])
+Conf sysvinit (2 unstable [all])
+Inst init [1] (2 unstable [all])
+Inst new-dep (1.0 stable [all])
+Inst upgrade-simple [1.0] (2.0 unstable [all])
+Inst upgrade-with-new-dep [1.0] (2.0 unstable [all])
+Conf init (2 unstable [all])
+Conf new-dep (1.0 stable [all])
+Conf upgrade-simple (2.0 unstable [all])
+Conf upgrade-with-new-dep (2.0 unstable [all])'
+testsuccessequal "$UPGRADENEW" aptget upgrade -s --with-new-pkgs
+testsuccessequal "$UPGRADENEW" apt upgrade -s
 
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+Calculating upgrade...
+The following packages will be REMOVED:
+  conflicting-dep
+The following NEW packages will be installed:
+  new-dep sysvinit
+The following packages will be upgraded:
+  init upgrade-simple upgrade-with-conflict upgrade-with-new-dep
+4 upgraded, 2 newly installed, 1 to remove and 0 not upgraded.
+Remv conflicting-dep [1.0]
+Inst sysvinit (2 unstable [all])
+Conf sysvinit (2 unstable [all])
+Inst init [1] (2 unstable [all])
+Inst upgrade-with-conflict [1.0] (2.0 unstable [all])
+Inst new-dep (1.0 stable [all])
+Inst upgrade-simple [1.0] (2.0 unstable [all])
+Inst upgrade-with-new-dep [1.0] (2.0 unstable [all])
+Conf init (2 unstable [all])
+Conf upgrade-with-conflict (2.0 unstable [all])
+Conf new-dep (1.0 stable [all])
+Conf upgrade-simple (2.0 unstable [all])
+Conf upgrade-with-new-dep (2.0 unstable [all])' aptget -s dist-upgrade