To: vim_dev@googlegroups.com Subject: Patch 9.0.0313 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 9.0.0313 Problem: Using common name in tests leads to flaky tests. Solution: Rename files and directories to be more specific. Files: src/testdir/test_autochdir.vim, src/testdir/test_autocmd.vim, src/testdir/test_backup.vim, src/testdir/test_buffer.vim *** ../vim-9.0.0312/src/testdir/test_autochdir.vim 2022-03-05 16:56:30.000000000 +0000 --- src/testdir/test_autochdir.vim 2022-08-29 01:02:04.784465463 +0100 *************** *** 56,65 **** set acd call test_autochdir() ! call mkdir('Xfile') let winid = win_getid() ! new Xfile/file ! call assert_match('testdir.Xfile$', getcwd()) cd .. call assert_match('testdir$', getcwd()) call win_execute(winid, 'echo') --- 56,65 ---- set acd call test_autochdir() ! call mkdir('XacdDir') let winid = win_getid() ! new XacdDir/file ! call assert_match('testdir.XacdDir$', getcwd()) cd .. call assert_match('testdir$', getcwd()) call win_execute(winid, 'echo') *************** *** 68,74 **** bwipe! set noacd call chdir(cwd) ! call delete('Xfile', 'rf') endfunc func Test_verbose_pwd() --- 68,74 ---- bwipe! set noacd call chdir(cwd) ! call delete('XacdDir', 'rf') endfunc func Test_verbose_pwd() *** ../vim-9.0.0312/src/testdir/test_autocmd.vim 2022-08-28 19:16:11.976716179 +0100 --- src/testdir/test_autocmd.vim 2022-08-29 01:08:00.639571150 +0100 *************** *** 24,52 **** " Test for the CursorHold autocmd func Test_CursorHold_autocmd() CheckRunVimInTerminal ! call writefile(['one', 'two', 'three'], 'Xfile') let before =<< trim END set updatetime=10 ! au CursorHold * call writefile([line('.')], 'Xoutput', 'a') END ! call writefile(before, 'Xinit') ! let buf = RunVimInTerminal('-S Xinit Xfile', {}) call term_sendkeys(buf, "G") call term_wait(buf, 50) call term_sendkeys(buf, "gg") call term_wait(buf) ! call WaitForAssert({-> assert_equal(['1'], readfile('Xoutput')[-1:-1])}) call term_sendkeys(buf, "j") call term_wait(buf) ! call WaitForAssert({-> assert_equal(['1', '2'], readfile('Xoutput')[-2:-1])}) call term_sendkeys(buf, "j") call term_wait(buf) ! call WaitForAssert({-> assert_equal(['1', '2', '3'], readfile('Xoutput')[-3:-1])}) call StopVimInTerminal(buf) ! call delete('Xinit') ! call delete('Xoutput') ! call delete('Xfile') endfunc if has('timers') --- 24,52 ---- " Test for the CursorHold autocmd func Test_CursorHold_autocmd() CheckRunVimInTerminal ! call writefile(['one', 'two', 'three'], 'XoneTwoThree') let before =<< trim END set updatetime=10 ! au CursorHold * call writefile([line('.')], 'XCHoutput', 'a') END ! call writefile(before, 'XCHinit') ! let buf = RunVimInTerminal('-S XCHinit XoneTwoThree', {}) call term_sendkeys(buf, "G") call term_wait(buf, 50) call term_sendkeys(buf, "gg") call term_wait(buf) ! call WaitForAssert({-> assert_equal(['1'], readfile('XCHoutput')[-1:-1])}) call term_sendkeys(buf, "j") call term_wait(buf) ! call WaitForAssert({-> assert_equal(['1', '2'], readfile('XCHoutput')[-2:-1])}) call term_sendkeys(buf, "j") call term_wait(buf) ! call WaitForAssert({-> assert_equal(['1', '2', '3'], readfile('XCHoutput')[-3:-1])}) call StopVimInTerminal(buf) ! call delete('XCHinit') ! call delete('XCHoutput') ! call delete('XoneTwoThree') endfunc if has('timers') *************** *** 1521,1541 **** " Test for Bufleave autocommand that deletes the buffer we are about to edit. func Test_BufleaveWithDelete() ! new | edit Xfile1 augroup test_bufleavewithdelete autocmd! ! autocmd BufLeave Xfile1 bwipe Xfile2 augroup END ! call assert_fails('edit Xfile2', 'E143:') ! call assert_equal('Xfile1', bufname('%')) ! autocmd! test_bufleavewithdelete BufLeave Xfile1 augroup! test_bufleavewithdelete new ! bwipe! Xfile1 endfunc " Test for autocommand that changes the buffer list, when doing ":ball". --- 1521,1541 ---- " Test for Bufleave autocommand that deletes the buffer we are about to edit. func Test_BufleaveWithDelete() ! new | edit XbufLeave1 augroup test_bufleavewithdelete autocmd! ! autocmd BufLeave XbufLeave1 bwipe XbufLeave2 augroup END ! call assert_fails('edit XbufLeave2', 'E143:') ! call assert_equal('XbufLeave1', bufname('%')) ! autocmd! test_bufleavewithdelete BufLeave XbufLeave1 augroup! test_bufleavewithdelete new ! bwipe! XbufLeave1 endfunc " Test for autocommand that changes the buffer list, when doing ":ball". *************** *** 3007,3019 **** func Test_BufReadPre_delfile() augroup TestAuCmd au! ! autocmd BufReadPre Xfile call delete('Xfile') augroup END ! call writefile([], 'Xfile') ! call assert_fails('new Xfile', 'E200:') ! call assert_equal('Xfile', @%) call assert_equal(1, &readonly) ! call delete('Xfile') augroup TestAuCmd au! augroup END --- 3007,3019 ---- func Test_BufReadPre_delfile() augroup TestAuCmd au! ! autocmd BufReadPre XbufreadPre call delete('XbufreadPre') augroup END ! call writefile([], 'XbufreadPre') ! call assert_fails('new XbufreadPre', 'E200:') ! call assert_equal('XbufreadPre', @%) call assert_equal(1, &readonly) ! call delete('XbufreadPre') augroup TestAuCmd au! augroup END *************** *** 3024,3036 **** func Test_BufReadPre_changebuf() augroup TestAuCmd au! ! autocmd BufReadPre Xfile edit Xsomeotherfile augroup END ! call writefile([], 'Xfile') ! call assert_fails('new Xfile', 'E201:') call assert_equal('Xsomeotherfile', @%) call assert_equal(1, &readonly) ! call delete('Xfile') augroup TestAuCmd au! augroup END --- 3024,3036 ---- func Test_BufReadPre_changebuf() augroup TestAuCmd au! ! autocmd BufReadPre Xchangebuf edit Xsomeotherfile augroup END ! call writefile([], 'Xchangebuf') ! call assert_fails('new Xchangebuf', 'E201:') call assert_equal('Xsomeotherfile', @%) call assert_equal(1, &readonly) ! call delete('Xchangebuf') augroup TestAuCmd au! augroup END *** ../vim-9.0.0312/src/testdir/test_backup.vim 2020-08-01 14:59:05.000000000 +0100 --- src/testdir/test_backup.vim 2022-08-29 01:08:47.131466815 +0100 *************** *** 78,88 **** " Test for using a non-existing directory as a backup directory func Test_non_existing_backupdir() set backupdir=./non_existing_dir backupskip= ! call writefile(['line1'], 'Xfile') ! new Xfile call assert_fails('write', 'E510:') set backupdir&vim backupskip&vim ! call delete('Xfile') endfunc " vim: shiftwidth=2 sts=2 expandtab --- 78,88 ---- " Test for using a non-existing directory as a backup directory func Test_non_existing_backupdir() set backupdir=./non_existing_dir backupskip= ! call writefile(['line1'], 'Xbackupdir') ! new Xbackupdir call assert_fails('write', 'E510:') set backupdir&vim backupskip&vim ! call delete('Xbackupdir') endfunc " vim: shiftwidth=2 sts=2 expandtab *** ../vim-9.0.0312/src/testdir/test_buffer.vim 2022-05-15 14:45:19.000000000 +0100 --- src/testdir/test_buffer.vim 2022-08-29 11:00:53.084120442 +0100 *************** *** 76,89 **** %bwipe! call assert_fails('buffer 1000', 'E86:') ! call writefile(['foo1', 'foo2', 'foo3', 'foo4'], 'Xfile1') ! call writefile(['bar1', 'bar2', 'bar3', 'bar4'], 'Xfile2') ! call writefile(['baz1', 'baz2', 'baz3', 'baz4'], 'Xfile3') ! edit Xfile1 let b1 = bufnr() ! edit Xfile2 let b2 = bufnr() ! edit +/baz4 Xfile3 let b3 = bufnr() call assert_fails('buffer ' .. b1 .. ' abc', 'E488:') --- 76,89 ---- %bwipe! call assert_fails('buffer 1000', 'E86:') ! call writefile(['foo1', 'foo2', 'foo3', 'foo4'], 'Xbrowse1') ! call writefile(['bar1', 'bar2', 'bar3', 'bar4'], 'Xbrowse2') ! call writefile(['baz1', 'baz2', 'baz3', 'baz4'], 'Xbrowse3') ! edit Xbrowse1 let b1 = bufnr() ! edit Xbrowse2 let b2 = bufnr() ! edit +/baz4 Xbrowse3 let b3 = bufnr() call assert_fails('buffer ' .. b1 .. ' abc', 'E488:') *************** *** 127,135 **** call assert_fails('sandbox bnext', 'E48:') ! call delete('Xfile1') ! call delete('Xfile2') ! call delete('Xfile3') %bwipe! endfunc --- 127,135 ---- call assert_fails('sandbox bnext', 'E48:') ! call delete('Xbrowse1') ! call delete('Xbrowse2') ! call delete('Xbrowse3') %bwipe! endfunc *************** *** 200,238 **** " Test for quitting the 'swapfile exists' dialog with the split buffer " command. func Test_buffer_sbuf_cleanup() ! call writefile([], 'Xfile') " first open the file in a buffer ! new Xfile let bnr = bufnr() close " create the swap file ! call writefile([], '.Xfile.swp') " Remove the catch-all that runtest.vim adds au! SwapExists augroup BufTest au! ! autocmd SwapExists Xfile let v:swapchoice='q' augroup END exe 'sbuf ' . bnr call assert_equal(1, winnr('$')) ! call assert_equal(0, getbufinfo('Xfile')[0].loaded) " test for :sball sball call assert_equal(1, winnr('$')) ! call assert_equal(0, getbufinfo('Xfile')[0].loaded) %bw! set shortmess+=F let v:statusmsg = '' ! edit Xfile call assert_equal('', v:statusmsg) call assert_equal(1, winnr('$')) ! call assert_equal(0, getbufinfo('Xfile')[0].loaded) set shortmess& ! call delete('Xfile') ! call delete('.Xfile.swp') augroup BufTest au! augroup END --- 200,238 ---- " Test for quitting the 'swapfile exists' dialog with the split buffer " command. func Test_buffer_sbuf_cleanup() ! call writefile([], 'XsplitCleanup') " first open the file in a buffer ! new XsplitCleanup let bnr = bufnr() close " create the swap file ! call writefile([], '.XsplitCleanup.swp') " Remove the catch-all that runtest.vim adds au! SwapExists augroup BufTest au! ! autocmd SwapExists XsplitCleanup let v:swapchoice='q' augroup END exe 'sbuf ' . bnr call assert_equal(1, winnr('$')) ! call assert_equal(0, getbufinfo('XsplitCleanup')[0].loaded) " test for :sball sball call assert_equal(1, winnr('$')) ! call assert_equal(0, getbufinfo('XsplitCleanup')[0].loaded) %bw! set shortmess+=F let v:statusmsg = '' ! edit XsplitCleanup call assert_equal('', v:statusmsg) call assert_equal(1, winnr('$')) ! call assert_equal(0, getbufinfo('XsplitCleanup')[0].loaded) set shortmess& ! call delete('XsplitCleanup') ! call delete('.XsplitCleanup.swp') augroup BufTest au! augroup END *************** *** 261,295 **** CheckUnix CheckNotGui CheckFeature dialog_con ! new Xfile enew call setline(1, 'test') ! call assert_fails('b Xfile', 'E37:') call feedkeys('c', 'L') ! call assert_fails('confirm b Xfile', 'E37:') call assert_equal(1, &modified) call assert_equal('', @%) call feedkeys('y', 'L') ! call assert_fails('confirm b Xfile', ['', 'E37:']) call assert_equal(1, &modified) call assert_equal('', @%) call feedkeys('n', 'L') ! confirm b Xfile ! call assert_equal('Xfile', @%) close! endfunc " Test for splitting buffer with 'switchbuf' func Test_buffer_switchbuf() ! new Xfile wincmd w set switchbuf=useopen ! sbuf Xfile call assert_equal(1, winnr()) call assert_equal(2, winnr('$')) set switchbuf=usetab tabnew ! sbuf Xfile call assert_equal(1, tabpagenr()) call assert_equal(2, tabpagenr('$')) set switchbuf& --- 261,295 ---- CheckUnix CheckNotGui CheckFeature dialog_con ! new XgotoConf enew call setline(1, 'test') ! call assert_fails('b XgotoConf', 'E37:') call feedkeys('c', 'L') ! call assert_fails('confirm b XgotoConf', 'E37:') call assert_equal(1, &modified) call assert_equal('', @%) call feedkeys('y', 'L') ! call assert_fails('confirm b XgotoConf', ['', 'E37:']) call assert_equal(1, &modified) call assert_equal('', @%) call feedkeys('n', 'L') ! confirm b XgotoConf ! call assert_equal('XgotoConf', @%) close! endfunc " Test for splitting buffer with 'switchbuf' func Test_buffer_switchbuf() ! new Xswitchbuf wincmd w set switchbuf=useopen ! sbuf Xswitchbuf call assert_equal(1, winnr()) call assert_equal(2, winnr('$')) set switchbuf=usetab tabnew ! sbuf Xswitchbuf call assert_equal(1, tabpagenr()) call assert_equal(2, tabpagenr('$')) set switchbuf& *************** *** 301,311 **** %bw! augroup BufAdd_Wipe au! ! autocmd BufAdd Xfile %bw! augroup END ! edit Xfile call assert_equal('', @%) ! call assert_equal(0, bufexists('Xfile')) augroup BufAdd_Wipe au! augroup END --- 301,311 ---- %bw! augroup BufAdd_Wipe au! ! autocmd BufAdd Xbwipe %bw! augroup END ! edit Xbwipe call assert_equal('', @%) ! call assert_equal(0, bufexists('Xbwipe')) augroup BufAdd_Wipe au! augroup END *************** *** 325,364 **** " Test for using CTRL-^ to edit the alternative file keeping the cursor " position with 'nostartofline'. Also test using the 'buf' command. func Test_buffer_edit_altfile() ! call writefile(repeat(['one two'], 50), 'Xfile1') ! call writefile(repeat(['five six'], 50), 'Xfile2') set nosol ! edit Xfile1 call cursor(25, 5) ! edit Xfile2 call cursor(30, 4) exe "normal \" call assert_equal([0, 25, 5, 0], getpos('.')) exe "normal \" call assert_equal([0, 30, 4, 0], getpos('.')) ! buf Xfile1 call assert_equal([0, 25, 5, 0], getpos('.')) ! buf Xfile2 call assert_equal([0, 30, 4, 0], getpos('.')) set sol& ! call delete('Xfile1') ! call delete('Xfile2') endfunc " Test for running the :sball command with a maximum window count and a " modified buffer func Test_sball_with_count() %bw! ! edit Xfile1 call setline(1, ['abc']) ! new Xfile2 ! new Xfile3 ! new Xfile4 2sball ! call assert_equal(bufnr('Xfile4'), winbufnr(1)) ! call assert_equal(bufnr('Xfile1'), winbufnr(2)) ! call assert_equal(0, getbufinfo('Xfile2')[0].loaded) ! call assert_equal(0, getbufinfo('Xfile3')[0].loaded) %bw! endfunc --- 325,364 ---- " Test for using CTRL-^ to edit the alternative file keeping the cursor " position with 'nostartofline'. Also test using the 'buf' command. func Test_buffer_edit_altfile() ! call writefile(repeat(['one two'], 50), 'Xaltfile1') ! call writefile(repeat(['five six'], 50), 'Xaltfile2') set nosol ! edit Xaltfile1 call cursor(25, 5) ! edit Xaltfile2 call cursor(30, 4) exe "normal \" call assert_equal([0, 25, 5, 0], getpos('.')) exe "normal \" call assert_equal([0, 30, 4, 0], getpos('.')) ! buf Xaltfile1 call assert_equal([0, 25, 5, 0], getpos('.')) ! buf Xaltfile2 call assert_equal([0, 30, 4, 0], getpos('.')) set sol& ! call delete('Xaltfile1') ! call delete('Xaltfile2') endfunc " Test for running the :sball command with a maximum window count and a " modified buffer func Test_sball_with_count() %bw! ! edit Xcountfile1 call setline(1, ['abc']) ! new Xcountfile2 ! new Xcountfile3 ! new Xcountfile4 2sball ! call assert_equal(bufnr('Xcountfile4'), winbufnr(1)) ! call assert_equal(bufnr('Xcountfile1'), winbufnr(2)) ! call assert_equal(0, getbufinfo('Xcountfile2')[0].loaded) ! call assert_equal(0, getbufinfo('Xcountfile3')[0].loaded) %bw! endfunc *************** *** 451,468 **** func Test_buflist_alloc_failure() %bw! ! edit Xfile1 call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) ! call assert_fails('edit Xfile2', 'E342:') " test for bufadd() call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('call bufadd("Xbuffer")', 'E342:') " test for setting the arglist ! edit Xfile2 call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) ! call assert_fails('next Xfile3', 'E342:') " test for setting the alternate buffer name when writing a file call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) --- 451,468 ---- func Test_buflist_alloc_failure() %bw! ! edit XallocFail1 call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) ! call assert_fails('edit XallocFail2', 'E342:') " test for bufadd() call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('call bufadd("Xbuffer")', 'E342:') " test for setting the arglist ! edit XallocFail2 call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) ! call assert_fails('next XallocFail3', 'E342:') " test for setting the alternate buffer name when writing a file call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) *************** *** 489,505 **** endif " test for loading a new buffer after wiping out all the buffers ! edit Xfile4 call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('%bw!', 'E342:') " test for :checktime loading the buffer ! call writefile(['one'], 'Xfile5') if has('unix') ! edit Xfile5 " sleep for some time to make sure the timestamp is different sleep 200m ! call writefile(['two'], 'Xfile5') set autoread call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('checktime', 'E342:') --- 489,505 ---- endif " test for loading a new buffer after wiping out all the buffers ! edit XallocFail4 call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('%bw!', 'E342:') " test for :checktime loading the buffer ! call writefile(['one'], 'XallocFail5') if has('unix') ! edit XallocFail5 " sleep for some time to make sure the timestamp is different sleep 200m ! call writefile(['two'], 'XallocFail5') set autoread call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('checktime', 'E342:') *************** *** 509,520 **** " test for :vimgrep loading a dummy buffer call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) ! call assert_fails('vimgrep two Xfile5', 'E342:') ! call delete('Xfile5') " test for quickfix command loading a buffer call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) ! call assert_fails('cexpr "Xfile6:10:Line10"', 'E342:') endfunc " vim: shiftwidth=2 sts=2 expandtab --- 509,520 ---- " test for :vimgrep loading a dummy buffer call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) ! call assert_fails('vimgrep two XallocFail5', 'E342:') ! call delete('XallocFail5') " test for quickfix command loading a buffer call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) ! call assert_fails('cexpr "XallocFail6:10:Line10"', 'E342:') endfunc " vim: shiftwidth=2 sts=2 expandtab *** ../vim-9.0.0312/src/version.c 2022-08-29 00:08:35.418233993 +0100 --- src/version.c 2022-08-29 11:02:23.963482810 +0100 *************** *** 709,710 **** --- 709,712 ---- { /* Add new patch number below this line */ + /**/ + 313, /**/ -- FATAL ERROR! SYSTEM HALTED! - Press any key to continue doing nothing. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///