diff --git a/src/testdir/test_file_perm.vim b/src/testdir/test_file_perm.vim
index bb6573b..8af9532 100644
--- a/src/testdir/test_file_perm.vim
+++ b/src/testdir/test_file_perm.vim
@@ -1,26 +1,25 @@
 " Test getting and setting file permissions.
 
 func Test_file_perm()
-  call assert_equal('', getfperm('Xtest'))
-  call assert_equal(0, 'Xtest'->setfperm('r--------'))
+  call assert_equal('', getfperm('XtestPerm'))
+  call assert_equal(0, 'XtestPerm'->setfperm('r--------'))
 
-  call writefile(['one'], 'Xtest')
-  call assert_true(len('Xtest'->getfperm()) == 9)
+  call writefile(['one'], 'XtestPerm', 'D')
+  call assert_true(len('XtestPerm'->getfperm()) == 9)
 
-  call assert_equal(1, setfperm('Xtest', 'rwx------'))
+  call assert_equal(1, setfperm('XtestPerm', 'rwx------'))
   if has('win32')
-    call assert_equal('rw-rw-rw-', getfperm('Xtest'))
+    call assert_equal('rw-rw-rw-', getfperm('XtestPerm'))
   else
-    call assert_equal('rwx------', getfperm('Xtest'))
+    call assert_equal('rwx------', getfperm('XtestPerm'))
   endif
 
-  call assert_equal(1, setfperm('Xtest', 'r--r--r--'))
-  call assert_equal('r--r--r--', getfperm('Xtest'))
+  call assert_equal(1, setfperm('XtestPerm', 'r--r--r--'))
+  call assert_equal('r--r--r--', getfperm('XtestPerm'))
 
-  call assert_fails("setfperm('Xtest', '---')")
+  call assert_fails("setfperm('XtestPerm', '---')")
 
-  call assert_equal(1, setfperm('Xtest', 'rwx------'))
-  call delete('Xtest')
+  call assert_equal(1, setfperm('XtestPerm', 'rwx------'))
 
   call assert_fails("call setfperm(['Xpermfile'], 'rw-rw-rw-')", 'E730:')
   call assert_fails("call setfperm('Xpermfile', [])", 'E730:')
diff --git a/src/testdir/test_filechanged.vim b/src/testdir/test_filechanged.vim
index 5a9a400..c3a5664 100644
--- a/src/testdir/test_filechanged.vim
+++ b/src/testdir/test_filechanged.vim
@@ -105,7 +105,7 @@
     au FileChangedShell Xchanged_r let g:reason = v:fcs_reason | let v:fcs_choice = 'reload'
   augroup END
   call assert_equal(&fileformat, 'unix')
-  call writefile(["line1\r", "line2\r"], 'Xchanged_r')
+  call writefile(["line1\r", "line2\r"], 'Xchanged_r', 'D')
   let g:reason = ''
   checktime
   call assert_equal('changed', g:reason)
@@ -134,7 +134,6 @@
   au! testreload
   bwipe!
   call delete(undofile('Xchanged_r'))
-  call delete('Xchanged_r')
 endfunc
 
 func Test_FileChangedShell_edit_dialog()
@@ -152,7 +151,7 @@
     au FileChangedShell Xchanged_r let g:reason = v:fcs_reason | let v:fcs_choice = 'ask'
   augroup END
   call assert_equal(&fileformat, 'unix')
-  call writefile(["line1\r", "line2\r"], 'Xchanged_r')
+  call writefile(["line1\r", "line2\r"], 'Xchanged_r', 'D')
   let g:reason = ''
   call feedkeys('L', 'L') " load file content only
   checktime
@@ -183,7 +182,6 @@
   au! testreload
   bwipe!
   call delete(undofile('Xchanged_r'))
-  call delete('Xchanged_r')
 endfunc
 
 func Test_file_changed_dialog()
@@ -241,27 +239,26 @@
   " File created after starting to edit it
   call delete('Xchanged_d')
   new Xchanged_d
