patch 9.0.0323: using common name in tests leads to flaky tests
Problem: Using common name in tests leads to flaky tests.
Solution: Rename files and directories to be more specific.
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index d483b74..1547447 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -347,9 +347,9 @@
call delete('Xlink2')
call delete('Xlink3')
- silent !ln -s -f Xdir//Xfile Xlink
- call assert_equal('Xdir/Xfile', resolve('Xlink'))
- call delete('Xlink')
+ silent !ln -s -f Xresolvedir//Xfile Xresolvelink
+ call assert_equal('Xresolvedir/Xfile', resolve('Xresolvelink'))
+ call delete('Xresolvelink')
silent !ln -s -f Xlink2/ Xlink1
call assert_equal('Xlink2', 'Xlink1'->resolve())
@@ -375,22 +375,22 @@
" test for shortcut file
if executable('cscript')
- new Xfile
+ new Xresfile
wq
let lines =<< trim END
Set fs = CreateObject("Scripting.FileSystemObject")
Set ws = WScript.CreateObject("WScript.Shell")
Set shortcut = ws.CreateShortcut("Xlink.lnk")
- shortcut.TargetPath = fs.BuildPath(ws.CurrentDirectory, "Xfile")
+ shortcut.TargetPath = fs.BuildPath(ws.CurrentDirectory, "Xresfile")
shortcut.Save
END
call writefile(lines, 'link.vbs')
silent !cscript link.vbs
call delete('link.vbs')
- call assert_equal(s:normalize_fname(getcwd() . '\Xfile'), s:normalize_fname(resolve('./Xlink.lnk')))
- call delete('Xfile')
+ call assert_equal(s:normalize_fname(getcwd() . '\Xresfile'), s:normalize_fname(resolve('./Xlink.lnk')))
+ call delete('Xresfile')
- call assert_equal(s:normalize_fname(getcwd() . '\Xfile'), s:normalize_fname(resolve('./Xlink.lnk')))
+ call assert_equal(s:normalize_fname(getcwd() . '\Xresfile'), s:normalize_fname(resolve('./Xlink.lnk')))
call delete('Xlink.lnk')
else
echomsg 'skipped test for shortcut file'
@@ -398,52 +398,51 @@
" remove files
call delete('Xlink')
- call delete('Xdir', 'd')
- call delete('Xfile')
+ call delete('Xresfile')
" test for symbolic link to a file
- new Xfile
+ new Xslinkfile
wq
- call assert_equal('Xfile', resolve('Xfile'))
- silent !mklink Xlink Xfile
+ call assert_equal('Xslinkfile', resolve('Xslinkfile'))
+ silent !mklink Xlink Xslinkfile
if !v:shell_error
- call assert_equal(s:normalize_fname(getcwd() . '\Xfile'), s:normalize_fname(resolve('./Xlink')))
+ call assert_equal(s:normalize_fname(getcwd() . '\Xslinkfile'), s:normalize_fname(resolve('./Xlink')))
call delete('Xlink')
else
echomsg 'skipped test for symbolic link to a file'
endif
- call delete('Xfile')
+ call delete('Xslinkfile')
" test for junction to a directory
- call mkdir('Xdir')
- silent !mklink /J Xlink Xdir
+ call mkdir('Xjuncdir')
+ silent !mklink /J Xlink Xjuncdir
if !v:shell_error
- call assert_equal(s:normalize_fname(getcwd() . '\Xdir'), s:normalize_fname(resolve(getcwd() . '/Xlink')))
+ call assert_equal(s:normalize_fname(getcwd() . '\Xjuncdir'), s:normalize_fname(resolve(getcwd() . '/Xlink')))
- call delete('Xdir', 'd')
+ call delete('Xjuncdir', 'd')
" test for junction already removed
call assert_equal(s:normalize_fname(getcwd() . '\Xlink'), s:normalize_fname(resolve(getcwd() . '/Xlink')))
call delete('Xlink')
else
echomsg 'skipped test for junction to a directory'
- call delete('Xdir', 'd')
+ call delete('Xjuncdir', 'd')
endif
" test for symbolic link to a directory
- call mkdir('Xdir')
- silent !mklink /D Xlink Xdir
+ call mkdir('Xjuncdir')
+ silent !mklink /D Xlink Xjuncdir
if !v:shell_error
- call assert_equal(s:normalize_fname(getcwd() . '\Xdir'), s:normalize_fname(resolve(getcwd() . '/Xlink')))
+ call assert_equal(s:normalize_fname(getcwd() . '\Xjuncdir'), s:normalize_fname(resolve(getcwd() . '/Xlink')))
- call delete('Xdir', 'd')
+ call delete('Xjuncdir', 'd')
" test for symbolic link already removed
call assert_equal(s:normalize_fname(getcwd() . '\Xlink'), s:normalize_fname(resolve(getcwd() . '/Xlink')))
call delete('Xlink')
else
echomsg 'skipped test for symbolic link to a directory'
- call delete('Xdir', 'd')
+ call delete('Xjuncdir', 'd')
endif
" test for buffer name
@@ -461,20 +460,20 @@
call delete('Xfile')
" test for reparse point
- call mkdir('Xdir')
- call assert_equal('Xdir', resolve('Xdir'))
- silent !mklink /D Xdirlink Xdir
+ call mkdir('Xparsedir')
+ call assert_equal('Xdir', resolve('Xparsedir'))
+ silent !mklink /D Xdirlink Xparsedir
if !v:shell_error
- w Xdir/text.txt
- call assert_equal('Xdir/text.txt', resolve('Xdir/text.txt'))
- call assert_equal(s:normalize_fname(getcwd() . '\Xdir\text.txt'), s:normalize_fname(resolve('Xdirlink\text.txt')))
- call assert_equal(s:normalize_fname(getcwd() . '\Xdir'), s:normalize_fname(resolve('Xdirlink')))
+ w Xparsedir/text.txt
+ call assert_equal('Xparsedir/text.txt', resolve('Xparsedir/text.txt'))
+ call assert_equal(s:normalize_fname(getcwd() . '\Xparsedir\text.txt'), s:normalize_fname(resolve('Xdirlink\text.txt')))
+ call assert_equal(s:normalize_fname(getcwd() . '\Xparsedir'), s:normalize_fname(resolve('Xdirlink')))
call delete('Xdirlink')
else
echomsg 'skipped test for reparse point'
endif
- call delete('Xdir', 'rf')
+ call delete('Xparsedir', 'rf')
endfunc
func Test_simplify()
@@ -497,9 +496,9 @@
call assert_equal('./file', simplify('dir/.././file'))
call assert_equal('../dir', simplify('./../dir'))
call assert_equal('..', simplify('../testdir/..'))
- call mkdir('Xdir')
- call assert_equal('.', simplify('Xdir/../.'))
- call delete('Xdir', 'd')
+ call mkdir('Xsimpdir')
+ call assert_equal('.', simplify('Xsimpdir/../.'))
+ call delete('Xsimpdir', 'd')
call assert_fails('call simplify({->0})', 'E729:')
call assert_fails('call simplify([])', 'E730:')
@@ -1336,9 +1335,9 @@
call assert_equal(0, filewritable('doesnotexist'))
- call mkdir('Xdir')
- call assert_equal(2, filewritable('Xdir'))
- call delete('Xdir', 'd')
+ call mkdir('Xwritedir')
+ call assert_equal(2, filewritable('Xwritedir'))
+ call delete('Xwritedir', 'd')
call delete('Xfilewritable')
bw!
@@ -1364,17 +1363,17 @@
bwipe
" create "notepad.bat"
- call mkdir('Xdir')
- let notepadbat = fnamemodify('Xdir/notepad.bat', ':p')
+ call mkdir('Xnotedir')
+ let notepadbat = fnamemodify('Xnotedir/notepad.bat', ':p')
call writefile([], notepadbat)
new
" check that the path and the pathext order is valid
- lcd Xdir
+ lcd Xnotedir
let [pathext, $PATHEXT] = [$PATHEXT, '.com;.exe;.bat;.cmd']
call assert_equal(notepadbat, exepath('notepad'))
let $PATHEXT = pathext
bwipe
- eval 'Xdir'->delete('rf')
+ eval 'Xnotedir'->delete('rf')
elseif has('unix')
call assert_equal(1, 'cat'->executable())
call assert_equal(0, executable('nodogshere'))
@@ -2073,88 +2072,88 @@
endfunc
func Test_readdir()
- call mkdir('Xdir')
- call writefile([], 'Xdir/foo.txt')
- call writefile([], 'Xdir/bar.txt')
- call mkdir('Xdir/dir')
+ call mkdir('Xreaddir')
+ call writefile([], 'Xreaddir/foo.txt')
+ call writefile([], 'Xreaddir/bar.txt')
+ call mkdir('Xreaddir/dir')
" All results
- let files = readdir('Xdir')
+ let files = readdir('Xreaddir')
call assert_equal(['bar.txt', 'dir', 'foo.txt'], sort(files))
" Only results containing "f"
- let files = 'Xdir'->readdir({ x -> stridx(x, 'f') != -1 })
+ let files = 'Xreaddir'->readdir({ x -> stridx(x, 'f') != -1 })
call assert_equal(['foo.txt'], sort(files))
" Only .txt files
- let files = readdir('Xdir', { x -> x =~ '.txt$' })
+ let files = readdir('Xreaddir', { x -> x =~ '.txt$' })
call assert_equal(['bar.txt', 'foo.txt'], sort(files))
" Only .txt files with string
- let files = readdir('Xdir', 'v:val =~ ".txt$"')
+ let files = readdir('Xreaddir', 'v:val =~ ".txt$"')
call assert_equal(['bar.txt', 'foo.txt'], sort(files))
" Limit to 1 result.
let l = []
- let files = readdir('Xdir', {x -> len(add(l, x)) == 2 ? -1 : 1})
+ let files = readdir('Xreaddir', {x -> len(add(l, x)) == 2 ? -1 : 1})
call assert_equal(1, len(files))
" Nested readdir() must not crash
- let files = readdir('Xdir', 'readdir("Xdir", "1") != []')
+ let files = readdir('Xreaddir', 'readdir("Xreaddir", "1") != []')
call sort(files)->assert_equal(['bar.txt', 'dir', 'foo.txt'])
- eval 'Xdir'->delete('rf')
+ eval 'Xreaddir'->delete('rf')
endfunc
func Test_readdirex()
- call mkdir('Xdir')
- call writefile(['foo'], 'Xdir/foo.txt')
- call writefile(['barbar'], 'Xdir/bar.txt')
- call mkdir('Xdir/dir')
+ call mkdir('Xexdir')
+ call writefile(['foo'], 'Xexdir/foo.txt')
+ call writefile(['barbar'], 'Xexdir/bar.txt')
+ call mkdir('Xexdir/dir')
" All results
- let files = readdirex('Xdir')->map({-> v:val.name})
+ let files = readdirex('Xexdir')->map({-> v:val.name})
call assert_equal(['bar.txt', 'dir', 'foo.txt'], sort(files))
- let sizes = readdirex('Xdir')->map({-> v:val.size})
+ let sizes = readdirex('Xexdir')->map({-> v:val.size})
call assert_equal([0, 4, 7], sort(sizes))
" Only results containing "f"
- let files = 'Xdir'->readdirex({ e -> stridx(e.name, 'f') != -1 })
+ let files = 'Xexdir'->readdirex({ e -> stridx(e.name, 'f') != -1 })
\ ->map({-> v:val.name})
call assert_equal(['foo.txt'], sort(files))
" Only .txt files
- let files = readdirex('Xdir', { e -> e.name =~ '.txt$' })
+ let files = readdirex('Xexdir', { e -> e.name =~ '.txt$' })
\ ->map({-> v:val.name})
call assert_equal(['bar.txt', 'foo.txt'], sort(files))
" Only .txt files with string
- let files = readdirex('Xdir', 'v:val.name =~ ".txt$"')
+ let files = readdirex('Xexdir', 'v:val.name =~ ".txt$"')
\ ->map({-> v:val.name})
call assert_equal(['bar.txt', 'foo.txt'], sort(files))
" Limit to 1 result.
let l = []
- let files = readdirex('Xdir', {e -> len(add(l, e.name)) == 2 ? -1 : 1})
+ let files = readdirex('Xexdir', {e -> len(add(l, e.name)) == 2 ? -1 : 1})
\ ->map({-> v:val.name})
call assert_equal(1, len(files))
" Nested readdirex() must not crash
- let files = readdirex('Xdir', 'readdirex("Xdir", "1") != []')
+ let files = readdirex('Xexdir', 'readdirex("Xexdir", "1") != []')
\ ->map({-> v:val.name})
call sort(files)->assert_equal(['bar.txt', 'dir', 'foo.txt'])
" report broken link correctly
if has("unix")
- call writefile([], 'Xdir/abc.txt')
- call system("ln -s Xdir/abc.txt Xdir/link")
- call delete('Xdir/abc.txt')
- let files = readdirex('Xdir', 'readdirex("Xdir", "1") != []')
+ call writefile([], 'Xexdir/abc.txt')
+ call system("ln -s Xexdir/abc.txt Xexdir/link")
+ call delete('Xexdir/abc.txt')
+ let files = readdirex('Xexdir', 'readdirex("Xexdir", "1") != []')
\ ->map({-> v:val.name .. '_' .. v:val.type})
call sort(files)->assert_equal(
\ ['bar.txt_file', 'dir_dir', 'foo.txt_file', 'link_link'])
endif
- eval 'Xdir'->delete('rf')
+ eval 'Xexdir'->delete('rf')
call assert_fails('call readdirex("doesnotexist")', 'E484:')
endfunc
@@ -2166,34 +2165,34 @@
throw 'Skipped: Test_readdirex_sort on systems that do not allow this using the default filesystem'
endif
let _collate = v:collate
- call mkdir('Xdir2')
- call writefile(['1'], 'Xdir2/README.txt')
- call writefile(['2'], 'Xdir2/Readme.txt')
- call writefile(['3'], 'Xdir2/readme.txt')
+ call mkdir('Xsortdir2')
+ call writefile(['1'], 'Xsortdir2/README.txt')
+ call writefile(['2'], 'Xsortdir2/Readme.txt')
+ call writefile(['3'], 'Xsortdir2/readme.txt')
" 1) default
- let files = readdirex('Xdir2')->map({-> v:val.name})
+ let files = readdirex('Xsortdir2')->map({-> v:val.name})
let default = copy(files)
call assert_equal(['README.txt', 'Readme.txt', 'readme.txt'], files, 'sort using default')
" 2) no sorting
- let files = readdirex('Xdir2', 1, #{sort: 'none'})->map({-> v:val.name})
+ let files = readdirex('Xsortdir2', 1, #{sort: 'none'})->map({-> v:val.name})
let unsorted = copy(files)
call assert_equal(['README.txt', 'Readme.txt', 'readme.txt'], sort(files), 'unsorted')
- call assert_fails("call readdirex('Xdir2', 1, #{slort: 'none'})", 'E857: Dictionary key "sort" required')
+ call assert_fails("call readdirex('Xsortdir2', 1, #{slort: 'none'})", 'E857: Dictionary key "sort" required')
" 3) sort by case (same as default)
- let files = readdirex('Xdir2', 1, #{sort: 'case'})->map({-> v:val.name})
+ let files = readdirex('Xsortdir2', 1, #{sort: 'case'})->map({-> v:val.name})
call assert_equal(default, files, 'sort by case')
" 4) sort by ignoring case
- let files = readdirex('Xdir2', 1, #{sort: 'icase'})->map({-> v:val.name})
+ let files = readdirex('Xsortdir2', 1, #{sort: 'icase'})->map({-> v:val.name})
call assert_equal(unsorted->sort('i'), files, 'sort by icase')
" 5) Default Collation
let collate = v:collate
lang collate C
- let files = readdirex('Xdir2', 1, #{sort: 'collate'})->map({-> v:val.name})
+ let files = readdirex('Xsortdir2', 1, #{sort: 'collate'})->map({-> v:val.name})
call assert_equal(['README.txt', 'Readme.txt', 'readme.txt'], files, 'sort by C collation')
" 6) Collation de_DE
@@ -2201,20 +2200,20 @@
" available
try
lang collate de_DE
- let files = readdirex('Xdir2', 1, #{sort: 'collate'})->map({-> v:val.name})
+ let files = readdirex('Xsortdir2', 1, #{sort: 'collate'})->map({-> v:val.name})
call assert_equal(['readme.txt', 'Readme.txt', 'README.txt'], files, 'sort by de_DE collation')
catch
throw 'Skipped: de_DE collation is not available'
finally
exe 'lang collate' collate
- eval 'Xdir2'->delete('rf')
+ eval 'Xsortdir2'->delete('rf')
endtry
endfunc
func Test_readdir_sort()
" some more cases for testing sorting for readdirex
- let dir = 'Xdir3'
+ let dir = 'Xsortdir3'
call mkdir(dir)
call writefile(['1'], dir .. '/README.txt')
call writefile(['2'], dir .. '/Readm.txt')
@@ -2259,26 +2258,26 @@
endfunc
func Test_delete_rf()
- call mkdir('Xdir')
- call writefile([], 'Xdir/foo.txt')
- call writefile([], 'Xdir/bar.txt')
- call mkdir('Xdir/[a-1]') " issue #696
- call writefile([], 'Xdir/[a-1]/foo.txt')
- call writefile([], 'Xdir/[a-1]/bar.txt')
- call assert_true(filereadable('Xdir/foo.txt'))
- call assert_true('Xdir/[a-1]/foo.txt'->filereadable())
+ call mkdir('Xrfdir')
+ call writefile([], 'Xrfdir/foo.txt')
+ call writefile([], 'Xrfdir/bar.txt')
+ call mkdir('Xrfdir/[a-1]') " issue #696
+ call writefile([], 'Xrfdir/[a-1]/foo.txt')
+ call writefile([], 'Xrfdir/[a-1]/bar.txt')
+ call assert_true(filereadable('Xrfdir/foo.txt'))
+ call assert_true('Xrfdir/[a-1]/foo.txt'->filereadable())
- call assert_equal(0, delete('Xdir', 'rf'))
- call assert_false(filereadable('Xdir/foo.txt'))
- call assert_false(filereadable('Xdir/[a-1]/foo.txt'))
+ call assert_equal(0, delete('Xrfdir', 'rf'))
+ call assert_false(filereadable('Xrfdir/foo.txt'))
+ call assert_false(filereadable('Xrfdir/[a-1]/foo.txt'))
if has('unix')
- call mkdir('Xdir/Xdir2', 'p')
- silent !chmod 555 Xdir
- call assert_equal(-1, delete('Xdir/Xdir2', 'rf'))
- call assert_equal(-1, delete('Xdir', 'rf'))
- silent !chmod 755 Xdir
- call assert_equal(0, delete('Xdir', 'rf'))
+ call mkdir('Xrfdir/Xdir2', 'p')
+ silent !chmod 555 Xrfdir
+ call assert_equal(-1, delete('Xrfdir/Xdir2', 'rf'))
+ call assert_equal(-1, delete('Xrfdir', 'rf'))
+ silent !chmod 755 Xrfdir
+ call assert_equal(0, delete('Xrfdir', 'rf'))
endif
endfunc