Fossil SCM

fossil-scm / test / settings-repo.test
Blame History Raw 267 lines
1
#
2
# Copyright (c) 2016 D. Richard Hipp
3
#
4
# This program is free software; you can redistribute it and/or
5
# modify it under the terms of the Simplified BSD License (also
6
# known as the "2-Clause License" or "FreeBSD License".)
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but without any warranty; without even the implied warranty of
10
# merchantability or fitness for a particular purpose.
11
#
12
# Author contact information:
13
# [email protected]
14
# http://www.hwaci.com/drh/
15
#
16
############################################################################
17
#
18
# The "settings" and "unset" commands that may modify the repository.
19
#
20
21
set path [file dirname [info script]]
22
23
require_no_open_checkout
24
25
test_setup
26
27
###############################################################################
28
#
29
# Complete syntax as tested:
30
#
31
# fossil settings ?PROPERTY? ?VALUE? ?OPTIONS?
32
# fossil unset PROPERTY ?OPTIONS?
33
#
34
# Where the only supported options are "--global" and "--exact".
35
#
36
###############################################################################
37
38
set all_settings [get_all_settings]
39
40
foreach name $all_settings {
41
#
42
# HACK: Make 100% sure that there are no non-default setting values
43
# present anywhere.
44
#
45
if {$name eq "manifest"} {
46
fossil unset $name --exact --global -expectError
47
} else {
48
fossil unset $name --exact --global
49
}
50
fossil unset $name --exact
51
52
#
53
# NOTE: Query for the hard-coded default value of this setting and
54
# save it.
55
#
56
fossil test-th-eval "setting $name"
57
set defaults($name) [normalize_result]
58
}
59
60
###############################################################################
61
62
fossil settings bad-setting some_value -expectError
63
64
test settings-set-bad-local {
65
[normalize_result] eq "no such setting: bad-setting"
66
}
67
68
fossil settings bad-setting some_value --global -expectError
69
70
test settings-set-bad-global {
71
[normalize_result] eq "no such setting: bad-setting"
72
}
73
74
###############################################################################
75
76
fossil unset bad-setting -expectError
77
78
test settings-unset-bad-local {
79
[normalize_result] eq "no such setting: bad-setting"
80
}
81
82
fossil unset bad-setting --global -expectError
83
84
test settings-unset-bad-global {
85
[normalize_result] eq "no such setting: bad-setting"
86
}
87
88
###############################################################################
89
90
fossil settings ssl some_value -expectError
91
92
test settings-set-ambiguous-local {
93
[normalize_result] eq
94
"ambiguous setting \"ssl\" - might be: ssl-ca-location ssl-identity"
95
}
96
97
fossil settings ssl some_value --global -expectError
98
99
test settings-set-ambiguous-global {
100
[normalize_result] eq
101
"ambiguous setting \"ssl\" - might be: ssl-ca-location ssl-identity"
102
}
103
104
###############################################################################
105
106
fossil unset ssl -expectError
107
108
test settings-unset-ambiguous-local {
109
[normalize_result] eq
110
"ambiguous setting \"ssl\" - might be: ssl-ca-location ssl-identity"
111
}
112
113
fossil unset ssl --global -expectError
114
115
test settings-unset-ambiguous-global {
116
[normalize_result] eq
117
"ambiguous setting \"ssl\" - might be: ssl-ca-location ssl-identity"
118
}
119
120
###############################################################################
121
122
set pattern(1) {^%name%$}
123
set pattern(3) {^%name%[ ]+\(global\)[ ]+%value%+$}
124
set pattern(4) {^%name%[ ]+\(local\)[ ]+%value%+$}
125
126
foreach name $all_settings {
127
if {$name ne "manifest"} {
128
set value #global_for_$name
129
fossil settings $name $value --exact --global
130
set data [normalize_result]
131
132
test settings-set-$name-global {
133
$data eq ""
134
}
135
136
fossil settings $name --exact --global
137
set data [normalize_result]
138
139
test settings-set-check1-$name-global {
140
[regexp -- [string map \
141
[list %name% $name %value% $value] $pattern(3)] $data]
142
}
143
144
fossil test-th-eval --open-config "setting $name"
145
set data [normalize_result]
146
147
test settings-set-check2-$name-global {
148
$data eq $value
149
}
150
151
fossil unset $name --exact --global
152
set data [normalize_result]
153
154
test settings-unset-$name-global {
155
$data eq ""
156
}
157
158
fossil settings $name --exact --global
159
set data [normalize_result]
160
161
test settings-unset-check1-$name-global {
162
[regexp -- [string map \
163
[list %name% $name %value% $value] $pattern(1)] $data]
164
}
165
166
fossil test-th-eval --open-config "setting $name"
167
set data [normalize_result]
168
169
test settings-unset-check2-$name-global {
170
$data eq $defaults($name)
171
}
172
}
173
174
set value #local_for_$name
175
fossil settings $name $value --exact
176
set data [normalize_result]
177
178
test settings-set-$name-local {
179
$data eq ""
180
}
181
182
fossil settings $name --exact
183
set data [normalize_result]
184
185
test settings-set-check1-$name-local {
186
[regexp -- [string map \
187
[list %name% $name %value% $value] $pattern(4)] $data]
188
}
189
190
fossil test-th-eval --open-config "setting $name"
191
set data [normalize_result]
192
193
test settings-set-check2-$name-local {
194
$data eq $value
195
}
196
197
fossil unset $name --exact
198
set data [normalize_result]
199
200
test settings-unset-$name-local {
201
$data eq ""
202
}
203
204
fossil settings $name --exact
205
set data [normalize_result]
206
207
test settings-unset-check1-$name-local {
208
[regexp -- [string map \
209
[list %name% $name %value% $value] $pattern(1)] $data]
210
}
211
212
fossil test-th-eval --open-config "setting $name"
213
set data [normalize_result]
214
215
test settings-unset-check2-$name-local {
216
$data eq $defaults($name)
217
}
218
}
219
220
###############################################################################
221
222
set pattern(5) \
223
{^%name%[ ]+\n \(overridden by contents of file \.fossil-settings/%name%\)$}
224
225
set versionable_settings [get_versionable_settings]
226
file mkdir .fossil-settings
227
228
foreach name $versionable_settings {
229
fossil settings $name --exact
230
set data [normalize_result]
231
232
test settings-before-versionable-$name {
233
[regexp -- [string map [list %name% $name] $pattern(1)] $data]
234
}
235
236
set value #versionable_for_$name
237
set fileName [file join .fossil-settings $name]
238
write_file $fileName $value
239
240
fossil settings $name --exact
241
set data [normalize_result]
242
243
test settings-set-check1-versionable-$name {
244
[regexp -- [string map [list %name% $name] $pattern(5)] $data]
245
}
246
247
fossil test-th-eval --open-config "setting $name"
248
set data [normalize_result]
249
250
test settings-set-check2-versionable-$name {
251
$data eq ""
252
}
253
254
file delete $fileName
255
256
fossil settings $name --exact
257
set data [normalize_result]
258
259
test settings-after-versionable-$name {
260
[regexp -- [string map [list %name% $name] $pattern(1)] $data]
261
}
262
}
263
264
###############################################################################
265
266
test_cleanup
267

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button