Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/pkg
Path: blob/main/tests/frontend/issue1374.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/1374
6
tests_init \
7
issue1374
8
9
issue1374_body() {
10
11
touch foo.file
12
touch pA.file
13
touch pB.file
14
15
cat << EOF > foo.ucl
16
name: foo
17
origin: lang/foo
18
version: "1.0"
19
maintainer: test
20
categories: [test]
21
comment: a test
22
www: http://test
23
prefix: /usr/local
24
desc: <<EOD
25
Yet another test
26
EOD
27
deps: {
28
pA: {
29
origin: "lang/pA",
30
version: "1.0"
31
},
32
pB: { origin: "lang/pB",
33
version: "1.0"
34
}
35
36
}
37
files: {
38
${TMPDIR}/foo.file: "",
39
}
40
EOF
41
42
cat << EOF > pA.ucl
43
name: pA
44
origin: lang/pA
45
version: "1.0"
46
maintainer: test
47
categories: [test]
48
comment: a test
49
www: http://test
50
prefix: /usr/local
51
desc: <<EOD
52
Yet another test
53
EOD
54
files: {
55
${TMPDIR}/pA.file: "",
56
}
57
EOF
58
59
cat << EOF > pB.ucl
60
name: pB
61
origin: lang/pB
62
version: "1.0"
63
maintainer: test
64
categories: [test]
65
comment: a test
66
www: http://test
67
prefix: /usr/local
68
desc: <<EOD
69
Yet another test
70
EOD
71
files: {
72
${TMPDIR}/pB.file: "",
73
}
74
EOF
75
76
cat << EOF > repo1.conf
77
repo1: {
78
url: file://${TMPDIR}/repo1,
79
enabled: true
80
}
81
EOF
82
83
cat << EOF > repo2.conf
84
repo2: {
85
url: file://${TMPDIR}/repo2,
86
enabled: true
87
}
88
EOF
89
90
for p in foo pA pB; do
91
atf_check \
92
-o ignore \
93
-e empty \
94
-s exit:0 \
95
pkg create -o ${TMPDIR}/repo1 -M ./${p}.ucl
96
done
97
98
atf_check \
99
-o inline:"Creating repository in ${TMPDIR}/repo1: done\nPacking files for repository: done\n" \
100
-e empty \
101
-s exit:0 \
102
pkg repo -o ${TMPDIR}/repo1 ${TMPDIR}/repo1
103
104
105
cat << EOF > pB.ucl
106
name: pB
107
origin: lang/pB
108
version: "1.1"
109
maintainer: test
110
categories: [test]
111
comment: a test
112
www: http://test
113
prefix: /usr/local
114
desc: <<EOD
115
Yet another test
116
EOD
117
files: {
118
${TMPDIR}/pB.file: "",
119
}
120
EOF
121
122
123
for p in foo pA pB; do
124
atf_check \
125
-o ignore \
126
-e empty \
127
-s exit:0 \
128
pkg create -o ${TMPDIR}/repo2 -M ./${p}.ucl
129
done
130
131
atf_check \
132
-o inline:"Creating repository in ${TMPDIR}/repo2: done\nPacking files for repository: done\n" \
133
-e empty \
134
-s exit:0 \
135
pkg repo -o ${TMPDIR}/repo2 ${TMPDIR}/repo2
136
137
138
atf_check \
139
-o ignore \
140
-s exit:0 \
141
pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" install -y foo
142
143
atf_check \
144
-o ignore \
145
-e empty \
146
-s exit:0 \
147
pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" delete -y foo
148
149
150
151
atf_check \
152
-o ignore \
153
-e empty \
154
-s exit:0 \
155
pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" autoremove -y
156
157
# 100% must be empty, but it's not
158
atf_check \
159
-o empty \
160
-e empty \
161
-s exit:0 \
162
pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" query -e "%a == 0" "%n-%v"
163
164
165
}
166
167
168