changeset 30405:ea38db8639eb v9.0.0538

patch 9.0.0538: manually deleting test temp files Commit: https://github.com/vim/vim/commit/5c645a25bb8e6d766db720a44b9ceeff39d1e92b Author: Bram Moolenaar <Bram@vim.org> Date: Wed Sep 21 22:00:03 2022 +0100 patch 9.0.0538: manually deleting test temp files Problem: Manually deleting test temp files. Solution: Add the 'D' flag to writefile().
author Bram Moolenaar <Bram@vim.org>
date Wed, 21 Sep 2022 23:15:03 +0200
parents 20bbd0c0761b
children 99bd75308e17
files src/testdir/test_eval_stuff.vim src/testdir/test_ex_mode.vim src/testdir/test_excmd.vim src/testdir/test_execute_func.vim src/testdir/test_exit.vim src/testdir/test_expand.vim src/testdir/test_expand_func.vim src/testdir/test_expr.vim src/version.c
diffstat 9 files changed, 31 insertions(+), 60 deletions(-) [+]
line wrap: on
line diff
index 33ab45fcd4a16e6fa59e34d1df278e963abef02b..46ec12df16a639a6aa7307f1c5488d1ee5ec9748
GIT binary patch
literal 25991
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
WKZdh>IqHL;3_iig;M<VV?ED}9R}2#X
--- a/src/testdir/test_ex_mode.vim
+++ b/src/testdir/test_ex_mode.vim
@@ -237,13 +237,12 @@ func Test_ex_mode_with_global()
     call writefile(['done'], 'Xdidexmode')
     qall!
   END
-  call writefile(lines, 'Xexmodescript')
+  call writefile(lines, 'Xexmodescript', 'D')
   call assert_equal(1, RunVim([], [], '-e -s -S Xexmodescript'))
   call assert_equal(['done'], readfile('Xdidexmode'))
 
   call delete('logfile')
   call delete('Xdidexmode')
-  call delete('Xexmodescript')
 endfunc
 
 func Test_ex_mode_count_overflow()
@@ -257,12 +256,11 @@ func Test_ex_mode_count_overflow()
     call writefile(['done'], 'Xdidexmode')
     qall!
   END
-  call writefile(lines, 'Xexmodescript')
+  call writefile(lines, 'Xexmodescript', 'D')
   call assert_equal(1, RunVim([], [], '-e -s -S Xexmodescript -c qa'))
   call assert_equal(['done'], readfile('Xdidexmode'))
 
   call delete('Xdidexmode')
-  call delete('Xexmodescript')
 endfunc
 
 func Test_ex_mode_large_indent()
@@ -281,11 +279,9 @@ func Test_empty_command_visual_mode()
       0norm0V:
       :qall!
   END
-  call writefile(lines, 'Xexmodescript')
+  call writefile(lines, 'Xexmodescript', 'D')
   call assert_equal(1, RunVim([], [], '-u NONE -e -s -S Xexmodescript'))
 
-  call delete('Xexmodescript')
-
   " This may cause a dialog to be displayed for an empty command, ignore it.
   call delete('guidialogfile')
 endfunc
--- a/src/testdir/test_excmd.vim
+++ b/src/testdir/test_excmd.vim
@@ -83,7 +83,7 @@ endfunc
 
 " Test for the :drop command
 func Test_drop_cmd()
-  call writefile(['L1', 'L2'], 'Xdropfile')
+  call writefile(['L1', 'L2'], 'Xdropfile', 'D')
   enew | only
   drop Xdropfile
   call assert_equal('L2', getline(2))
@@ -99,7 +99,6 @@ func Test_drop_cmd()
   " Check for setting the argument list
   call assert_equal(['Xdropfile'], argv())
   enew | only!
-  call delete('Xdropfile')
 endfunc
 
 " Test for the :append command
@@ -141,14 +140,13 @@ func Test_append_cmd_empty_buf()
     endfunc
     call timer_start(10, 'Timer')
   END
-  call writefile(lines, 'Xtest_append_cmd_empty_buf')
+  call writefile(lines, 'Xtest_append_cmd_empty_buf', 'D')
   let buf = RunVimInTerminal('-S Xtest_append_cmd_empty_buf', {'rows': 6})
   call WaitForAssert({-> assert_equal('bbbbb', term_getline(buf, 2))})
   call WaitForAssert({-> assert_equal('aaaaa', term_getline(buf, 1))})
 
   " clean up
   call StopVimInTerminal(buf)
