Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/pkg
Path: blob/main/tests/frontend/lock.sh
2065 views
1
#! /usr/bin/env atf-sh
2
3
. $(atf_get_srcdir)/test_environment.sh
4
5
tests_init \
6
lock \
7
lock_delete \
8
unlock_all
9
10
lock_setup() {
11
for pkg in 'png' 'sqlite3' ; do
12
atf_check \
13
-o match:".*Installing.*\.\.\.$" \
14
-e empty \
15
-s exit:0 \
16
pkg register -t -M ${RESOURCEDIR}/$pkg.ucl
17
done
18
19
test -f "./local.sqlite" || \
20
atf_fail "Can't populate $PKG_DBDIR/local.sqlite"
21
}
22
23
lock_head() {
24
atf_set "require.files" \
25
"${RESOURCEDIR}/png.ucl ${RESOURCEDIR}/sqlite3.ucl"
26
}
27
28
lock_body() {
29
lock_setup
30
31
atf_check \
32
-o match:"Locking sqlite3.*" \
33
-e empty \
34
-s exit:0 \
35
pkg lock -y sqlite3
36
37
atf_check \
38
-o match:"sqlite3-3.8.6" \
39
-e empty \
40
-s exit:0 \
41
pkg lock -l
42
43
atf_check \
44
-o inline:"sqlite3-3.8.6: already locked\n" \
45
-e empty \
46
-s exit:1 \
47
pkg lock -y sqlite3
48
49
atf_check \
50
-o match:"Unlocking sqlite3.*" \
51
-e empty \
52
-s exit:0 \
53
pkg unlock -y sqlite3
54
55
atf_check \
56
-o inline:"No locked packages were found\n" \
57
-e empty \
58
-s exit:1 \
59
pkg lock -l
60
61
atf_check \
62
-o inline:"sqlite3-3.8.6: already unlocked\n" \
63
-e empty \
64
-s exit:1 \
65
pkg unlock -y sqlite3
66
67
atf_check \
68
-o match:"Locking.*" \
69
-e empty \
70
-s exit:0 \
71
pkg lock -y -a
72
73
atf_check \
74
-o match:"sqlite3.*" \
75
-o match:"png.*" \
76
-e empty \
77
-s exit:0 \
78
pkg lock -l
79
80
atf_check \
81
-o match:"Unlocking.*" \
82
-e empty \
83
-s exit:0 \
84
pkg unlock -y -a
85
86
atf_check \
87
-o inline:"No locked packages were found\n" \
88
-e empty \
89
-s exit:1 \
90
pkg lock -l
91
}
92
93
lock_delete_head() {
94
lock_head
95
}
96
97
lock_delete_body() {
98
lock_setup
99
100
atf_check \
101
-o match:"Locking sqlite3.*" \
102
-e empty \
103
-s exit:0 \
104
pkg lock -y sqlite3
105
106
atf_check \
107
-o match:".*locked or vital and may not be removed.*" \
108
-o match:"sqlite3.*" \
109
-e empty \
110
-s exit:7 \
111
pkg delete -y sqlite3
112
113
atf_check \
114
-o match:"sqlite3-3.8.6" \
115
-e empty \
116
-s exit:0 \
117
pkg lock -l
118
}
119
120
unlock_all_body()
121
{
122
mkdir target
123
for i in "a" "b" "c" "d"; do
124
atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "$i" "$i" "1" "prefix"
125
atf_check -o ignore pkg register -M $i.ucl
126
done
127
atf_check -o ignore pkg lock -y a
128
atf_check -o ignore pkg lock -y d
129
atf_check -o ignore pkg unlock -ay
130
atf_check -o inline:"No locked packages were found\n" \
131
-s exit:1 pkg lock -l
132
}
133
134