#!/bin/sh set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment configarchitecture 'amd64' 'i386' insertinstalledpackage 'git' 'amd64' '1:2.25.1-1' 'Multi-Arch: foreign' insertinstalledpackage 'git-cvs' 'amd64' '1:2.25.1-1' 'Depends: git (>> 1:2.25.1), git (<< 1:2.25.1-.)' insertpackage 'unstable' 'git' 'amd64,i386' '1:2.26.2-1' 'Multi-Arch: foreign' insertpackage 'unstable' 'git-cvs' 'amd64,i386' '1:2.26.2-1' 'Depends: git (>> 1:2.26.2), git (<< 1:2.26.2-.)' insertpackage 'unstable' 'git-ng' 'amd64,i386' '1:2.26.2-1' 'Depends: git (>> 1:2.26.2), git (<< 1:2.26.2-.)' setupaptarchive msgmsg 'The setup is' 'fine' UPGRADE='Reading package lists... Building dependency tree... Calculating upgrade... The following packages will be upgraded: git git-cvs 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Inst git-cvs [1:2.25.1-1] (1:2.26.2-1 unstable [amd64]) [] Inst git [1:2.25.1-1] (1:2.26.2-1 unstable [amd64]) Conf git-cvs (1:2.26.2-1 unstable [amd64]) Conf git (1:2.26.2-1 unstable [amd64])' testsuccessequal "$UPGRADE" apt upgrade -s testsuccessequal "$UPGRADE" aptget upgrade -s testsuccessequal "$UPGRADE" apt full-upgrade -s testsuccessequal "$UPGRADE" aptget dist-upgrade -s testsuccessequal 'Reading package lists... Building dependency tree... The following additional packages will be installed: git git-cvs The following NEW packages will be installed: git-ng The following packages will be upgraded: git git-cvs 2 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Inst git-cvs [1:2.25.1-1] (1:2.26.2-1 unstable [amd64]) [] Inst git [1:2.25.1-1] (1:2.26.2-1 unstable [amd64]) Inst git-ng (1:2.26.2-1 unstable [amd64]) Conf git-cvs (1:2.26.2-1 unstable [amd64]) Conf git (1:2.26.2-1 unstable [amd64]) Conf git-ng (1:2.26.2-1 unstable [amd64])' apt install git-ng -s msgmsg 'Now mix it up by' 'holding git' testsuccessequal 'git set on hold.' aptmark hold git testsuccessequal 'git' aptmark showholds NOUPGRADE='Reading package lists... Building dependency tree... Calculating upgrade... The following packages have been kept back: git git-cvs 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' testsuccessequal "$NOUPGRADE" apt upgrade -s testsuccessequal "$NOUPGRADE" apt full-upgrade -s testsuccessequal "$NOUPGRADE" aptget dist-upgrade -s testsuccessequal "$NOUPGRADE" aptget upgrade -s testfailureequal 'Reading package lists... Building dependency tree... 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: The following packages have unmet dependencies: git-ng : Depends: git (> 1:2.26.2) E: Unable to correct problems, you have held broken packages.' apt install git-ng -s msgmsg 'Now mix it up by' 'holding git-cvs' testsuccessequal 'Canceled hold on git.' aptmark unhold git testsuccessequal 'git-cvs set on hold.' aptmark hold git-cvs testsuccessequal 'git-cvs' aptmark showholds testsuccessequal "$NOUPGRADE" apt upgrade -s testsuccessequal "$NOUPGRADE" apt full-upgrade -s testsuccessequal "$NOUPGRADE" aptget upgrade -s testsuccessequal "$NOUPGRADE" aptget dist-upgrade -s testfailureequal 'Reading package lists... Building dependency tree... 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: The following packages have unmet dependencies: git-cvs : Depends: git (< 1:2.25.1-.) E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.' apt install git-ng -s msgmsg 'Now mix it up by' 'holding both' testsuccessequal 'git set on hold.' aptmark hold git testsuccessequal 'git git-cvs' aptmark showholds testsuccessequal "$NOUPGRADE" apt upgrade -s testsuccessequal "$NOUPGRADE" apt full-upgrade -s testsuccessequal "$NOUPGRADE" aptget upgrade -s testsuccessequal "$NOUPGRADE" aptget dist-upgrade -s testfailureequal 'Reading package lists... Building dependency tree... 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: The following packages have unmet dependencies: git-ng : Depends: git (> 1:2.26.2) E: Unable to correct problems, you have held broken packages.' apt install git-ng -s