comparison src/testdir/test_modeline.vim @ 30582:72245f9c9405 v9.0.0626

patch 9.0.0626: too many delete() calls in tests Commit: https://github.com/vim/vim/commit/b152b6a40f729ed81a25d2fa541a4e73e201bec4 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Sep 29 21:37:33 2022 +0100 patch 9.0.0626: too many delete() calls in tests Problem: Too many delete() calls in tests. Solution: Use deferred delete where possible.
author Bram Moolenaar <Bram@vim.org>
date Thu, 29 Sep 2022 22:45:04 +0200
parents 13b02c1ea0f7
children 2bfde43727e9
comparison
equal deleted inserted replaced
30581:2e1ec75a7766 30582:72245f9c9405
2 2
3 source check.vim 3 source check.vim
4 4
5 func Test_modeline_invalid() 5 func Test_modeline_invalid()
6 " This was reading allocated memory in the past. 6 " This was reading allocated memory in the past.
7 call writefile(['vi:0', 'nothing'], 'Xmodeline') 7 call writefile(['vi:0', 'nothing'], 'Xmodeline', 'D')
8 let modeline = &modeline 8 let modeline = &modeline
9 set modeline 9 set modeline
10 call assert_fails('split Xmodeline', 'E518:') 10 call assert_fails('split Xmodeline', 'E518:')
11 11
12 " Missing end colon (ignored). 12 " Missing end colon (ignored).
27 call assert_equal(8, &ts) 27 call assert_equal(8, &ts)
28 bwipe! 28 bwipe!
29 29
30 let &modeline = modeline 30 let &modeline = modeline
31 bwipe! 31 bwipe!
32 call delete('Xmodeline')
33 endfunc 32 endfunc
34 33
35 func Test_modeline_filetype() 34 func Test_modeline_filetype()
36 call writefile(['vim: set ft=c :', 'nothing'], 'Xmodeline_filetype') 35 call writefile(['vim: set ft=c :', 'nothing'], 'Xmodeline_filetype', 'D')
37 let modeline = &modeline 36 let modeline = &modeline
38 set modeline 37 set modeline
39 filetype plugin on 38 filetype plugin on
40 split Xmodeline_filetype 39 split Xmodeline_filetype
41 call assert_equal("c", &filetype) 40 call assert_equal("c", &filetype)
42 call assert_equal(1, b:did_ftplugin) 41 call assert_equal(1, b:did_ftplugin)
43 call assert_equal("ccomplete#Complete", &ofu) 42 call assert_equal("ccomplete#Complete", &ofu)
44 43
45 bwipe! 44 bwipe!
46 call delete('Xmodeline_filetype')
47 let &modeline = modeline 45 let &modeline = modeline
48 filetype plugin off 46 filetype plugin off
49 endfunc 47 endfunc
50 48
51 func Test_modeline_syntax() 49 func Test_modeline_syntax()
52 call writefile(['vim: set syn=c :', 'nothing'], 'Xmodeline_syntax') 50 call writefile(['vim: set syn=c :', 'nothing'], 'Xmodeline_syntax', 'D')
53 let modeline = &modeline 51 let modeline = &modeline
54 set modeline 52 set modeline
55 syntax enable 53 syntax enable
56 split Xmodeline_syntax 54 split Xmodeline_syntax
57 call assert_equal("c", &syntax) 55 call assert_equal("c", &syntax)
58 call assert_equal("c", b:current_syntax) 56 call assert_equal("c", b:current_syntax)
59 57
60 bwipe! 58 bwipe!
61 call delete('Xmodeline_syntax')
62 let &modeline = modeline 59 let &modeline = modeline
63 syntax off 60 syntax off
64 endfunc 61 endfunc
65 62
66 func Test_modeline_keymap() 63 func Test_modeline_keymap()
67 CheckFeature keymap 64 CheckFeature keymap
68 call writefile(['vim: set keymap=greek :', 'nothing'], 'Xmodeline_keymap') 65 call writefile(['vim: set keymap=greek :', 'nothing'], 'Xmodeline_keymap', 'D')
69 let modeline = &modeline 66 let modeline = &modeline
70 set modeline 67 set modeline
71 split Xmodeline_keymap 68 split Xmodeline_keymap
72 call assert_equal("greek", &keymap) 69 call assert_equal("greek", &keymap)
73 call assert_match('greek\|grk', b:keymap_name) 70 call assert_match('greek\|grk', b:keymap_name)
74 71
75 bwipe! 72 bwipe!
76 call delete('Xmodeline_keymap')
77 let &modeline = modeline 73 let &modeline = modeline
78 set keymap= iminsert=0 imsearch=-1 74 set keymap= iminsert=0 imsearch=-1
79 endfunc 75 endfunc
80 76
81 func Test_modeline_version() 77 func Test_modeline_version()
82 let modeline = &modeline 78 let modeline = &modeline
83 set modeline 79 set modeline
84 80
85 " Test with vim:{vers}: (version {vers} or later). 81 " Test with vim:{vers}: (version {vers} or later).
86 call writefile(['// vim' .. v:version .. ': ts=2:'], 'Xmodeline_version') 82 call writefile(['// vim' .. v:version .. ': ts=2:'], 'Xmodeline_version', 'D')
87 edit Xmodeline_version 83 edit Xmodeline_version
88 call assert_equal(2, &ts) 84 call assert_equal(2, &ts)
89 bwipe! 85 bwipe!
90 86
91 call writefile(['// vim' .. (v:version - 100) .. ': ts=2:'], 'Xmodeline_version') 87 call writefile(['// vim' .. (v:version - 100) .. ': ts=2:'], 'Xmodeline_version')
145 edit Xmodeline_version 141 edit Xmodeline_version
146 call assert_equal(8, &ts) 142 call assert_equal(8, &ts)
147 bwipe! 143 bwipe!
148 144
149 let &modeline = modeline 145 let &modeline = modeline
150 call delete('Xmodeline_version')
151 endfunc 146 endfunc
152 147
153 func Test_modeline_colon() 148 func Test_modeline_colon()
154 let modeline = &modeline 149 let modeline = &modeline
155 set modeline 150 set modeline
156 151
157 call writefile(['// vim: set showbreak=\: ts=2: sw=2'], 'Xmodeline_colon') 152 call writefile(['// vim: set showbreak=\: ts=2: sw=2'], 'Xmodeline_colon', 'D')
158 edit Xmodeline_colon 153 edit Xmodeline_colon
159 154
160 " backlash colon should become colon. 155 " backlash colon should become colon.
161 call assert_equal(':', &showbreak) 156 call assert_equal(':', &showbreak)
162 157
164 " 'sw' should be ignored because it is after the end colon. 159 " 'sw' should be ignored because it is after the end colon.
165 call assert_equal(2, &ts) 160 call assert_equal(2, &ts)
166 call assert_equal(8, &sw) 161 call assert_equal(8, &sw)
167 162
168 let &modeline = modeline 163 let &modeline = modeline
169 call delete('Xmodeline_colon')
170 endfunc 164 endfunc
171 165
172 func s:modeline_fails(what, text, error) 166 func s:modeline_fails(what, text, error)
173 call CheckOption(a:what) 167 call CheckOption(a:what)
174 let fname = "Xmodeline_fails_" . a:what 168 let fname = "Xmodeline_fails_" . a:what
175 call writefile(['vim: set ' . a:text . ' :', 'nothing'], fname) 169 call writefile(['vim: set ' . a:text . ' :', 'nothing'], fname, 'D')
176 let modeline = &modeline 170 let modeline = &modeline
177 set modeline 171 set modeline
178 filetype plugin on 172 filetype plugin on
179 syntax enable 173 syntax enable
180 call assert_fails('split ' . fname, a:error) 174 call assert_fails('split ' . fname, a:error)
181 call assert_equal("", &filetype) 175 call assert_equal("", &filetype)
182 call assert_equal("", &syntax) 176 call assert_equal("", &syntax)
183 177
184 bwipe! 178 bwipe!
185 call delete(fname)
186 let &modeline = modeline 179 let &modeline = modeline
187 filetype plugin off 180 filetype plugin off
188 syntax off 181 syntax off
189 endfunc 182 endfunc
190 183
290 5 five 283 5 five
291 6 six 284 6 six
292 7 seven 285 7 seven
293 8 eight 286 8 eight
294 END 287 END
295 call writefile(lines, 'Xmodeline') 288 call writefile(lines, 'Xmodeline', 'D')
296 edit Xmodeline 289 edit Xmodeline
297 let info = split(execute('verbose set tabstop?'), "\n") 290 let info = split(execute('verbose set tabstop?'), "\n")
298 call assert_match('^\s*Last set from modeline line 1$', info[-1]) 291 call assert_match('^\s*Last set from modeline line 1$', info[-1])
299 bwipe! 292 bwipe!
300 293
329 let info = split(execute('verbose set tabstop?'), "\n") 322 let info = split(execute('verbose set tabstop?'), "\n")
330 call assert_match('^\s*Last set from modeline line 8$', info[-1]) 323 call assert_match('^\s*Last set from modeline line 8$', info[-1])
331 bwipe! 324 bwipe!
332 325
333 let &modeline = modeline 326 let &modeline = modeline
334 call delete('Xmodeline')
335 endfunc 327 endfunc
336 328
337 " Test for the 'modeline' default value in compatible and non-compatible modes 329 " Test for the 'modeline' default value in compatible and non-compatible modes
338 " for root and non-root accounts 330 " for root and non-root accounts
339 func Test_modeline_default() 331 func Test_modeline_default()
348 set compatible& modeline& 340 set compatible& modeline&
349 endfunc 341 endfunc
350 342
351 " Some options cannot be set from the modeline when 'diff' option is set 343 " Some options cannot be set from the modeline when 'diff' option is set
352 func Test_modeline_diff_buffer() 344 func Test_modeline_diff_buffer()
353 call writefile(['vim: diff foldmethod=marker wrap'], 'Xmdifile') 345 call writefile(['vim: diff foldmethod=marker wrap'], 'Xmdifile', 'D')
354 set foldmethod& nowrap 346 set foldmethod& nowrap
355 new Xmdifile 347 new Xmdifile
356 call assert_equal('manual', &foldmethod) 348 call assert_equal('manual', &foldmethod)
357 call assert_false(&wrap) 349 call assert_false(&wrap)
358 set wrap& 350 set wrap&
359 call delete('Xmdifile')
360 bw 351 bw
361 endfunc 352 endfunc
362 353
363 func Test_modeline_disable() 354 func Test_modeline_disable()
364 set modeline 355 set modeline
365 call writefile(['vim: sw=2', 'vim: nomodeline', 'vim: sw=3'], 'Xmodeline_disable') 356 call writefile(['vim: sw=2', 'vim: nomodeline', 'vim: sw=3'], 'Xmodeline_disable', 'D')
366 edit Xmodeline_disable 357 edit Xmodeline_disable
367 call assert_equal(2, &sw) 358 call assert_equal(2, &sw)
368 call delete('Xmodeline_disable')
369 endfunc 359 endfunc
370 360
371 " vim: shiftwidth=2 sts=2 expandtab 361 " vim: shiftwidth=2 sts=2 expandtab