summaryrefslogtreecommitdiff
path: root/test/integration/test-bug-543966-downgrade-below-1000-pin
blob: ede9ad6aa6bfce0f0b7eecf64c51005b72b4beca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/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 i386 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 PKGPIN=''
	local PKGPINPRIO=''
	local REPPINPRIO=''
	if [ "$1" != '*' ]; then
		PKGPINPRIO=''
		REPPINPRIO=' 500'
		PKGPIN='Package pin: 5.0.0
  '
	fi
	writepin "$1" '99'
	testsuccessequal "base-files:
  Installed: 5.0.0-1
  Candidate: 5.0.0-1
  ${PKGPIN}Version table:
 *** 5.0.0-1 100
        100 $STATUS
     5.0.0 ${PKGPINPRIO:-99}
       ${REPPINPRIO:-  99} file:${APTARCHIVE} unstable/main i386 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
  ${PKGPIN}Version table:
 *** 5.0.0-1 100
        100 $STATUS
     5.0.0 ${PKGPINPRIO:-100}
       ${REPPINPRIO:- 100} file:${APTARCHIVE} unstable/main i386 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
  ${PKGPIN}Version table:
 *** 5.0.0-1 100
        100 $STATUS
     5.0.0 ${PKGPINPRIO:-999}
       ${REPPINPRIO:- 999} file:${APTARCHIVE} unstable/main i386 Packages" aptcache policy base-files -o apt::pin=999

	writepin "$1" '1000'
	testsuccessequal "base-files:
  Installed: 5.0.0-1
  Candidate: 5.0.0
  ${PKGPIN}Version table:
 *** 5.0.0-1 100
        100 $STATUS
     5.0.0 ${PKGPINPRIO:-1000}
       ${REPPINPRIO:-1000} file:${APTARCHIVE} unstable/main i386 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$/'