Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/pkg
Path: blob/main/tests/frontend/issue1425.sh
2065 views
1
#! /usr/bin/env atf-sh
2
3
. $(atf_get_srcdir)/test_environment.sh
4
5
# https://github.com/freebsd/pkg/issues/1425
6
#pkgA
7
# - pkgB
8
# - pkgC
9
# - pkgD
10
#1. Two repos (repoA and repoB) with same set of packages. repoB last in the list, so all packages must be prefered from this one.
11
#2. On upgrade we must stick to same repo
12
#3. Two repos (repoA and repoB) with same set of packages. repoA has a higher priority, so all packages must be prefered from this one.
13
14
tests_init \
15
issue1425
16
17
issue1425_body() {
18
19
touch pkgA.file
20
touch pkgB.file
21
touch pkgC.file
22
touch pkgD.file
23
24
cat << EOF > pkgA.ucl
25
name: pkgA
26
origin: misc/pkgA
27
version: "1.0"
28
maintainer: test
29
categories: [test]
30
comment: a test
31
www: http://test
32
prefix: /usr/local
33
desc: <<EOD
34
Yet another test
35
EOD
36
deps: {
37
pkgB: {
38
origin: "misc/pkgB",
39
version: "1.0"
40
}
41
}
42
files: {
43
${TMPDIR}/pkgA.file: "",
44
}
45
EOF
46
47
cat << EOF > pkgB.ucl
48
name: pkgB
49
origin: misc/pkgB
50
version: "1.0"
51
maintainer: test
52
categories: [test]
53
comment: a test
54
www: http://test
55
prefix: /usr/local
56
desc: <<EOD
57
Yet another test
58
EOD
59
deps: {
60
pkgC: {
61
origin: "misc/pkgC",
62
version: "1.0"
63
}
64
}
65
66
files: {
67
${TMPDIR}/pkgB.file: "",
68
}
69
EOF
70
71
cat << EOF > pkgC.ucl
72
name: pkgC
73
origin: misc/pkgC
74
version: "1.0"
75
maintainer: test
76
categories: [test]
77
comment: a test
78
www: http://test
79
prefix: /usr/local
80
desc: <<EOD
81
Yet another test
82
EOD
83
deps: {
84
pkgD: {
85
origin: "misc/pkgD",
86
version: "1.0"
87
}
88
}
89
files: {
90
${TMPDIR}/pkgC.file: "",
91
}
92
EOF
93
94
95
cat << EOF > pkgD.ucl
96
name: pkgD
97
origin: misc/pkgD
98
version: "1.0"
99
maintainer: test
100
categories: [test]
101
comment: a test
102
www: http://test
103
prefix: /usr/local
104
desc: <<EOD
105
Yet another test
106
EOD
107
files: {
108
${TMPDIR}/pkgD.file: "",
109
}
110
EOF
111
112
mkdir reposconf
113
cat << EOF > reposconf/repos.conf
114
repoA: {
115
url: file://${TMPDIR}/repoA,
116
enabled: true
117
}
118
repoB: {
119
url: file://${TMPDIR}/repoB,
120
enabled: true
121
}
122
123
EOF
124
125
for p in pkgA pkgB pkgC pkgD; do
126
atf_check \
127
-o ignore \
128
-e empty \
129
-s exit:0 \
130
pkg create -o ${TMPDIR}/repoA -M ./${p}.ucl
131
done
132
133
atf_check \
134
-o inline:"Creating repository in ${TMPDIR}/repoA: done\nPacking files for repository: done\n" \
135
-e empty \
136
-s exit:0 \
137
pkg repo -o ${TMPDIR}/repoA ${TMPDIR}/repoA
138
139
140
for p in pkgA pkgB pkgC pkgD; do
141
atf_check \
142
-o ignore \
143
-e empty \
144
-s exit:0 \
145
pkg create -o ${TMPDIR}/repoB -M ./${p}.ucl
146
done
147
148
atf_check \
149
-o inline:"Creating repository in ${TMPDIR}/repoB: done\nPacking files for repository: done\n" \
150
-e empty \
151
-s exit:0 \
152
pkg repo -o ${TMPDIR}/repoB ${TMPDIR}/repoB
153
154
OUTPUT_CASE1="Updating repoA repository catalogue...
155
${JAILED}Fetching meta.conf: done
156
${JAILED}Fetching data.pkg: done
157
Processing entries: done
158
repoA repository update completed. 4 packages processed.
159
Updating repoB repository catalogue...
160
${JAILED}Fetching meta.conf: done
161
${JAILED}Fetching data.pkg: done
162
Processing entries: done
163
repoB repository update completed. 4 packages processed.
164
All repositories are up to date.
165
Checking integrity... done (0 conflicting)
166
The following 4 package(s) will be affected (of 0 checked):
167
168
New packages to be INSTALLED:
169
pkgA: 1.0 [repoB]
170
pkgB: 1.0 [repoA]
171
pkgC: 1.0 [repoA]
172
pkgD: 1.0 [repoA]
173
174
Number of packages to be installed: 4
175
${JAILED}[1/4] Installing pkgD-1.0...
176
${JAILED}[1/4] Extracting pkgD-1.0: done
177
${JAILED}[2/4] Installing pkgC-1.0...
178
${JAILED}[2/4] Extracting pkgC-1.0: done
179
${JAILED}[3/4] Installing pkgB-1.0...
180
${JAILED}[3/4] Extracting pkgB-1.0: done
181
${JAILED}[4/4] Installing pkgA-1.0...
182
${JAILED}[4/4] Extracting pkgA-1.0: done
183
"
184
185
atf_check \
186
-o inline:"${OUTPUT_CASE1}" \
187
-s exit:0 \
188
pkg -o REPOS_DIR="${TMPDIR}/reposconf" -o PKG_CACHEDIR="${TMPDIR}" install -y pkgA
189
190
#rm -f ${TMPDIR}/local.sqlite
191
192
cat << EOF > reposconf/repos.conf
193
repoA: {
194
url: file://${TMPDIR}/repoA,
195
enabled: true,
196
priority: 100
197
}
198
repoB: {
199
url: file://${TMPDIR}/repoB,
200
enabled: true
201
}
202
EOF
203
204
205
OUTPUT_CASE2="Updating repoA repository catalogue...
206
repoA repository is up to date.
207
Updating repoB repository catalogue...
208
repoB repository is up to date.
209
All repositories are up to date.
210
Checking integrity... done (0 conflicting)
211
The following 2 package(s) will be affected (of 0 checked):
212
213
Installed packages to be REINSTALLED:
214
pkgA-1.0 [repoB]
215
pkgD-1.0 [repoA]
216
217
Number of packages to be reinstalled: 2
218
${JAILED}[1/2] Reinstalling pkgA-1.0...
219
${JAILED}[1/2] Extracting pkgA-1.0: done
220
${JAILED}[2/2] Reinstalling pkgD-1.0...
221
${JAILED}[2/2] Extracting pkgD-1.0: done
222
"
223
224
atf_check \
225
-o inline:"${OUTPUT_CASE2}" \
226
-e empty \
227
-s exit:0 \
228
pkg -o REPOS_DIR="${TMPDIR}/reposconf" -o PKG_CACHEDIR="${TMPDIR}" upgrade -yf pkgA pkgD
229
230
231
rm -f ${TMPDIR}/local.sqlite
232
233
234
OUTPUT_CASE3="Updating repoA repository catalogue...
235
repoA repository is up to date.
236
Updating repoB repository catalogue...
237
repoB repository is up to date.
238
All repositories are up to date.
239
Checking integrity... done (0 conflicting)
240
The following 4 package(s) will be affected (of 0 checked):
241
242
New packages to be INSTALLED:
243
pkgA: 1.0 [repoA]
244
pkgB: 1.0 [repoA]
245
pkgC: 1.0 [repoA]
246
pkgD: 1.0 [repoA]
247
248
Number of packages to be installed: 4
249
${JAILED}[1/4] Installing pkgD-1.0...
250
${JAILED}[1/4] Extracting pkgD-1.0: done
251
${JAILED}[2/4] Installing pkgC-1.0...
252
${JAILED}[2/4] Extracting pkgC-1.0: done
253
${JAILED}[3/4] Installing pkgB-1.0...
254
${JAILED}[3/4] Extracting pkgB-1.0: done
255
${JAILED}[4/4] Installing pkgA-1.0...
256
${JAILED}[4/4] Extracting pkgA-1.0: done
257
"
258
259
atf_check \
260
-o inline:"${OUTPUT_CASE3}" \
261
-e empty \
262
-s exit:0 \
263
pkg -o REPOS_DIR="${TMPDIR}/reposconf" -o PKG_CACHEDIR="${TMPDIR}" install -y pkgA
264
}
265
266