-  call writefile(['one'], 'Xchanged_d')
+  call writefile(['one'], 'Xchanged_d', 'D')
   call feedkeys('L', 'L')
   checktime Xchanged_d
   call assert_equal(['one'], getline(1, '$'))
   close!
 
   bwipe!
-  call delete('Xchanged_d')
 endfunc
 
 " Test for editing a new buffer from a FileChangedShell autocmd
 func Test_FileChangedShell_newbuf()
-  call writefile(['one', 'two'], 'Xchfile')
+  call writefile(['one', 'two'], 'Xchfile', 'D')
   new Xchfile
   augroup testnewbuf
     autocmd FileChangedShell * enew
   augroup END
   call writefile(['red'], 'Xchfile')
   call assert_fails('checktime', 'E811:')
+
   au! testnewbuf
-  call delete('Xchfile')
 endfunc
 
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_fileformat.vim b/src/testdir/test_fileformat.vim
index 1c66e88..e7d1986 100644
--- a/src/testdir/test_fileformat.vim
+++ b/src/testdir/test_fileformat.vim
@@ -22,14 +22,13 @@
 func Test_fileformat_autocommand()
   let filecnt = ["", "foobar\<CR>", "eins\<CR>", "\<CR>", "zwei\<CR>", "drei", "vier", "fünf", ""]
   let ffs = &ffs
-  call writefile(filecnt, 'Xffafile', 'b')
+  call writefile(filecnt, 'Xffafile', 'bD')
   au BufReadPre Xffafile set ffs=dos ff=dos
   new Xffafile
   call assert_equal('dos', &l:ff)
   call assert_equal('dos', &ffs)
 
   " cleanup
-  call delete('Xffafile')
   let &ffs = ffs
   au! BufReadPre Xffafile
   bw!
@@ -65,11 +64,11 @@
 " Test for a lot of variations of the 'fileformats' option
 func Test_fileformats()
   " create three test files, one in each format
-  call writefile(['unix', 'unix'], 'XXUnix')
-  call writefile(["dos\r", "dos\r"], 'XXDos')
-  call writefile(["mac\rmac\r"], 'XXMac', 'b')
+  call writefile(['unix', 'unix'], 'XXUnix', 'D')
+  call writefile(["dos\r", "dos\r"], 'XXDos', 'D')
+  call writefile(["mac\rmac\r"], 'XXMac', 'bD')
   " create a file with no End Of Line
-  call writefile(["noeol"], 'XXEol', 'b')
+  call writefile(["noeol"], 'XXEol', 'bD')
   " create mixed format files
   call s:concat_files('XXUnix', 'XXDos', 'XXUxDs')
   call s:concat_files('XXUnix', 'XXMac', 'XXUxMac')
@@ -277,10 +276,6 @@
   " cleanup
   only
   %bwipe!
-  call delete('XXUnix')
-  call delete('XXDos')
-  call delete('XXMac')
-  call delete('XXEol')
   call delete('XXUxDs')
   call delete('XXUxMac')
   call delete('XXDosMac')
diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim
index 8a8ee6c..6778b7f 100644
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -14,7 +14,7 @@
 
 func Test_conf_type()
   filetype on
-  call writefile(['# some comment', 'must be conf'], 'Xconffile')
+  call writefile(['# some comment', 'must be conf'], 'Xconffile', 'D')
   augroup filetypedetect
     au BufNewFile,BufRead *	call assert_equal(0, did_filetype())
   augroup END
@@ -22,7 +22,6 @@
   call assert_equal('conf', &filetype)
 
   bwipe!
-  call delete('Xconffile')
   filetype off
 endfunc
 
@@ -33,12 +32,11 @@
     au BufNewFile,BufRead Xotherfile	setf testfile
     au BufNewFile,BufRead *	call assert_equal(1, did_filetype())
   augroup END
-  call writefile(['# some comment', 'must be conf'], 'Xotherfile')
+  call writefile(['# some comment', 'must be conf'], 'Xotherfile', 'D')
   split Xotherfile
   call assert_equal('testfile', &filetype)
 
   bwipe!
-  call delete('Xotherfile')
   filetype off
 endfunc
 
