summaryrefslogtreecommitdiffstats
path: root/test/integration/test-allow-scores-for-all-dependency-types
blob: 999efc04ee88eddbb38e8dde214f0e8789ec47a5 (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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/bin/sh
set -e

TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"
setupenvironment
configarchitecture 'amd64'

insertpackage 'unversioned' 'libdb-dev' 'amd64' '5.3.0' 'Depends: libdb5.3-dev
Conflicts: libdb5.1-dev'
insertpackage 'unversioned' 'libdb5.1-dev' 'amd64' '5.1.29-7'
insertpackage 'unversioned' 'libdb5.3-dev' 'amd64' '5.3.28-3' 'Conflicts: libdb5.1-dev'

insertpackage 'unversioned' 'foo' 'amd64' '1'
insertpackage 'unversioned' 'bar' 'amd64' '1'
insertpackage 'unversioned' 'foo' 'amd64' '2' 'Conflicts: bar'
insertpackage 'unversioned' 'bar' 'amd64' '2' 'Conflicts: foo'
insertpackage 'unversioned' 'baz' 'amd64' '2' 'Depends: bar | foo'

insertpackage 'versioned' 'libdb-dev' 'amd64' '5.3.0' 'Depends: libdb5.3-dev
Conflicts: libdb5.1-dev (<< 5.2)'
insertpackage 'versioned' 'libdb5.3-dev' 'amd64' '5.3.28-3' 'Conflicts: libdb5.1-dev (<< 5.2)'

insertpackage 'versioned' 'foo' 'amd64' '2' 'Conflicts: bar (<= 2)'
insertpackage 'versioned' 'bar' 'amd64' '2' 'Conflicts: foo (<= 2)'
insertpackage 'versioned' 'baz' 'amd64' '2' 'Depends: bar (>= 2) | foo (>= 2)'

insertpackage 'multipleno' 'foo' 'amd64' '2.1' 'Conflicts: bar (<= 3)'
insertpackage 'multipleno' 'bar' 'amd64' '2.1' 'Conflicts: foo (<= 3), foo (<= 1)'

insertpackage 'multipleyes' 'foo' 'amd64' '2.2' 'Conflicts: bar (<= 3)'
# having foo multiple times as conflict is a non-advisable hack in general
insertpackage 'multipleyes' 'bar' 'amd64' '2.2' 'Conflicts: foo (<= 3), foo (<= 3)'

#774924 - slightly simplified
insertpackage 'jessie' 'login' 'amd64' '2' 'Pre-Depends: libaudit1 (>= 0)'
insertpackage 'jessie' 'libaudit1' 'amd64' '2' 'Depends: libaudit-common (>= 0)'
insertpackage 'jessie' 'libaudit-common' 'amd64' '2' 'Breaks: libaudit0, libaudit1 (<< 2)'

setupaptarchive

insertinstalledpackage 'libdb-dev' 'amd64' '5.1.7' 'Depends: libdb5.1-dev'
insertinstalledpackage 'libdb5.1-dev' 'amd64' '5.1.29-7'
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages will be REMOVED:
  libdb5.1-dev
The following NEW packages will be installed:
  libdb5.3-dev
The following packages will be upgraded:
  libdb-dev
1 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Remv libdb5.1-dev [5.1.29-7] [libdb-dev:amd64 ]
Inst libdb-dev [5.1.7] (5.3.0 unversioned [amd64]) []
Inst libdb5.3-dev (5.3.28-3 unversioned [amd64])
Conf libdb-dev (5.3.0 unversioned [amd64])
Conf libdb5.3-dev (5.3.28-3 unversioned [amd64])' aptget dist-upgrade -st unversioned
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages will be REMOVED:
  libdb5.1-dev
The following NEW packages will be installed:
  libdb5.3-dev
The following packages will be upgraded:
  libdb-dev
1 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Remv libdb5.1-dev [5.1.29-7] [libdb-dev:amd64 ]
Inst libdb-dev [5.1.7] (5.3.0 versioned [amd64]) []
Inst libdb5.3-dev (5.3.28-3 versioned [amd64])
Conf libdb-dev (5.3.0 versioned [amd64])
Conf libdb5.3-dev (5.3.28-3 versioned [amd64])' aptget dist-upgrade -st versioned

rm -f rootdir/var/lib/dpkg/status
insertinstalledpackage 'foo' 'amd64' '1'
insertinstalledpackage 'bar' 'amd64' '1'
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages have been kept back:
  bar foo
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -st unversioned
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages have been kept back:
  bar foo
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -st versioned
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages have been kept back:
  bar foo
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -st multipleno
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages will be REMOVED:
  foo
The following packages will be upgraded:
  bar
1 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
Remv foo [1]
Inst bar [1] (2.2 multipleyes [amd64])
Conf bar (2.2 multipleyes [amd64])' aptget dist-upgrade -st multipleyes

testsuccessequal 'Reading package lists...
Building dependency tree...
The following NEW packages will be installed:
  baz
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
Inst baz (2 unversioned [amd64])
Conf baz (2 unversioned [amd64])' aptget install baz -st unversioned
testsuccessequal 'Reading package lists...
Building dependency tree...
The following additional packages will be installed:
  bar
The following packages will be REMOVED:
  foo
The following NEW packages will be installed:
  baz
The following packages will be upgraded:
  bar
1 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Remv foo [1]
Inst bar [1] (2 versioned [amd64])
Inst baz (2 versioned [amd64])
Conf bar (2 versioned [amd64])
Conf baz (2 versioned [amd64])' aptget install baz -st versioned

# recreating the exact situation is hard, so we pull tricks to get the score
rm -f rootdir/var/lib/dpkg/status
insertinstalledpackage 'gdm3' 'amd64' '1' 'Depends: libaudit0, libaudit0'
insertinstalledpackage 'login' 'amd64' '1' 'Essential: yes'
insertinstalledpackage 'libaudit0' 'amd64' '1'
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages will be REMOVED:
  gdm3 libaudit0
The following NEW packages will be installed:
  libaudit-common libaudit1
The following packages will be upgraded:
  login
1 upgraded, 2 newly installed, 2 to remove and 0 not upgraded.
Remv gdm3 [1]
Remv libaudit0 [1]
Inst libaudit-common (2 jessie [amd64])
Conf libaudit-common (2 jessie [amd64])
Inst libaudit1 (2 jessie [amd64])
Conf libaudit1 (2 jessie [amd64])
Inst login [1] (2 jessie [amd64])
Conf login (2 jessie [amd64])' aptget dist-upgrade -st jessie