-  call delete('Xtest_append_cmd_empty_buf')
 endfunc
 
 " Test for the :insert command
@@ -190,14 +188,13 @@ func Test_insert_cmd_empty_buf()
     endfunc
     call timer_start(10, 'Timer')
   END
-  call writefile(lines, 'Xtest_insert_cmd_empty_buf')
+  call writefile(lines, 'Xtest_insert_cmd_empty_buf', 'D')
   let buf = RunVimInTerminal('-S Xtest_insert_cmd_empty_buf', {'rows': 6})
   call WaitForAssert({-> assert_equal('bbbbb', term_getline(buf, 2))})
   call WaitForAssert({-> assert_equal('aaaaa', term_getline(buf, 1))})
 
   " clean up
   call StopVimInTerminal(buf)
-  call delete('Xtest_insert_cmd_empty_buf')
 endfunc
 
 " Test for the :change command
@@ -241,8 +238,8 @@ func Test_confirm_cmd()
   CheckNotGui
   CheckRunVimInTerminal
 
-  call writefile(['foo1'], 'Xfoo')
-  call writefile(['bar1'], 'Xbar')
+  call writefile(['foo1'], 'Xfoo', 'D')
+  call writefile(['bar1'], 'Xbar', 'D')
 
   " Test for saving all the modified buffers
   let lines =<< trim END
@@ -253,7 +250,7 @@ func Test_confirm_cmd()
     call setline(1, 'bar2')
     wincmd b
   END
-  call writefile(lines, 'Xscript')
+  call writefile(lines, 'Xscript', 'D')
   let buf = RunVimInTerminal('-S Xscript', {'rows': 20})
   call term_sendkeys(buf, ":confirm qall\n")
   call WaitForAssert({-> assert_match('\[Y\]es, (N)o, Save (A)ll, (D)iscard All, (C)ancel: ', term_getline(buf, 20))}, 1000)
@@ -302,10 +299,6 @@ func Test_confirm_cmd()
 
   call assert_equal(['foo4'], readfile('Xfoo'))
   call assert_equal(['bar2'], readfile('Xbar'))
-
-  call delete('Xscript')
-  call delete('Xfoo')
-  call delete('Xbar')
 endfunc
 
 func Test_confirm_cmd_cancel()
@@ -318,7 +311,7 @@ func Test_confirm_cmd_cancel()
     new
     call setline(1, 'abc')
   END
