From caa1d19da1cdfd07f93b578b4fd5214a53197cd6 Mon Sep 17 00:00:00 2001 From: Dominique Pelle Date: Wed, 28 Sep 2022 10:45:15 +0100 Subject: [PATCH] patch 9.0.0613: running source tests leaves file behind MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Problem: Running source tests leaves file behind. Solution: Add the "D" flag to writefile(). (Dominique Pellé, closes #11243) Also do this for other writefile() calls and drop delete(). --- src/testdir/test_source.vim | 23 ++++++++--------------- src/version.c | 2 ++ 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/src/testdir/test_source.vim b/src/testdir/test_source.vim index 2becf0817..51de0e32d 100644 --- a/src/testdir/test_source.vim +++ b/src/testdir/test_source.vim @@ -6,7 +6,7 @@ source view_util.vim func Test_source_autocmd() call writefile([ \ 'let did_source = 1', - \ ], 'Xsourced') + \ ], 'Xsourced', 'D') au SourcePre *source* let did_source_pre = 1 au SourcePost *source* let did_source_post = 1 @@ -16,7 +16,6 @@ func Test_source_autocmd() call assert_equal(g:did_source_pre, 1) call assert_equal(g:did_source_post, 1) - call delete('Xsourced') au! SourcePre au! SourcePost unlet g:did_source @@ -42,12 +41,11 @@ endfunc func Test_source_sandbox() new - call writefile(["Ohello\"], 'Xsourcehello') + call writefile(["Ohello\"], 'Xsourcehello', 'D') source! Xsourcehello | echo call assert_equal('hello', getline(1)) call assert_fails('sandbox source! Xsourcehello', 'E48:') bwipe! - call delete('Xsourcehello') endfunc " When deleting a file and immediately creating a new one the inode may be @@ -63,10 +61,9 @@ endfunc " When sourcing a vim script, shebang should be ignored. func Test_source_ignore_shebang() - call writefile(['#!./xyzabc', 'let g:val=369'], 'Xsisfile.vim') + call writefile(['#!./xyzabc', 'let g:val=369'], 'Xsisfile.vim', 'D') source Xsisfile.vim call assert_equal(g:val, 369) - call delete('Xsisfile.vim') endfunc " Test for expanding in an autocmd and for and @@ -82,12 +79,11 @@ func Test_source_autocmd_sfile() let g:Sflnum = expand('') augroup! sfiletest [CODE] - call writefile(code, 'Xscript.vim') + call writefile(code, 'Xscript.vim', 'D') source Xscript.vim call assert_equal('Xscript.vim', g:Sfile) call assert_equal('7', g:Slnum) call assert_equal('8', g:Sflnum) - call delete('Xscript.vim') endfunc func Test_source_error() @@ -105,14 +101,13 @@ endfunc " Test for sourcing a script recursively func Test_nested_script() CheckRunVimInTerminal - call writefile([':source! Xscript.vim', ''], 'Xscript.vim') + call writefile([':source! Xscript.vim', ''], 'Xscript.vim', 'D') let buf = RunVimInTerminal('', {'rows': 6}) call term_wait(buf) call term_sendkeys(buf, ":set noruler\n") call term_sendkeys(buf, ":source! Xscript.vim\n") call term_wait(buf) call WaitForAssert({-> assert_match('E22: Scripts nested too deep\s*', term_getline(buf, 6))}) - call delete('Xscript.vim') call StopVimInTerminal(buf) endfunc @@ -285,14 +280,13 @@ func Test_source_buffer() let g:ScriptID3 = expand("") let g:Slnum3 = expand("") END - call writefile(lines, 'Xscript') + call writefile(lines, 'Xscript', 'D') source Xscript call assert_true(g:ScriptID1 != g:ScriptID2) call assert_equal(g:ScriptID1, g:ScriptID3) call assert_equal('2', g:Slnum1) call assert_equal('1', g:Slnum2) call assert_equal('12', g:Slnum3) - call delete('Xscript') " test for sourcing a heredoc %d _ @@ -659,10 +653,9 @@ func Test_source_buffer_long_line() norm i0000000000000000000 silent! so END - call writefile(lines, 'Xtest.vim') + call writefile(lines, 'Xtest.vim', 'D') source Xtest.vim bwipe! - call delete('Xtest.vim') endfunc func Test_source_buffer_with_NUL_char() @@ -675,7 +668,7 @@ func Test_source_buffer_with_NUL_char() END " Can't have a NL in heredoc let lines += ["silent! vim9 echo [0 \ ? 'a' : 'b']"] - call writefile(lines, 'XsourceNul', '') + call writefile(lines, 'XsourceNul', 'D') edit XsourceNul source diff --git a/src/version.c b/src/version.c index e92207e36..1621c8141 100644 --- a/src/version.c +++ b/src/version.c @@ -699,6 +699,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 613, /**/ 612, /**/ -- 2.40.0