comparison src/testdir/test_spellfile.vim @ 21841:7a6ca887128d v8.2.1470

patch 8.2.1470: errors in spell file not tested Commit: https://github.com/vim/vim/commit/c0f8823ee4ca629db5446ba0a935f68d4a4fb193 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Aug 16 21:51:49 2020 +0200 patch 8.2.1470: errors in spell file not tested Problem: Errors in spell file not tested. Solution: Add test for spell file errors. (Yegappan Lakshmanan, closes #6721)
author Bram Moolenaar <Bram@vim.org>
date Sun, 16 Aug 2020 22:00:03 +0200
parents 08940efa6b4e
children 776c76599617
comparison
equal deleted inserted replaced
21840:5a6e009dc3f2 21841:7a6ca887128d
165 2 165 2
166 norm! $zux 166 norm! $zux
167 call assert_equal([], glob('Xspellfile.add',0,1)) 167 call assert_equal([], glob('Xspellfile.add',0,1))
168 call assert_equal([], glob('Xspellfile2.add',0,1)) 168 call assert_equal([], glob('Xspellfile2.add',0,1))
169 169
170 set spellfile= 170 set spellfile= spell& spelllang&
171 bw! 171 bw!
172 endfunc 172 endfunc
173 173
174 " Test for spell file format errors
175 func Test_spellfile_format_error()
176 let save_rtp = &rtp
177 call mkdir('Xtest/spell', 'p')
178
179 " empty spell file
180 call writefile([], './Xtest/spell/Xtest.utf-8.spl')
181 set runtimepath=./Xtest
182 set spelllang=Xtest
183 call assert_fails('set spell', 'E757:')
184 set nospell spelllang&
185
186 " invalid file ID
187 call writefile(['vim'], './Xtest/spell/Xtest.utf-8.spl')
188 set runtimepath=./Xtest
189 set spelllang=Xtest
190 call assert_fails('set spell', 'E757:')
191 set nospell spelllang&
192
193 " missing version number
194 call writefile(['VIMspell'], './Xtest/spell/Xtest.utf-8.spl')
195 set runtimepath=./Xtest
196 set spelllang=Xtest
197 call assert_fails('set spell', 'E771:')
198 set nospell spelllang&
199
200 " invalid version number
201 call writefile(['VIMspellz'], './Xtest/spell/Xtest.utf-8.spl')
202 set runtimepath=./Xtest
203 set spelllang=Xtest
204 call assert_fails('set spell', 'E772:')
205 set nospell spelllang&
206
207 " no sections
208 call writefile(0z56494D7370656C6C32, './Xtest/spell/Xtest.utf-8.spl', 'b')
209 set runtimepath=./Xtest
210 set spelllang=Xtest
211 call assert_fails('set spell', 'E758:')
212 set nospell spelllang&
213
214 " missing section length
215 call writefile(['VIMspell200'], './Xtest/spell/Xtest.utf-8.spl')
216 set runtimepath=./Xtest
217 set spelllang=Xtest
218 call assert_fails('set spell', 'E758:')
219 set nospell spelllang&
220
221 " unsupported required section
222 call writefile(['VIMspell2z' .. nr2char(1) .. ' ' .. nr2char(4)],
223 \ './Xtest/spell/Xtest.utf-8.spl')
224 set runtimepath=./Xtest
225 set spelllang=Xtest
226 call assert_fails('set spell', 'E770:')
227 set nospell spelllang&
228
229 " unsupported not-required section
230 call writefile(['VIMspell2z' .. nr2char(0) .. ' ' .. nr2char(4)],
231 \ './Xtest/spell/Xtest.utf-8.spl')
232 set runtimepath=./Xtest
233 set spelllang=Xtest
234 call assert_fails('set spell', 'E758:')
235 set nospell spelllang&
236
237 " SN_REGION: invalid number of region names
238 call writefile(0z56494D7370656C6C320000000000FF,
239 \ './Xtest/spell/Xtest.utf-8.spl', 'b')
240 set runtimepath=./Xtest
241 set spelllang=Xtest
242 call assert_fails('set spell', 'E759:')
243 set nospell spelllang&
244
245 " SN_CHARFLAGS: missing <charflagslen> length
246 call writefile(0z56494D7370656C6C32010000000004,
247 \ './Xtest/spell/Xtest.utf-8.spl', 'b')
248 set runtimepath=./Xtest
249 set spelllang=Xtest
250 call assert_fails('set spell', 'E758:')
251 set nospell spelllang&
252
253 " SN_CHARFLAGS: invalid <charflagslen> length
254 call writefile(0z56494D7370656C6C320100000000010201,
255 \ './Xtest/spell/Xtest.utf-8.spl', 'b')
256 set runtimepath=./Xtest
257 set spelllang=Xtest
258 set spell
259 " FIXME: There are no error messages. How to check for the test result?
260 set nospell spelllang&
261
262 " SN_CHARFLAGS: charflagslen == 0 and folcharslen != 0
263 call writefile(0z56494D7370656C6C3201000000000400000101,
264 \ './Xtest/spell/Xtest.utf-8.spl', 'b')
265 set runtimepath=./Xtest
266 set spelllang=Xtest
267 call assert_fails('set spell', 'E759:')
268 set nospell spelllang&
269
270 " SN_CHARFLAGS: missing <folcharslen> length
271 call writefile(0z56494D7370656C6C3201000000000100,
272 \ './Xtest/spell/Xtest.utf-8.spl', 'b')
273 set runtimepath=./Xtest
274 set spelllang=Xtest
275 call assert_fails('set spell', 'E758:')
276 set nospell spelllang&
277
278 " SN_PREFCOND: invalid prefcondcnt
279 call writefile(0z56494D7370656C6C3203000000000100,
280 \ './Xtest/spell/Xtest.utf-8.spl', 'b')
281 set runtimepath=./Xtest
282 set spelllang=Xtest
283 call assert_fails('set spell', 'E759:')
284 set nospell spelllang&
285
286 " SN_PREFCOND: invalid condlen
287 call writefile(0z56494D7370656C6C320300000000020001,
288 \ './Xtest/spell/Xtest.utf-8.spl', 'b')
289 set runtimepath=./Xtest
290 set spelllang=Xtest
291 call assert_fails('set spell', 'E759:')
292 set nospell spelllang&
293
294 " SN_REP: invalid repcount
295 call writefile(0z56494D7370656C6C3204000000000100,
296 \ './Xtest/spell/Xtest.utf-8.spl', 'b')
297 set runtimepath=./Xtest
298 set spelllang=Xtest
299 call assert_fails('set spell', 'E758:')
300 set nospell spelllang&
301
302 " SN_REP: missing rep
303 call writefile(0z56494D7370656C6C320400000000020004,
304 \ './Xtest/spell/Xtest.utf-8.spl', 'b')
305 set runtimepath=./Xtest
306 set spelllang=Xtest
307 call assert_fails('set spell', 'E758:')
308 set nospell spelllang&
309
310 " SN_REP: zero repfromlen
311 call writefile(0z56494D7370656C6C32040000000003000100,
312 \ './Xtest/spell/Xtest.utf-8.spl', 'b')
313 set runtimepath=./Xtest
314 set spelllang=Xtest
315 call assert_fails('set spell', 'E759:')
316 set nospell spelllang&
317
318 " SN_REP: invalid reptolen
319 call writefile(0z56494D7370656C6C320400000000050001014101,
320 \ './Xtest/spell/Xtest.utf-8.spl', 'b')
321 set runtimepath=./Xtest
322 set spelllang=Xtest
323 " FIXME: There are no error messages. How to check for the test result?
324 set spell
325 set nospell spelllang&
326
327 " SN_REP: zero reptolen
328 call writefile(0z56494D7370656C6C320400000000050001014100,
329 \ './Xtest/spell/Xtest.utf-8.spl', 'b')
330 set runtimepath=./Xtest
331 set spelllang=Xtest
332 call assert_fails('set spell', 'E759:')
333 set nospell spelllang&
334
335 let &rtp = save_rtp
336 call delete('Xtest', 'rf')
337 endfunc
338
174 " vim: shiftwidth=2 sts=2 expandtab 339 " vim: shiftwidth=2 sts=2 expandtab