@@ -761,13 +759,12 @@
   filetype on
   for [ft, files] in items(a:test_dict)
     for file in files
-      call writefile(file, 'Xtest')
+      call writefile(file, 'Xtest', 'D')
       split Xtest
       call assert_equal(ft, &filetype, 'for text: ' . string(file))
       bwipe!
     endfor
   endfor
-  call delete('Xtest')
   filetype off
 endfunc
 
@@ -813,7 +810,7 @@
 func Test_bas_file()
   filetype on
 
-  call writefile(['looks like BASIC'], 'Xfile.bas')
+  call writefile(['looks like BASIC'], 'Xfile.bas', 'D')
   split Xfile.bas
   call assert_equal('basic', &filetype)
   bwipe!
@@ -867,7 +864,6 @@
   call assert_equal('vb', &filetype)
   bwipe!
 
-  call delete('Xfile.bas')
   filetype off
 endfunc
 
@@ -876,7 +872,7 @@
   filetype on
 
   " *.cfg defaults to cfg
-  call writefile(['looks like cfg'], 'cfgfile.cfg')
+  call writefile(['looks like cfg'], 'cfgfile.cfg', 'D')
   split cfgfile.cfg
   call assert_equal('cfg', &filetype)
 
@@ -905,7 +901,7 @@
 func Test_d_file()
   filetype on
 
-  call writefile(['looks like D'], 'Xfile.d')
+  call writefile(['looks like D'], 'Xfile.d', 'D')
   split Xfile.d
   call assert_equal('d', &filetype)
   bwipe!
@@ -937,7 +933,6 @@
 
   " clean up
   filetype off
-  call delete('Xfile.d')
 endfunc
 
 func Test_dat_file()
@@ -978,7 +973,7 @@
 func Test_dep3patch_file()
   filetype on
 
-  call assert_true(mkdir('debian/patches', 'p'))
+  call assert_true(mkdir('debian/patches', 'pR'))
 
   " series files are not patches
   call writefile(['Description: some awesome patch'], 'debian/patches/series')
@@ -1011,14 +1006,12 @@
   split debian/patches/baz
   call assert_notequal('dep3patch', &filetype)
   bwipe!
-
-  call delete('debian', 'rf')
 endfunc
 
 func Test_dsl_file()
   filetype on
 
-  call writefile(['  <!doctype dsssl-spec ['], 'dslfile.dsl')
+  call writefile(['  <!doctype dsssl-spec ['], 'dslfile.dsl', 'D')
   split dslfile.dsl
   call assert_equal('dsl', &filetype)
   bwipe!
@@ -1028,14 +1021,13 @@
   call assert_equal('structurizr', &filetype)
   bwipe!
 
-  call delete('dslfile.dsl')
   filetype off
 endfunc
 
 func Test_ex_file()
   filetype on
 
-  call writefile(['arbitrary content'], 'Xfile.ex')
+  call writefile(['arbitrary content'], 'Xfile.ex', 'D')
   split Xfile.ex
   call assert_equal('elixir', &filetype)
   bwipe!
@@ -1065,31 +1057,30 @@
   call assert_equal('euphoria3', &filetype)
   bwipe!
 
-  call delete('Xfile.ex')
   filetype off
 endfunc
 
 func Test_foam_file()
   filetype on
-  call assert_true(mkdir('0', 'p'))
-  call assert_true(mkdir('0.orig', 'p'))
+  call assert_true(mkdir('0', 'pR'))
+  call assert_true(mkdir('0.orig', 'pR'))
 
-  call writefile(['FoamFile {', '    object something;'], 'Xfile1Dict')
+  call writefile(['FoamFile {', '    object something;'], 'Xfile1Dict', 'D')
   split Xfile1Dict
   call assert_equal('foam', &filetype)
   bwipe!
 
-  call writefile(['FoamFile {', '    object something;'], 'Xfile1Dict.something')
+  call writefile(['FoamFile {', '    object something;'], 'Xfile1Dict.something', 'D')
   split Xfile1Dict.something
   call assert_equal('foam', &filetype)
   bwipe!
 
