Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/pkg
Path: blob/main/tests/frontend/config.sh
2065 views
1
#!/usr/bin/env atf-sh
2
3
. $(atf_get_srcdir)/test_environment.sh
4
tests_init \
5
empty_conf \
6
duplicate_pkgs_notallowed \
7
inline_repo \
8
nameserver \
9
expansion \
10
validate_shlib_provide_paths
11
# duplicate_pkgs_allowed \
12
13
duplicate_pkgs_allowed_body() {
14
cat << EOF > pkg.conf
15
duplicatedefault: 2
16
EOF
17
18
for n in 1 2; do
19
atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg test${n} test ${n}
20
echo 'allowduplicate: true' >> test${n}.ucl
21
22
atf_check \
23
-e empty \
24
-o match:"Installing test-${n}..." \
25
-s exit:0 \
26
pkg register -M test${n}.ucl
27
done
28
29
atf_check \
30
-e empty \
31
-o match:"test-1 a test" \
32
-o match:"test-2 a test" \
33
-s exit:0 \
34
pkg info
35
}
36
37
duplicate_pkgs_notallowed_body() {
38
for n in 1 2; do
39
atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg test${n} test ${n}
40
done
41
42
atf_check \
43
-e empty \
44
-o match:"Installing test-1..." \
45
-s exit:0 \
46
pkg register -M test1.ucl
47
48
atf_check \
49
-e empty \
50
-s exit:1 \
51
pkg register -M test1.ucl
52
53
atf_check \
54
-e empty \
55
-o match:"test-1 a test" \
56
-s exit:0 \
57
pkg info
58
}
59
60
empty_conf_body() {
61
touch pkg.conf
62
63
cat << EOF > test.ucl
64
name: test
65
origin: test
66
version: 1
67
maintainer: test
68
categories: [test]
69
comment: a test
70
www: http://test
71
prefix: /
72
desc: <<EOD
73
Yet another test
74
EOD
75
EOF
76
77
atf_check \
78
-e empty \
79
-o ignore \
80
-s exit:0 \
81
pkg register -M test.ucl
82
83
atf_check \
84
-o ignore \
85
-e empty \
86
-s exit:0 \
87
pkg -C pkg.conf info test
88
}
89
90
inline_repo_body() {
91
cat > pkgconfiguration << EOF
92
repositories: {
93
pkg1: { url = file:///tmp },
94
pkg2: { url = file:///tmp2 },
95
}
96
EOF
97
atf_check -o match:'^ url : "file:///tmp",$' \
98
-o match:'^ url : "file:///tmp2",$' \
99
pkg -o REPOS_DIR=/dev/null -C pkgconfiguration -vv
100
}
101
102
nameserver_body()
103
{
104
atf_skip_on Darwin Not possible to inject a namserver on OSX
105
atf_skip_on Linux Not possible to inject a namserver on OSX
106
107
atf_check \
108
-o inline:"\n" \
109
pkg -C /dev/null config nameserver
110
111
atf_check \
112
-o inline:"192.168.1.1\n" \
113
pkg -o NAMESERVER="192.168.1.1" -C /dev/null config nameserver
114
115
atf_check \
116
-o inline:"plop\n" \
117
-e inline:"${PROGNAME}: Unable to set nameserver, ignoring\n" \
118
pkg -o NAMESERVER="plop" -C /dev/null config nameserver
119
}
120
121
expansion_body() {
122
atf_skip_on Darwin "N/A"
123
atf_skip_on Linux "N/A"
124
OSNAME=$(uname)
125
MAJOR_VERSION=$(uname -r | cut -d . -f 1)
126
MINOR_VERSION=$(uname -r | cut -d . -f 2 | cut -d - -f 1)
127
ARCH=$(uname -p)
128
129
atf_check \
130
-o inline:"${OSNAME}:${MAJOR_VERSION}:${ARCH}\n" \
131
pkg config abi
132
133
echo "DOT_FILE=\${OSNAME}" > pkg.conf
134
135
atf_check -o inline:"${OSNAME}\n" pkg -C ${TMPDIR}/pkg.conf config dot_file
136
echo "DOT_FILE=\${VERSION_MAJOR}" > pkg.conf
137
atf_check -o inline:"${MAJOR_VERSION}\n" pkg -C ${TMPDIR}/pkg.conf config dot_file
138
echo "DOT_FILE=\${VERSION_MINOR}" > pkg.conf
139
atf_check -o inline:"${MINOR_VERSION}\n" pkg -C ${TMPDIR}/pkg.conf config dot_file
140
echo "DOT_FILE=\${ARCH}" > pkg.conf
141
atf_check -o inline:"${ARCH}\n" pkg -C ${TMPDIR}/pkg.conf config dot_file
142
143
}
144
145
validate_shlib_provide_paths_body() {
146
for option in \
147
SHLIB_PROVIDE_PATHS_NATIVE \
148
SHLIB_PROVIDE_PATHS_COMPAT_32 \
149
SHLIB_PROVIDE_PATHS_COMPAT_LINUX \
150
SHLIB_PROVIDE_PATHS_COMPAT_LINUX_32
151
do
152
atf_check -o inline:"/bar/foo\n" -s exit:0 pkg -o $option=/bar/foo config $option
153
154
ERROR="pkg: Invalid value for config option ${option}, 'foo' is not an absolute path.
155
pkg: Cannot parse configuration file!
156
"
157
atf_check -e inline:"${ERROR}" -s exit:1 pkg -o $option=foo config $option
158
atf_check -e inline:"${ERROR}" -s exit:1 pkg -o $option=/bar/foo,foo config $option
159
done
160
}
161
162