Mercurial > vim
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 |