-  call writefile(['FoamFile {', '    object something;'], 'XfileProperties')
+  call writefile(['FoamFile {', '    object something;'], 'XfileProperties', 'D')
   split XfileProperties
   call assert_equal('foam', &filetype)
   bwipe!
 
-  call writefile(['FoamFile {', '    object something;'], 'XfileProperties.something')
+  call writefile(['FoamFile {', '    object something;'], 'XfileProperties.something', 'D')
   split XfileProperties.something
   call assert_equal('foam', &filetype)
   bwipe!
@@ -1114,19 +1105,13 @@
   call assert_equal('foam', &filetype)
   bwipe!
 
-  call delete('0', 'rf')
-  call delete('0.orig', 'rf')
-  call delete('Xfile1Dict')
-  call delete('Xfile1Dict.something')
-  call delete('XfileProperties')
-  call delete('XfileProperties.something')
   filetype off
 endfunc
 
 func Test_frm_file()
   filetype on
 
-  call writefile(['looks like FORM'], 'Xfile.frm')
+  call writefile(['looks like FORM'], 'Xfile.frm', 'D')
   split Xfile.frm
   call assert_equal('form', &filetype)
   bwipe!
@@ -1146,14 +1131,13 @@
   call assert_equal('vb', &filetype)
   bwipe!
 
-  call delete('Xfile.frm')
   filetype off
 endfunc
 
 func Test_fs_file()
   filetype on
 
-  call writefile(['looks like F#'], 'Xfile.fs')
+  call writefile(['looks like F#'], 'Xfile.fs', 'D')
   split Xfile.fs
   call assert_equal('fsharp', &filetype)
   bwipe!
@@ -1199,14 +1183,13 @@
   call assert_equal('forth', &filetype)
   bwipe!
 
-  call delete('Xfile.fs')
   filetype off
 endfunc
 
 func Test_git_file()
   filetype on
 
-  call assert_true(mkdir('Xrepo.git', 'p'))
+  call assert_true(mkdir('Xrepo.git', 'pR'))
 
   call writefile([], 'Xrepo.git/HEAD')
   split Xrepo.git/HEAD
@@ -1228,14 +1211,13 @@
   call assert_equal('git', &filetype)
   bwipe!
 
-  call delete('Xrepo.git', 'rf')
   filetype off
 endfunc
 
 func Test_hook_file()
   filetype on
 
-  call writefile(['[Trigger]', 'this is pacman config'], 'Xfile.hook')
+  call writefile(['[Trigger]', 'this is pacman config'], 'Xfile.hook', 'D')
   split Xfile.hook
   call assert_equal('conf', &filetype)
   bwipe!
@@ -1245,7 +1227,6 @@
   call assert_notequal('conf', &filetype)
   bwipe!
 
-  call delete('Xfile.hook')
   filetype off
 endfunc
 
@@ -1345,7 +1326,6 @@
   call assert_equal('murphi', &filetype)
   bwipe!
 
-  call delete('Xfile.m')
   filetype off
 endfunc
 
@@ -1427,7 +1407,7 @@
 func Test_patch_file()
   filetype on
 
-  call writefile([], 'Xfile.patch')
+  call writefile([], 'Xfile.patch', 'D')
   split Xfile.patch
   call assert_equal('diff', &filetype)
   bwipe!
@@ -1442,7 +1422,6 @@
   call assert_equal('gitsendemail', &filetype)
   bwipe!
 
-  call delete('Xfile.patch')
   filetype off
 endfunc
 
@@ -1454,19 +1433,18 @@
 
     use a
   END
-  call writefile(lines, "Xfile.t")
+  call writefile(lines, "Xfile.t", 'D')
   split Xfile.t
   call assert_equal('perl', &filetype)
   bwipe
 
-  call delete('Xfile.t')
   filetype off
 endfunc
 
 func Test_pp_file()
   filetype on
 
-  call writefile(['looks like puppet'], 'Xfile.pp')
+  call writefile(['looks like puppet'], 'Xfile.pp', 'D')
   split Xfile.pp
   call assert_equal('puppet', &filetype)
   bwipe!
