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 \<C-^>"
    call assert_equal([0, 25, 5, 0], getpos('.'))
    exe "normal \<C-^>"
    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 \<C-^>"
    call assert_equal([0, 25, 5, 0], getpos('.'))
    exe "normal \<C-^>"
    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 -- [email protected] -- http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/20220829100411.76B6A1C07CD%40moolenaar.net.

Raspunde prin e-mail lui