# HG changeset patch # User Bram Moolenaar # Date 1664304303 -7200 # Node ID a7a9e8b9af899ae3f8184a70464db8ce2311f00b # Parent b2b10228a4665f4c2618f4e4a2372b32569672a5 patch 9.0.0611: tests delete files with a separate delete() call Commit: https://github.com/vim/vim/commit/70e672580b39eb79607c304803efb954cc11f4e6 Author: Bram Moolenaar Date: Tue Sep 27 19:34:35 2022 +0100 patch 9.0.0611: tests delete files with a separate delete() call Problem: Tests delete files with a separate delete() call. Solution: Use deferred delete. diff --git a/src/testdir/test_file_perm.vim b/src/testdir/test_file_perm.vim --- 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 --- a/src/testdir/test_filechanged.vim +++ b/src/testdir/test_filechanged.vim @@ -105,7 +105,7 @@ func Test_FileChangedShell_edit() 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 @@ func Test_FileChangedShell_edit() au! testreload bwipe! call delete(undofile('Xchanged_r')) - call delete('Xchanged_r') endfunc func Test_FileChangedShell_edit_dialog() @@ -152,7 +151,7 @@ func Test_FileChangedShell_edit_dialog() 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 @@ func Test_FileChangedShell_edit_dialog() au! testreload bwipe! call delete(undofile('Xchanged_r')) - call delete('Xchanged_r') endfunc func Test_file_changed_dialog() @@ -241,27 +239,26 @@ func Test_file_changed_dialog() " 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 --- a/src/testdir/test_fileformat.vim +++ b/src/testdir/test_fileformat.vim @@ -22,14 +22,13 @@ endfunc func Test_fileformat_autocommand() let filecnt = ["", "foobar\", "eins\", "\", "zwei\", "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 @@ endfun " 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 @@ func Test_fileformats() " 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 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -14,7 +14,7 @@ endfunc 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 @@ func Test_conf_type() call assert_equal('conf', &filetype) bwipe! - call delete('Xconffile') filetype off endfunc @@ -33,12 +32,11 @@ func Test_other_type() 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 @@ func Run_script_detection(test_dict) 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 @@ endfunc 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 @@ func Test_bas_file() call assert_equal('vb', &filetype) bwipe! - call delete('Xfile.bas') filetype off endfunc @@ -876,7 +872,7 @@ func Test_cfg_file() 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 @@ endfunc 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 @@ func Test_d_file() " clean up filetype off - call delete('Xfile.d') endfunc func Test_dat_file() @@ -978,7 +973,7 @@ endfunc 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 @@ func Test_dep3patch_file() split debian/patches/baz call assert_notequal('dep3patch', &filetype) bwipe! - - call delete('debian', 'rf') endfunc func Test_dsl_file() filetype on - call writefile([' '], 'Xfile.ts') + call writefile([''], 'Xfile.ts', 'D') split Xfile.ts call assert_equal('xml', &filetype) bwipe! @@ -1711,14 +1686,13 @@ func Test_ts_file() call assert_equal('typescript', &filetype) bwipe! - call delete('Xfile.ts') filetype off endfunc func Test_ttl_file() filetype on - call writefile(['@base .'], 'Xfile.ttl') + call writefile(['@base .'], 'Xfile.ttl', 'D') split Xfile.ttl call assert_equal('turtle', &filetype) bwipe! @@ -1728,26 +1702,24 @@ func Test_ttl_file() 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 @@ func Test_cls_file() 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 @@ func Test_sig_file() call assert_equal('sml', &filetype) bwipe! - call delete('Xfile.sig') filetype off endfunc @@ -1855,7 +1825,7 @@ func Test_sil_file() 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 @@ func Test_sil_file() 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 @@ func Test_inc_file() 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 --- a/src/testdir/test_find_complete.vim +++ b/src/testdir/test_find_complete.vim @@ -10,7 +10,7 @@ func Test_find_complete() 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 @@ func Test_find_complete() 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 --- a/src/testdir/test_findfile.vim +++ b/src/testdir/test_findfile.vim @@ -232,7 +232,7 @@ func Test_find_non_existing_path() 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 @@ func Test_find_non_existing_path() 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 --- a/src/testdir/test_fold.vim +++ b/src/testdir/test_fold.vim @@ -137,7 +137,7 @@ func Test_indent_fold_with_read() call assert_equal(1, foldlevel(n)) endfor - call writefile(["a", "", "\a"], 'Xinfofile') + call writefile(["a", "", "\a"], 'Xinfofile', 'D') foldopen 2read Xinfofile %foldclose @@ -150,7 +150,6 @@ func Test_indent_fold_with_read() bwipe! set foldmethod& - call delete('Xinfofile') endfunc func Test_combining_folds_indent() @@ -216,7 +215,7 @@ func Test_update_folds_expr_read() 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 @@ func Test_update_folds_expr_read() call assert_equal(10, foldclosedend(7)) call assert_equal(14, foldclosedend(11)) - call delete('Xupfofile') bwipe! set foldmethod& foldexpr& endfunc @@ -808,7 +806,7 @@ func Test_folds_with_rnu() 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 @@ func Test_folds_with_rnu() " clean up call StopVimInTerminal(buf) - call delete('Xtest_folds_with_rnu') endfunc func Test_folds_marker_in_comment2() @@ -1263,7 +1260,7 @@ func Test_foldclose_opt() \ 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 @@ func Test_foldclose_opt() 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 --- 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 @@ func Test_function_lists() 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 @@ func Test_function_lists() " 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 @@ func Test_function_lists() 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 @@ func Test_function_lists() 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 --- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -1326,9 +1326,8 @@ func Test_filewritable() 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 @@ func Test_setbufvar_keep_window_title() let g:buf = bufadd('Xb.txt') inoremap =setbufvar(g:buf, '&autoindent', 1) ?? '' 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 @@ func Test_setbufvar_keep_window_title() 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 @@ endfunc 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 @@ func Test_func_exists_on_reload() 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 @@ func Test_func_exists_on_reload() 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 @@ func Test_platform_name() 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 @@ func Test_readdir() " 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 @@ func Test_readdirex() 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 @@ func Test_readdirex_sort() 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 @@ func Test_readdirex_sort() 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 @@ func Test_readdir_sort() " Cleanup exe "lang collate" collate - - eval dir->delete('rf') endfunc func Test_delete_rf() diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 611, +/**/ 610, /**/ 609,