@@ -1488,7 +1466,6 @@
   call assert_equal('pascal', &filetype)
   bwipe!
 
-  call delete('Xfile.pp')
   filetype off
 endfunc
 
@@ -1575,12 +1552,11 @@
 func Test_scd_file()
   filetype on
 
-  call writefile(['ijq(1)'], 'srcfile.scd')
+  call writefile(['ijq(1)'], 'srcfile.scd', 'D')
   split srcfile.scd
   call assert_equal('scdoc', &filetype)
-  bwipe!
-  call delete('srcfile.scd')
 
+  bwipe!
   filetype off
 endfunc
 
@@ -1684,7 +1660,7 @@
 func Test_tf_file()
   filetype on
 
-  call writefile([';;; TF MUD client is super duper cool'], 'Xfile.tf')
+  call writefile([';;; TF MUD client is super duper cool'], 'Xfile.tf', 'D')
   split Xfile.tf
   call assert_equal('tf', &filetype)
   bwipe!
@@ -1694,14 +1670,13 @@
   call assert_equal('terraform', &filetype)
   bwipe!
 
-  call delete('Xfile.tf')
   filetype off
 endfunc
 
 func Test_ts_file()
   filetype on
 
-  call writefile(['<?xml version="1.0" encoding="utf-8"?>'], 'Xfile.ts')
+  call writefile(['<?xml version="1.0" encoding="utf-8"?>'], 'Xfile.ts', 'D')
   split Xfile.ts
   call assert_equal('xml', &filetype)
   bwipe!
@@ -1711,14 +1686,13 @@
   call assert_equal('typescript', &filetype)
   bwipe!
 
-  call delete('Xfile.ts')
   filetype off
 endfunc
 
 func Test_ttl_file()
   filetype on
 
-  call writefile(['@base <http://example.org/> .'], 'Xfile.ttl')
+  call writefile(['@base <http://example.org/> .'], 'Xfile.ttl', 'D')
   split Xfile.ttl
   call assert_equal('turtle', &filetype)
   bwipe!
@@ -1728,26 +1702,24 @@
   call assert_equal('teraterm', &filetype)
   bwipe!
 
-  call delete('Xfile.ttl')
   filetype off
 endfunc
 
 func Test_xpm_file()
   filetype on
 
-  call writefile(['this is XPM2'], 'file.xpm')
+  call writefile(['this is XPM2'], 'file.xpm', 'D')
   split file.xpm
   call assert_equal('xpm2', &filetype)
   bwipe!
 
-  call delete('file.xpm')
   filetype off
 endfunc
 
 func Test_cls_file()
   filetype on
 
-  call writefile(['looks like Smalltalk'], 'Xfile.cls')
+  call writefile(['looks like Smalltalk'], 'Xfile.cls', 'D')
   split Xfile.cls
   call assert_equal('st', &filetype)
   bwipe!
@@ -1781,14 +1753,13 @@
   call assert_equal('vb', &filetype)
   bwipe!
 
-  call delete('Xfile.cls')
   filetype off
 endfunc
 
 func Test_sig_file()
   filetype on
 
-  call writefile(['this is neither Lambda Prolog nor SML'], 'Xfile.sig')
+  call writefile(['this is neither Lambda Prolog nor SML'], 'Xfile.sig', 'D')
   split Xfile.sig
   call assert_equal('', &filetype)
   bwipe!
@@ -1835,7 +1806,6 @@
   call assert_equal('sml', &filetype)
   bwipe!
 
-  call delete('Xfile.sig')
   filetype off
 endfunc
 
@@ -1855,7 +1825,7 @@
   let protoErasedPathA =
           \ABCProtocol.a
   END
-  call writefile(lines, 'Xfile.sil')
+  call writefile(lines, 'Xfile.sil', 'D')
 
   split Xfile.sil
   call assert_equal('sil', &filetype)
@@ -1873,14 +1843,13 @@
   call assert_equal('sile', &filetype)
   bwipe!
 
-  call delete('Xfile.sil')
   filetype off
 endfunc
 
 func Test_inc_file()
   filetype on
 
