From 090728ad4d54287c911894ef42bfe92844ce0fa5 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 20 Dec 2020 15:43:31 +0100 Subject: [PATCH] patch 8.2.2169: Vim9: test leaves file behind MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: Vim9: test leaves file behind. Solution: Rename script files. (Dominique Pellé, closes #7511) Use try/finally. --- src/testdir/test_vim9_script.vim | 3 +- src/testdir/vim9.vim | 67 ++++++++++++++++++++++---------- src/version.c | 2 + 3 files changed, 50 insertions(+), 22 deletions(-) diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index 47ea43d3f..b0e7635b0 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -2412,7 +2412,7 @@ def Test_vim9_comment() 'delcommand Echo', ]) CheckScriptSuccess([ - 'vim9script' + 'vim9script', 'command Echo cd # comment', 'Echo', 'delcommand Echo', @@ -2949,6 +2949,7 @@ def Test_restoring_cpo() endif delete('Xsourced') delete('Xclose') + delete('Xdone') enddef diff --git a/src/testdir/vim9.vim b/src/testdir/vim9.vim index e7007320d..bb522df15 100644 --- a/src/testdir/vim9.vim +++ b/src/testdir/vim9.vim @@ -5,13 +5,18 @@ let s:sequence = 1 " Check that "lines" inside a ":def" function has no error. func CheckDefSuccess(lines) - let fname = 'Xdef' .. s:sequence + let cwd = getcwd() + let fname = 'XdefSuccess' .. s:sequence let s:sequence += 1 call writefile(['def Func()'] + a:lines + ['enddef', 'defcompile'], fname) - exe 'so ' .. fname - call Func() - delfunc! Func - call delete(fname) + try + exe 'so ' .. fname + call Func() + delfunc! Func + finally + call chdir(cwd) + call delete(fname) + endtry endfunc " Check that "lines" inside ":def" results in an "error" message. @@ -19,12 +24,17 @@ endfunc " Add a line before and after to make it less likely that the line number is " accidentally correct. func CheckDefFailure(lines, error, lnum = -3) - let fname = 'Xdef' .. s:sequence - call writefile(['def Func()', '# comment'] + a:lines + ['#comment', 'enddef', 'defcompile'], fname) - call assert_fails('so ' .. fname, a:error, a:lines, a:lnum + 1) - delfunc! Func - call delete(fname) + let cwd = getcwd() + let fname = 'XdefFailure' .. s:sequence let s:sequence += 1 + call writefile(['def Func()', '# comment'] + a:lines + ['#comment', 'enddef', 'defcompile'], fname) + try + call assert_fails('so ' .. fname, a:error, a:lines, a:lnum + 1) + finally + call chdir(cwd) + call delete(fname) + delfunc! Func + endtry endfunc " Check that "lines" inside ":def" results in an "error" message when executed. @@ -32,29 +42,44 @@ endfunc " Add a line before and after to make it less likely that the line number is " accidentally correct. func CheckDefExecFailure(lines, error, lnum = -3) - let fname = 'Xdef' .. s:sequence + let cwd = getcwd() + let fname = 'XdefExecFailure' .. s:sequence let s:sequence += 1 call writefile(['def Func()', '# comment'] + a:lines + ['#comment', 'enddef'], fname) - exe 'so ' .. fname - call assert_fails('call Func()', a:error, a:lines, a:lnum + 1) - delfunc! Func - call delete(fname) + try + exe 'so ' .. fname + call assert_fails('call Func()', a:error, a:lines, a:lnum + 1) + finally + call chdir(cwd) + call delete(fname) + delfunc! Func + endtry endfunc def CheckScriptFailure(lines: list, error: string, lnum = -3) - var fname = 'Xdef' .. s:sequence + var cwd = getcwd() + var fname = 'XScriptFailure' .. s:sequence s:sequence += 1 writefile(lines, fname) - assert_fails('so ' .. fname, error, lines, lnum) - delete(fname) + try + assert_fails('so ' .. fname, error, lines, lnum) + finally + chdir(cwd) + delete(fname) + endtry enddef def CheckScriptSuccess(lines: list) - var fname = 'Xdef' .. s:sequence + var cwd = getcwd() + var fname = 'XScriptSuccess' .. s:sequence s:sequence += 1 writefile(lines, fname) - exe 'so ' .. fname - delete(fname) + try + exe 'so ' .. fname + finally + chdir(cwd) + delete(fname) + endtry enddef def CheckDefAndScriptSuccess(lines: list) diff --git a/src/version.c b/src/version.c index 67cc9045b..a95c485b8 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2169, /**/ 2168, /**/