-  call writefile(lines, 'Xscript')
+  call writefile(lines, 'Xscript', 'D')
   let buf = RunVimInTerminal('-S Xscript', {'rows': 20})
   call term_sendkeys(buf, ":confirm close\n")
   call WaitForAssert({-> assert_match('^\[Y\]es, (N)o, (C)ancel: *$',
@@ -332,7 +325,6 @@ func Test_confirm_cmd_cancel()
   call WaitForAssert({-> assert_match('^ *0,0-1         All$',
         \ term_getline(buf, 20))}, 1000)
   call StopVimInTerminal(buf)
-  call delete('Xscript')
 endfunc
 
 " The ":confirm" prompt was sometimes used with the terminal in cooked mode.
@@ -342,14 +334,14 @@ func Test_confirm_q_wq()
   CheckNotGui
   CheckRunVimInTerminal
 
-  call writefile(['foo'], 'Xfoo')
+  call writefile(['foo'], 'Xfoo', 'D')
 
   let lines =<< trim END
     set hidden nomore
     call setline(1, 'abc')
     edit Xfoo
   END
-  call writefile(lines, 'Xscript')
+  call writefile(lines, 'Xscript', 'D')
   let buf = RunVimInTerminal('-S Xscript', {'rows': 20})
   call term_sendkeys(buf, ":confirm q\n")
   call WaitForAssert({-> assert_match('^\[Y\]es, (N)o, (C)ancel: *$',
@@ -365,23 +357,21 @@ func Test_confirm_q_wq()
   call term_sendkeys(buf, 'C')
   call WaitForAssert({-> assert_notmatch('^\[Y\]es, (N)o, (C)ancel: C*$',
         \ term_getline(buf, 20))}, 1000)
+
   call StopVimInTerminal(buf)
-
-  call delete('Xscript')
-  call delete('Xfoo')
 endfunc
 
 func Test_confirm_write_ro()
   CheckNotGui
   CheckRunVimInTerminal
 
-  call writefile(['foo'], 'Xconfirm_write_ro')
+  call writefile(['foo'], 'Xconfirm_write_ro', 'D')
   let lines =<< trim END
     set nobackup ff=unix cmdheight=2
     edit Xconfirm_write_ro
     norm Abar
   END
-  call writefile(lines, 'Xscript')
+  call writefile(lines, 'Xscript', 'D')
   let buf = RunVimInTerminal('-S Xscript', {'rows': 20})
 
   " Try to write with 'ro' option.
@@ -422,17 +412,15 @@ func Test_confirm_write_ro()
   call assert_equal(['foo'], readfile('Xconfirm_write_ro'))
 
   call StopVimInTerminal(buf)
-  call delete('Xscript')
-  call delete('Xconfirm_write_ro')
 endfunc
 
 func Test_confirm_write_partial_file()
   CheckNotGui
   CheckRunVimInTerminal
 
-  call writefile(['a', 'b', 'c', 'd'], 'Xwrite_partial')
+  call writefile(['a', 'b', 'c', 'd'], 'Xwrite_partial', 'D')
   call writefile(['set nobackup ff=unix cmdheight=2',
-        \         'edit Xwrite_partial'], 'Xscript')
+        \         'edit Xwrite_partial'], 'Xscript', 'D')
   let buf = RunVimInTerminal('-S Xscript', {'rows': 20})
 
   call term_sendkeys(buf, ":confirm 2,3w\n")
@@ -458,8 +446,6 @@ func Test_confirm_write_partial_file()
   call assert_equal(['b', 'c'], readfile('Xwrite_partial'))
 
   call StopVimInTerminal(buf)
-  call delete('Xwrite_partial')
-  call delete('Xscript')
 endfunc
 
 " Test for the :print command
@@ -509,10 +495,9 @@ func Test_redir_cmd_readonly()
   CheckNotRoot
 
   " Redirecting to a read-only file
-  call writefile([], 'Xredirfile')
+  call writefile([], 'Xredirfile', 'D')
   call setfperm('Xredirfile', 'r--r--r--')
   call assert_fails('redir! > Xredirfile', 'E190:')
-  call delete('Xredirfile')
 endfunc
 
 " Test for the :filetype command
@@ -532,7 +517,7 @@ endfunc
 
 " Test for the :read command
 func Test_read_cmd()
-  call writefile(['one'], 'Xcmdfile')
+  call writefile(['one'], 'Xcmdfile', 'D')
   new
   call assert_fails('read', 'E32:')
   edit Xcmdfile
@@ -546,7 +531,6 @@ func Test_read_cmd()
   call feedkeys("Qr Xcmdfile\<CR>visual\<CR>", 'xt')
   call assert_equal(['one'], getline(1, '$'))
   close!
-  call delete('Xcmdfile')
 endfunc
 
 " Test for running Ex commands when text is locked.
@@ -727,7 +711,7 @@ endfunc
 
 " Test :write after changing name with :file and loading it with :edit
 func Test_write_after_rename()
-  call writefile(['text'], 'Xafterfile')
+  call writefile(['text'], 'Xafterfile', 'D')
 
   enew
   file Xafterfile
@@ -737,7 +721,6 @@ func Test_write_after_rename()
   edit
   write
 
-  call delete('Xafterfile')
   bwipe!
 endfunc
 
--- a/src/testdir/test_execute_func.vim
+++ b/src/testdir/test_execute_func.vim
@@ -183,13 +183,12 @@ func Test_win_execute_on_startup()
       silent tabedit Xfile3
       autocmd VimEnter * win_execute(id, 'close')
   END
-  call writefile(lines, 'XwinExecute')
+  call writefile(lines, 'XwinExecute', 'D')
   let buf = RunVimInTerminal('-p Xfile1 -Nu XwinExecute', {})
 
   " this was crashing on exit with EXITFREE defined
   call StopVimInTerminal(buf)
 
-  call delete('XwinExecute')
   call delete('Xfile1')
 endfunc
 
--- a/src/testdir/test_exit.vim
+++ b/src/testdir/test_exit.vim
@@ -117,13 +117,12 @@ func Test_exit_error_reading_input()
   CheckNotAsan
   CheckNotValgrind
 
-  call writefile([":au VimLeave * call writefile(['l = ' .. v:exiting], 'Xtestout')", ":tabnew", "q:"], 'Xscript', 'b')
+  call writefile([":au VimLeave * call writefile(['l = ' .. v:exiting], 'Xtestout')", ":tabnew", "q:"], 'Xscript', 'bD')
 
   if RunVim([], [], '<Xscript')
     call assert_equal(1, v:shell_error)
     call assert_equal(['l = 1'], readfile('Xtestout'))
   endif
-  call delete('Xscript')
   call delete('Xtestout')
 endfun
 
--- a/src/testdir/test_expand.vim
+++ b/src/testdir/test_expand.vim
@@ -137,14 +137,13 @@ func Test_source_sfile()
     :call writefile(v:errors, 'Xresult')
     :qall!
   [SCRIPT]
-  call writefile(lines, 'Xscript')
+  call writefile(lines, 'Xscript', 'D')
   if RunVim([], [], '--clean -s Xscript')
     call assert_equal([
           \ 'E1274: No script file name to substitute for "<script>"',
           \ 'E498: No :source file name to substitute for "<sfile>"'],
           \ readfile('Xresult'))
   endif
-  call delete('Xscript')
   call delete('Xresult')
 endfunc
 
@@ -197,9 +196,9 @@ func Test_expand_script_source()
     au User * call extend(g:au_level, [expand('<script>:t')])
   [SCRIPT]
 
-  call writefile(lines0, 'Xscript0')
-  call writefile(lines1, 'Xscript1')
-  call writefile(lines2, 'Xscript2')
+  call writefile(lines0, 'Xscript0', 'D')
+  call writefile(lines1, 'Xscript1', 'D')
+  call writefile(lines2, 'Xscript2', 'D')
 
   " Check the expansion of <script> at different levels.
   let g:script_level = []
@@ -220,10 +219,6 @@ func Test_expand_script_source()
   delfunc F0
   delfunc F1
   delfunc F2
-
-  call delete('Xscript0')
-  call delete('Xscript1')
-  call delete('Xscript2')
 endfunc
 
 " vim: shiftwidth=2 sts=2 expandtab
--- a/src/testdir/test_expand_func.vim
+++ b/src/testdir/test_expand_func.vim
@@ -56,14 +56,13 @@ func Test_expand_sfile_and_stack()
     " comment here
     let g:stack_value = expand('<stack>')
   END
-  call writefile(lines, 'Xstack')
+  call writefile(lines, 'Xstack', 'D')
   source Xstack
   call assert_match('\<Xstack\[2\]$', g:stack_value)
   unlet g:stack_value
-  call delete('Xstack')
 
   if exists('+shellslash')
-    call mkdir('Xshellslash')
+    call mkdir('Xshellslash', 'R')
     let lines =<< trim END
       let g:stack1 = expand('<stack>')
       set noshellslash
@@ -83,7 +82,6 @@ func Test_expand_sfile_and_stack()
       unlet g:stack2
       unlet g:stack3
     endfor
-    call delete('Xshellslash', 'rf')
   endif
 endfunc
 
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -706,13 +706,12 @@ func Test_function_outside_script()
     call writefile([execute('messages')], 'Xtest.out')
     qall
   END
-  call writefile(cleanup, 'Xverify.vim')
+  call writefile(cleanup, 'Xverify.vim', 'D')
   call RunVim([], [], "-c \"echo function('s:abc')\" -S Xverify.vim")
   call assert_match('E81: Using <SID> not in a', readfile('Xtest.out')[0])
   call RunVim([], [], "-c \"echo funcref('s:abc')\" -S Xverify.vim")
   call assert_match('E81: Using <SID> not in a', readfile('Xtest.out')[0])
   call delete('Xtest.out')
-  call delete('Xverify.vim')
 endfunc
 
 func Test_setmatches()
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    538,
+/**/
     537,
 /**/
     536,