-  call writefile(['this is the fallback'], 'Xfile.inc')
+  call writefile(['this is the fallback'], 'Xfile.inc', 'D')
   split Xfile.inc
   call assert_equal('pov', &filetype)
   bwipe!
@@ -1952,7 +1921,6 @@
   call assert_equal('foo', &filetype)
   bwipe!
 
-  call delete('Xfile.inc')
   filetype off
 endfunc
 
diff --git a/src/testdir/test_find_complete.vim b/src/testdir/test_find_complete.vim
index 920d765..079fb78 100644
--- a/src/testdir/test_find_complete.vim
+++ b/src/testdir/test_find_complete.vim
@@ -10,7 +10,7 @@
   call delete("Xfind", "rf")
   let cwd = getcwd()
   let test_out = cwd . '/test.out'
-  call mkdir('Xfind')
+  call mkdir('Xfind', 'R')
   cd Xfind
 
   new
@@ -158,7 +158,6 @@
 
   enew | only
   call chdir(cwd)
-  call delete('Xfind', 'rf')
   set path&
 endfunc
 
diff --git a/src/testdir/test_findfile.vim b/src/testdir/test_findfile.vim
index 0f9f9cb..20d5096 100644
--- a/src/testdir/test_findfile.vim
+++ b/src/testdir/test_findfile.vim
@@ -232,7 +232,7 @@
   new
   let save_path = &path
   let save_dir = getcwd()
-  call mkdir('dir1/dir2', 'p')
+  call mkdir('dir1/dir2', 'pR')
   call writefile([], 'dir1/file.txt')
   call writefile([], 'dir1/dir2/base.txt')
   call chdir('dir1/dir2')
@@ -243,10 +243,6 @@
 
   call chdir(save_dir)
   bw!
-  call delete('dir1/dir2/base.txt', 'rf')
-  call delete('dir1/dir2', 'rf')
-  call delete('dir1/file.txt', 'rf')
-  call delete('dir1', 'rf')
   let &path = save_path
 endfunc
 
diff --git a/src/testdir/test_fold.vim b/src/testdir/test_fold.vim
index 33303da..d15f607 100644
--- a/src/testdir/test_fold.vim
+++ b/src/testdir/test_fold.vim
@@ -137,7 +137,7 @@
     call assert_equal(1, foldlevel(n))
   endfor
 
-  call writefile(["a", "", "\<Tab>a"], 'Xinfofile')
+  call writefile(["a", "", "\<Tab>a"], 'Xinfofile', 'D')
   foldopen
   2read Xinfofile
   %foldclose
@@ -150,7 +150,6 @@
 
   bwipe!
   set foldmethod&
-  call delete('Xinfofile')
 endfunc
 
 func Test_combining_folds_indent()
@@ -216,7 +215,7 @@
   set foldexpr=s:TestFoldExpr(v:lnum)
   2
   foldopen
-  call writefile(['b', 'b', 'a', 'a', 'd', 'a', 'a', 'c'], 'Xupfofile')
+  call writefile(['b', 'b', 'a', 'a', 'd', 'a', 'a', 'c'], 'Xupfofile', 'D')
   read Xupfofile
   %foldclose
   call assert_equal(2, foldclosedend(1))
@@ -226,7 +225,6 @@
   call assert_equal(10, foldclosedend(7))
   call assert_equal(14, foldclosedend(11))
 
-  call delete('Xupfofile')
   bwipe!
   set foldmethod& foldexpr&
 endfunc
@@ -808,7 +806,7 @@
   call writefile([
 	\ 'set fdm=marker rnu foldcolumn=2',
 	\ 'call setline(1, ["{{{1", "nline 1", "{{{1", "line 2"])',
-	\ ], 'Xtest_folds_with_rnu')
+	\ ], 'Xtest_folds_with_rnu', 'D')
   let buf = RunVimInTerminal('-S Xtest_folds_with_rnu', {})
 
   call VerifyScreenDump(buf, 'Test_folds_with_rnu_01', {})
@@ -817,7 +815,6 @@
 
   " clean up
   call StopVimInTerminal(buf)
