0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 9.0.0475: not using deferred delete in tests

Problem:    Not using deferred delete in tests.
Solution:   Use deferred delete more often.
This commit is contained in:
Bram Moolenaar 2022-09-15 22:26:18 +01:00
parent dd44b58f64
commit dd674774bb
2 changed files with 42 additions and 62 deletions

View File

@ -400,11 +400,10 @@ def Test_block_local_vars()
# need to execute this with a separate Vim instance to avoid the current # need to execute this with a separate Vim instance to avoid the current
# context gets garbage collected. # context gets garbage collected.
writefile(lines, 'Xscript') writefile(lines, 'Xscript', 'D')
g:RunVim([], [], '-S Xscript') g:RunVim([], [], '-S Xscript')
assert_equal(['ok'], readfile('Xdidit')) assert_equal(['ok'], readfile('Xdidit'))
delete('Xscript')
delete('Xdidit') delete('Xdidit')
enddef enddef
@ -991,13 +990,12 @@ def Test_cnext_works_in_catch()
writefile([getqflist({idx: 0}).idx], 'Xcncresult') writefile([getqflist({idx: 0}).idx], 'Xcncresult')
qall qall
END END
writefile(lines, 'XCatchCnext') writefile(lines, 'XCatchCnext', 'D')
g:RunVim([], [], '--clean -S XCatchCnext') g:RunVim([], [], '--clean -S XCatchCnext')
assert_equal(['1'], readfile('Xcncresult')) assert_equal(['1'], readfile('Xcncresult'))
delete('Xcncfile1') delete('Xcncfile1')
delete('Xcncfile2') delete('Xcncfile2')
delete('XCatchCnext')
delete('Xcncresult') delete('Xcncresult')
enddef enddef
@ -1015,9 +1013,8 @@ def Test_nocatch_throw_silenced()
enddef enddef
silent! Func() silent! Func()
END END
writefile(lines, 'XthrowSilenced') writefile(lines, 'XthrowSilenced', 'D')
source XthrowSilenced source XthrowSilenced
delete('XthrowSilenced')
enddef enddef
def DeletedFunc(): list<any> def DeletedFunc(): list<any>
@ -1473,7 +1470,7 @@ def Test_vim9script_reload_delfunc()
END END
# FuncNo() is defined # FuncNo() is defined
writefile(first_lines + withno_lines, 'Xreloaded.vim') writefile(first_lines + withno_lines, 'Xreloaded.vim', 'D')
source Xreloaded.vim source Xreloaded.vim
g:DoCheck(true) g:DoCheck(true)
@ -1486,8 +1483,6 @@ def Test_vim9script_reload_delfunc()
writefile(first_lines + withno_lines, 'Xreloaded.vim') writefile(first_lines + withno_lines, 'Xreloaded.vim')
source Xreloaded.vim source Xreloaded.vim
g:DoCheck(false) g:DoCheck(false)
delete('Xreloaded.vim')
enddef enddef
def Test_vim9script_reload_delvar() def Test_vim9script_reload_delvar()
@ -1496,7 +1491,7 @@ def Test_vim9script_reload_delvar()
vim9script vim9script
var name = 'string' var name = 'string'
END END
writefile(lines, 'XreloadVar.vim') writefile(lines, 'XreloadVar.vim', 'D')
source XreloadVar.vim source XreloadVar.vim
# now write the script using the same variable locally - works # now write the script using the same variable locally - works
@ -1508,8 +1503,6 @@ def Test_vim9script_reload_delvar()
END END
writefile(lines, 'XreloadVar.vim') writefile(lines, 'XreloadVar.vim')
source XreloadVar.vim source XreloadVar.vim
delete('XreloadVar.vim')
enddef enddef
def Test_func_redefine_error() def Test_func_redefine_error()
@ -1520,7 +1513,7 @@ def Test_func_redefine_error()
'enddef', 'enddef',
'Func()', 'Func()',
] ]
writefile(lines, 'Xtestscript.vim') writefile(lines, 'Xtestscript.vim', 'D')
for count in range(3) for count in range(3)
try try
@ -1531,8 +1524,6 @@ def Test_func_redefine_error()
assert_match('function <SNR>\d\+_Func, line 1', v:throwpoint) assert_match('function <SNR>\d\+_Func, line 1', v:throwpoint)
endtry endtry
endfor endfor
delete('Xtestscript.vim')
enddef enddef
def Test_func_redefine_fails() def Test_func_redefine_fails()
@ -2035,9 +2026,8 @@ def Test_for_outside_of_function()
endfor endfor
assert_equal(' loop 1 loop 2 loop 3', result) assert_equal(' loop 1 loop 2 loop 3', result)
END END
writefile(lines, 'Xvim9for.vim') writefile(lines, 'Xvim9for.vim', 'D')
source Xvim9for.vim source Xvim9for.vim
delete('Xvim9for.vim')
enddef enddef
def Test_for_skipped_block() def Test_for_skipped_block()
@ -2271,6 +2261,18 @@ def Test_for_loop_with_closure()
END END
v9.CheckDefAndScriptSuccess(lines) v9.CheckDefAndScriptSuccess(lines)
# also works when the loop variable is used only once halfway the loops
lines =<< trim END
var Clo: func
for i in range(5)
if i == 3
Clo = () => i
endif
endfor
assert_equal(4, Clo())
END
v9.CheckDefAndScriptSuccess(lines)
# using a local variable set to the loop variable in a closure results in the # using a local variable set to the loop variable in a closure results in the
# value at that moment # value at that moment
lines =<< trim END lines =<< trim END
@ -3330,12 +3332,11 @@ def Test_finish()
finish finish
g:res = 'three' g:res = 'three'
END END
writefile(lines, 'Xfinished') writefile(lines, 'Xfinished', 'D')
source Xfinished source Xfinished
assert_equal('two', g:res) assert_equal('two', g:res)
unlet g:res unlet g:res
delete('Xfinished')
enddef enddef
def Test_forward_declaration() def Test_forward_declaration()
@ -3349,14 +3350,13 @@ def Test_forward_declaration()
theVal = 'else' theVal = 'else'
g:laterVal = GetValue() g:laterVal = GetValue()
END END
writefile(lines, 'Xforward') writefile(lines, 'Xforward', 'D')
source Xforward source Xforward
assert_equal('something', g:initVal) assert_equal('something', g:initVal)
assert_equal('else', g:laterVal) assert_equal('else', g:laterVal)
unlet g:initVal unlet g:initVal
unlet g:laterVal unlet g:laterVal
delete('Xforward')
enddef enddef
def Test_declare_script_var_in_func() def Test_declare_script_var_in_func()
@ -3408,7 +3408,7 @@ func Test_vim9script_not_global()
echo 'local' echo 'local'
enddef enddef
END END
call writefile(vim9lines, 'Xvim9script.vim') call writefile(vim9lines, 'Xvim9script.vim', 'D')
source Xvim9script.vim source Xvim9script.vim
try try
echo g:var echo g:var
@ -3428,8 +3428,6 @@ func Test_vim9script_not_global()
catch /E117:/ catch /E117:/
" caught " caught
endtry endtry
call delete('Xvim9script.vim')
endfunc endfunc
def Test_vim9_copen() def Test_vim9_copen()
@ -3459,7 +3457,7 @@ def Test_error_in_autoload_script()
var save_rtp = &rtp var save_rtp = &rtp
var dir = getcwd() .. '/Xruntime' var dir = getcwd() .. '/Xruntime'
&rtp = dir &rtp = dir
mkdir(dir .. '/autoload', 'p') mkdir(dir .. '/autoload', 'pR')
var lines =<< trim END var lines =<< trim END
vim9script noclear vim9script noclear
@ -3492,12 +3490,11 @@ def Test_error_in_autoload_script()
v9.CheckScriptSuccess(lines) v9.CheckScriptSuccess(lines)
&rtp = save_rtp &rtp = save_rtp
delete(dir, 'rf')
enddef enddef
def Test_error_in_autoload_script_foldexpr() def Test_error_in_autoload_script_foldexpr()
var save_rtp = &rtp var save_rtp = &rtp
mkdir('Xvim/autoload', 'p') mkdir('Xvim/autoload', 'pR')
&runtimepath = 'Xvim' &runtimepath = 'Xvim'
var lines =<< trim END var lines =<< trim END
@ -3515,8 +3512,6 @@ def Test_error_in_autoload_script_foldexpr()
redraw redraw
END END
v9.CheckScriptFailure(lines, 'E684: List index out of range: 0') v9.CheckScriptFailure(lines, 'E684: List index out of range: 0')
delete('Xvim', 'rf')
enddef enddef
def Test_invalid_sid() def Test_invalid_sid()
@ -3529,16 +3524,14 @@ def Test_invalid_sid()
enddef enddef
def Test_restoring_cpo() def Test_restoring_cpo()
writefile(['vim9script', 'set nocp'], 'Xsourced') writefile(['vim9script', 'set nocp'], 'Xsourced', 'D')
writefile(['call writefile(["done"], "Xdone")', 'quit!'], 'Xclose') writefile(['call writefile(["done"], "Xdone")', 'quit!'], 'Xclose', 'D')
if g:RunVim([], [], '-u NONE +"set cpo+=a" -S Xsourced -S Xclose') if g:RunVim([], [], '-u NONE +"set cpo+=a" -S Xsourced -S Xclose')
assert_equal(['done'], readfile('Xdone')) assert_equal(['done'], readfile('Xdone'))
endif endif
delete('Xsourced')
delete('Xclose')
delete('Xdone') delete('Xdone')
writefile(['vim9script', 'g:cpoval = &cpo'], 'XanotherScript') writefile(['vim9script', 'g:cpoval = &cpo'], 'XanotherScript', 'D')
set cpo=aABceFsMny> set cpo=aABceFsMny>
edit XanotherScript edit XanotherScript
so % so %
@ -3551,7 +3544,6 @@ def Test_restoring_cpo()
assert_equal('aABceFsMny>', &cpo) assert_equal('aABceFsMny>', &cpo)
assert_equal('aABceFsMny>', g:cpoval) assert_equal('aABceFsMny>', g:cpoval)
delete('XanotherScript')
set cpo&vim set cpo&vim
unlet g:cpoval unlet g:cpoval
@ -3559,7 +3551,7 @@ def Test_restoring_cpo()
# 'cpo' is not restored in main vimrc # 'cpo' is not restored in main vimrc
var save_HOME = $HOME var save_HOME = $HOME
$HOME = getcwd() .. '/Xhome' $HOME = getcwd() .. '/Xhome'
mkdir('Xhome') mkdir('Xhome', 'R')
var lines =<< trim END var lines =<< trim END
vim9script vim9script
writefile(['before: ' .. &cpo], 'Xrporesult') writefile(['before: ' .. &cpo], 'Xrporesult')
@ -3571,14 +3563,14 @@ def Test_restoring_cpo()
lines =<< trim END lines =<< trim END
call writefile(['later: ' .. &cpo], 'Xrporesult', 'a') call writefile(['later: ' .. &cpo], 'Xrporesult', 'a')
END END
writefile(lines, 'Xlegacy') writefile(lines, 'Xlegacy', 'D')
lines =<< trim END lines =<< trim END
vim9script vim9script
call writefile(['vim9: ' .. &cpo], 'Xrporesult', 'a') call writefile(['vim9: ' .. &cpo], 'Xrporesult', 'a')
qa qa
END END
writefile(lines, 'Xvim9') writefile(lines, 'Xvim9', 'D')
var cmd = g:GetVimCommand() .. " -S Xlegacy -S Xvim9" var cmd = g:GetVimCommand() .. " -S Xlegacy -S Xvim9"
cmd = substitute(cmd, '-u NONE', '', '') cmd = substitute(cmd, '-u NONE', '', '')
@ -3591,9 +3583,6 @@ def Test_restoring_cpo()
'vim9: aABceFs'], readfile('Xrporesult')) 'vim9: aABceFs'], readfile('Xrporesult'))
$HOME = save_HOME $HOME = save_HOME
delete('Xhome', 'rf')
delete('Xlegacy')
delete('Xvim9')
delete('Xrporesult') delete('Xrporesult')
endif endif
enddef enddef
@ -3611,7 +3600,7 @@ def Run_test_no_redraw_when_restoring_cpo()
export def Func() export def Func()
enddef enddef
END END
mkdir('Xnordir/autoload', 'p') mkdir('Xnordir/autoload', 'pR')
writefile(lines, 'Xnordir/autoload/script.vim') writefile(lines, 'Xnordir/autoload/script.vim')
lines =<< trim END lines =<< trim END
@ -3621,7 +3610,7 @@ def Run_test_no_redraw_when_restoring_cpo()
au CmdlineEnter : ++once timer_start(0, (_) => script#Func()) au CmdlineEnter : ++once timer_start(0, (_) => script#Func())
setline(1, 'some text') setline(1, 'some text')
END END
writefile(lines, 'XTest_redraw_cpo') writefile(lines, 'XTest_redraw_cpo', 'D')
var buf = g:RunVimInTerminal('-S XTest_redraw_cpo', {'rows': 6}) var buf = g:RunVimInTerminal('-S XTest_redraw_cpo', {'rows': 6})
term_sendkeys(buf, "V:") term_sendkeys(buf, "V:")
g:VerifyScreenDump(buf, 'Test_vim9_no_redraw', {}) g:VerifyScreenDump(buf, 'Test_vim9_no_redraw', {})
@ -3629,8 +3618,6 @@ def Run_test_no_redraw_when_restoring_cpo()
# clean up # clean up
term_sendkeys(buf, "\<Esc>u") term_sendkeys(buf, "\<Esc>u")
g:StopVimInTerminal(buf) g:StopVimInTerminal(buf)
delete('XTest_redraw_cpo')
delete('Xnordir', 'rf')
enddef enddef
func Test_reject_declaration() func Test_reject_declaration()
@ -3731,8 +3718,8 @@ def Run_Test_define_func_at_command_line()
call writefile(['errors: ' .. string(v:errors)], 'Xdidcmd') call writefile(['errors: ' .. string(v:errors)], 'Xdidcmd')
endfunc endfunc
END END
writefile([''], 'Xdidcmd') writefile([''], 'Xdidcmd', 'D')
writefile(lines, 'XcallFunc') writefile(lines, 'XcallFunc', 'D')
var buf = g:RunVimInTerminal('-S XcallFunc', {rows: 6}) var buf = g:RunVimInTerminal('-S XcallFunc', {rows: 6})
# define Afunc() on the command line # define Afunc() on the command line
term_sendkeys(buf, ":def Afunc()\<CR>Bfunc()\<CR>enddef\<CR>") term_sendkeys(buf, ":def Afunc()\<CR>Bfunc()\<CR>enddef\<CR>")
@ -3740,8 +3727,6 @@ def Run_Test_define_func_at_command_line()
g:WaitForAssert(() => assert_equal(['errors: []'], readfile('Xdidcmd'))) g:WaitForAssert(() => assert_equal(['errors: []'], readfile('Xdidcmd')))
call g:StopVimInTerminal(buf) call g:StopVimInTerminal(buf)
delete('XcallFunc')
delete('Xdidcmd')
enddef enddef
def Test_script_var_scope() def Test_script_var_scope()
@ -3869,9 +3854,8 @@ def Test_no_unknown_error_after_error()
sleep 10m sleep 10m
endfor endfor
END END
writefile(lines, 'Xdef') writefile(lines, 'Xdef', 'D')
assert_fails('so Xdef', ['E684:', 'E1012:']) assert_fails('so Xdef', ['E684:', 'E1012:'])
delete('Xdef')
enddef enddef
def InvokeNormal() def InvokeNormal()
@ -3914,7 +3898,7 @@ def Test_script_var_gone_when_sourced_twice()
name = arg name = arg
enddef enddef
END END
writefile(lines, 'XscriptTwice.vim') writefile(lines, 'XscriptTwice.vim', 'D')
so XscriptTwice.vim so XscriptTwice.vim
assert_equal('thename', g:GetName()) assert_equal('thename', g:GetName())
g:SetName('newname') g:SetName('newname')
@ -3925,7 +3909,6 @@ def Test_script_var_gone_when_sourced_twice()
delfunc g:GetName delfunc g:GetName
delfunc g:SetName delfunc g:SetName
delete('XscriptTwice.vim')
unlet g:guard unlet g:guard
enddef enddef
@ -4102,7 +4085,7 @@ def Run_Test_debug_with_lambda()
breakadd func Func breakadd func Func
Func() Func()
END END
writefile(lines, 'XdebugFunc') writefile(lines, 'XdebugFunc', 'D')
var buf = g:RunVimInTerminal('-S XdebugFunc', {rows: 6, wait_for_ruler: 0}) var buf = g:RunVimInTerminal('-S XdebugFunc', {rows: 6, wait_for_ruler: 0})
g:WaitForAssert(() => assert_match('^>', term_getline(buf, 6))) g:WaitForAssert(() => assert_match('^>', term_getline(buf, 6)))
@ -4110,7 +4093,6 @@ def Run_Test_debug_with_lambda()
g:WaitForAssert(() => assert_match('\[0\]', term_getline(buf, 5))) g:WaitForAssert(() => assert_match('\[0\]', term_getline(buf, 5)))
g:StopVimInTerminal(buf) g:StopVimInTerminal(buf)
delete('XdebugFunc')
enddef enddef
func Test_debug_running_out_of_lines() func Test_debug_running_out_of_lines()
@ -4138,7 +4120,7 @@ def Run_Test_debug_running_out_of_lines()
breakadd func Crash breakadd func Crash
Crash() Crash()
END END
writefile(lines, 'XdebugFunc') writefile(lines, 'XdebugFunc', 'D')
var buf = g:RunVimInTerminal('-S XdebugFunc', {rows: 6, wait_for_ruler: 0}) var buf = g:RunVimInTerminal('-S XdebugFunc', {rows: 6, wait_for_ruler: 0})
g:WaitForAssert(() => assert_match('^>', term_getline(buf, 6))) g:WaitForAssert(() => assert_match('^>', term_getline(buf, 6)))
@ -4150,7 +4132,6 @@ def Run_Test_debug_running_out_of_lines()
g:TermWait(buf) g:TermWait(buf)
g:StopVimInTerminal(buf) g:StopVimInTerminal(buf)
delete('XdebugFunc')
enddef enddef
def Test_ambigous_command_error() def Test_ambigous_command_error()
@ -4239,7 +4220,7 @@ def Test_profile_with_lambda()
writefile([result], 'Xdidprofile') writefile([result], 'Xdidprofile')
endtry endtry
END END
writefile(lines, 'Xprofile.vim') writefile(lines, 'Xprofile.vim', 'D')
call system(g:GetVimCommand() call system(g:GetVimCommand()
.. ' --clean' .. ' --clean'
.. ' -c "so Xprofile.vim"' .. ' -c "so Xprofile.vim"'
@ -4250,7 +4231,6 @@ def Test_profile_with_lambda()
assert_true(filereadable('Xprofile.log')) assert_true(filereadable('Xprofile.log'))
delete('Xdidprofile') delete('Xdidprofile')
delete('Xprofile.log') delete('Xprofile.log')
delete('Xprofile.vim')
enddef enddef
func Test_misplaced_type() func Test_misplaced_type()
@ -4323,10 +4303,8 @@ def Test_substitute_cmd()
assert_equal('otherthing', getline(1)) assert_equal('otherthing', getline(1))
bwipe! bwipe!
END END
writefile(lines, 'Xvim9lines') writefile(lines, 'Xvim9lines', 'D')
source Xvim9lines source Xvim9lines
delete('Xvim9lines')
enddef enddef
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker

View File

@ -703,6 +703,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
475,
/**/ /**/
474, 474,
/**/ /**/