#!/bin/sh set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment configarchitecture 'i386' insertpackage 'unstable' 'base-files' 'all' '5.0.0' insertinstalledpackage 'base-files' 'all' '5.0.0-1' setupaptarchive STATUS=$(readlink -f rootdir/var/lib/dpkg/status) APTARCHIVE="$(readlink -f aptarchive)" testsuccessequal "base-files: Installed: 5.0.0-1 Candidate: 5.0.0-1 Version table: *** 5.0.0-1 100 100 $STATUS 5.0.0 500 500 file:${APTARCHIVE} unstable/main all Packages" aptcache policy base-files -o apt::pin=0 writepin() { echo "Package: $1 Pin: release a=unstable Pin-Priority: $2" > rootdir/etc/apt/preferences } testpinning() { local PKGPINPRIO='' local REPPINPRIO='' if [ "$1" != '*' ]; then PKGPINPRIO='' REPPINPRIO=' 500' fi writepin "$1" '99' testsuccessequal "base-files: Installed: 5.0.0-1 Candidate: 5.0.0-1 Version table: *** 5.0.0-1 100 100 $STATUS 5.0.0 ${PKGPINPRIO:-99} ${REPPINPRIO:- 99} file:${APTARCHIVE} unstable/main all Packages" aptcache policy base-files -o apt::pin=99 writepin "$1" '100' testsuccessequal "base-files: Installed: 5.0.0-1 Candidate: 5.0.0-1 Version table: *** 5.0.0-1 100 100 $STATUS 5.0.0 ${PKGPINPRIO:-100} ${REPPINPRIO:- 100} file:${APTARCHIVE} unstable/main all Packages" aptcache policy base-files -o apt::pin=100 writepin "$1" '999' testsuccessequal "base-files: Installed: 5.0.0-1 Candidate: 5.0.0-1 Version table: *** 5.0.0-1 100 100 $STATUS 5.0.0 ${PKGPINPRIO:-999} ${REPPINPRIO:- 999} file:${APTARCHIVE} unstable/main all Packages" aptcache policy base-files -o apt::pin=999 writepin "$1" '1000' testsuccessequal "base-files: Installed: 5.0.0-1 Candidate: 5.0.0 Version table: *** 5.0.0-1 100 100 $STATUS 5.0.0 ${PKGPINPRIO:-1000} ${REPPINPRIO:-1000} file:${APTARCHIVE} unstable/main all Packages" aptcache policy base-files -o apt::pin=1000 } msgmsg 'Tests with generic-form pin' testpinning '*' msgmsg 'Tests with specific-form pin' testpinning 'base-files' msgmsg 'Tests with specific-form pin with glob' testpinning 'base-fil*' msgmsg 'Tests with specific-form pin with regex' testpinning '/^base-f[iI]les$/'