-  call delete('Xtest_folds_with_rnu')
 endfunc
 
 func Test_folds_marker_in_comment2()
@@ -1263,7 +1260,7 @@
         \ foldclosed(4)])], 'Xoutput', 'a')
     endfunc
   END
-  call writefile(lines, 'Xscript')
+  call writefile(lines, 'Xscript', 'D')
   let rows = 10
   let buf = RunVimInTerminal('-S Xscript', {'rows': rows})
   call term_wait(buf)
@@ -1292,7 +1289,6 @@
 
   call assert_equal(['[-1,2,2,-1]', '[-1,-1,-1,-1]', '[-1,2,2,-1]',
         \ '[-1,-1,-1,-1]', '[-1,2,2,-1]'], readfile('Xoutput'))
-  call delete('Xscript')
   call delete('Xoutput')
 endfunc
 
diff --git a/src/testdir/test_function_lists.vim b/src/testdir/test_function_lists.vim
index 50c89f8..027a7a5 100644
--- a/src/testdir/test_function_lists.vim
+++ b/src/testdir/test_function_lists.vim
@@ -10,13 +10,11 @@
 func Test_function_lists()
 
   " Delete any files left over from an earlier run of this test.
-
   call delete("Xglobal_functions.diff")
   call delete("Xfunctions.diff")
   call delete("Xfunction-list.diff")
 
   " Create a file of the functions in evalfunc.c:global_functions[].
-
   enew!
   read ../evalfunc.c
   1,/^static funcentry_T global_functions\[\] =$/d
@@ -28,7 +26,6 @@
   w! Xglobal_functions
 
   " Verify that those functions are in ASCII order.
-
   sort u
   w! Xsorted_global_functions
   let l:unequal = assert_equalfile("Xsorted_global_functions", "Xglobal_functions",
@@ -39,7 +36,6 @@
 
   " Create a file of the functions in evalfunc.c:global_functions[] that are
   " not obsolete, sorted in ASCII order.
-
   enew!
   read ../evalfunc.c
   1,/^static funcentry_T global_functions\[\] =$/d
@@ -53,7 +49,6 @@
   w! ++ff=unix Xsorted_current_global_functions
 
   " Verify that the ":help functions" list is complete and in ASCII order.
-
   enew!
   if filereadable('../../doc/builtin.txt')
     " unpacked MS-Windows zip archive
@@ -77,7 +72,6 @@
   endif
 
   " Verify that the ":help function-list" list is complete.
-
   enew!
   if filereadable('../../doc/usr_41.txt')
     " unpacked MS-Windows zip archive
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index ba6b790..85e27c6 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -1326,9 +1326,8 @@
 
   call assert_equal(0, filewritable('doesnotexist'))
 
-  call mkdir('Xwritedir')
+  call mkdir('Xwritedir', 'D')
   call assert_equal(2, filewritable('Xwritedir'))
-  call delete('Xwritedir', 'd')
 
   call delete('Xfilewritable')
   bw!
@@ -1661,7 +1660,7 @@
       let g:buf = bufadd('Xb.txt')
       inoremap <F2> <C-R>=setbufvar(g:buf, '&autoindent', 1) ?? ''<CR>
   END
-  call writefile(lines, 'Xsetbufvar')
+  call writefile(lines, 'Xsetbufvar', 'D')
   let buf = RunVimInTerminal('-S Xsetbufvar', {})
   call WaitForAssert({-> assert_match('Xa.txt', term_gettitle(buf))}, 1000)
 
@@ -1672,7 +1671,6 @@
   call assert_match('Xa.txt', term_gettitle(buf))
 
   call StopVimInTerminal(buf)
-  call delete('Xsetbufvar')
 endfunc
 
 func Test_redo_in_nested_functions()
@@ -1938,19 +1936,18 @@
 func Test_func_range_with_edit()
   " Define a function that edits another buffer, then call it with a range that
   " is invalid in that buffer.
-  call writefile(['just one line'], 'Xfuncrange2')
+  call writefile(['just one line'], 'Xfuncrange2', 'D')
   new
   eval 10->range()->setline(1)
   write Xfuncrange1
   call assert_fails('5,8call EditAnotherFile()', 'E16:')
 
   call delete('Xfuncrange1')
-  call delete('Xfuncrange2')
   bwipe!
 endfunc
 
 func Test_func_exists_on_reload()
-  call writefile(['func ExistingFunction()', 'echo "yes"', 'endfunc'], 'Xfuncexists')
+  call writefile(['func ExistingFunction()', 'echo "yes"', 'endfunc'], 'Xfuncexists', 'D')
   call assert_equal(0, exists('*ExistingFunction'))
   source Xfuncexists
   call assert_equal(1, '*ExistingFunction'->exists())
@@ -1959,7 +1956,7 @@
   call assert_equal(1, exists('*ExistingFunction'))
 
   " But redefining in another script is not OK.
-  call writefile(['func ExistingFunction()', 'echo "yes"', 'endfunc'], 'Xfuncexists2')
+  call writefile(['func ExistingFunction()', 'echo "yes"', 'endfunc'], 'Xfuncexists2', 'D')
   call assert_fails('source Xfuncexists2', 'E122:')
 
   " Defining a new function from the cmdline should fail if the function is
@@ -1975,8 +1972,6 @@
   call assert_fails('source Xfuncexists', 'E122:')
   call assert_equal(1, exists('*ExistingFunction'))
 
-  call delete('Xfuncexists2')
-  call delete('Xfuncexists')
   delfunc ExistingFunction
 endfunc
 
@@ -2063,7 +2058,7 @@
 endfunc
 
 func Test_readdir()
-  call mkdir('Xreaddir')
+  call mkdir('Xreaddir', 'R')
   call writefile([], 'Xreaddir/foo.txt')
   call writefile([], 'Xreaddir/bar.txt')
   call mkdir('Xreaddir/dir')
@@ -2092,12 +2087,10 @@
   " Nested readdir() must not crash
   let files = readdir('Xreaddir', 'readdir("Xreaddir", "1") != []')
   call sort(files)->assert_equal(['bar.txt', 'dir', 'foo.txt'])
-
-  eval 'Xreaddir'->delete('rf')
 endfunc
 
 func Test_readdirex()
-  call mkdir('Xexdir')
+  call mkdir('Xexdir', 'R')
   call writefile(['foo'], 'Xexdir/foo.txt')
   call writefile(['barbar'], 'Xexdir/bar.txt')
   call mkdir('Xexdir/dir')
@@ -2144,7 +2137,6 @@
     call sort(files)->assert_equal(
         \ ['bar.txt_file', 'dir_dir', 'foo.txt_file', 'link_link'])
   endif
-  eval 'Xexdir'->delete('rf')
 
   call assert_fails('call readdirex("doesnotexist")', 'E484:')
 endfunc
@@ -2156,7 +2148,7 @@
     throw 'Skipped: Test_readdirex_sort on systems that do not allow this using the default filesystem'
   endif
   let _collate = v:collate
-  call mkdir('Xsortdir2')
+  call mkdir('Xsortdir2', 'R')
   call writefile(['1'], 'Xsortdir2/README.txt')
   call writefile(['2'], 'Xsortdir2/Readme.txt')
   call writefile(['3'], 'Xsortdir2/readme.txt')
@@ -2198,14 +2190,13 @@
 
   finally
     exe 'lang collate' collate
-    eval 'Xsortdir2'->delete('rf')
   endtry
 endfunc
 
 func Test_readdir_sort()
   " some more cases for testing sorting for readdirex
   let dir = 'Xsortdir3'
-  call mkdir(dir)
+  call mkdir(dir, 'R')
   call writefile(['1'], dir .. '/README.txt')
   call writefile(['2'], dir .. '/Readm.txt')
   call writefile(['3'], dir .. '/read.txt')
@@ -2247,8 +2238,6 @@
 
   " Cleanup
   exe "lang collate" collate
-
-  eval dir->delete('rf')
 endfunc
 
 func Test_delete_rf()
diff --git a/src/version.c b/src/version.c
index 19a6b5a..b582b26 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    611,
+/**/
     610,
 /**/
     609,
