Patch 9.0.0323
Problem: Using common name in tests leads to flaky tests.
Solution: Rename files and directories to be more specific.
Files: src/testdir/test_autocmd.vim, src/testdir/test_cd.vim,
src/testdir/test_channel.vim, src/testdir/test_checkpath.vim,
src/testdir/test_cmdline.vim, src/testdir/test_delete.vim,
src/testdir/test_edit.vim, src/testdir/test_excmd.vim,
src/testdir/test_findfile.vim, src/testdir/test_functions.vim,
src/testdir/test_getcwd.vim, src/testdir/test_gui.vim,
src/testdir/test_help.vim, src/testdir/test_ins_complete.vim,
src/testdir/test_packadd.vim, src/testdir/test_quickfix.vim,
src/testdir/test_startup.vim, src/testdir/test_terminal.vim,
src/testdir/test_vim9_disassemble.vim,
src/testdir/test_vim9_func.vim, src/testdir/test_vim9_import.vim,
src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim,
src/testdir/test_writefile.vim
*** ../vim-9.0.0322/src/testdir/test_autocmd.vim 2022-08-29
11:02:55.227279554 +0100
--- src/testdir/test_autocmd.vim 2022-08-29 20:57:49.100299112 +0100
***************
*** 717,730 ****
call assert_equal('++', g:val)
" Also get BufEnter when editing a directory
! call mkdir('Xdir')
! split Xdir
call assert_equal('+++', g:val)
" On MS-Windows we can't edit the directory, make sure we wipe the right
" buffer.
! bwipe! Xdir
! call delete('Xdir', 'd')
au! BufEnter
" Editing a "nofile" buffer doesn't read the file but does trigger BufEnter
--- 717,730 ----
call assert_equal('++', g:val)
" Also get BufEnter when editing a directory
! call mkdir('Xbufenterdir')
! split Xbufenterdir
call assert_equal('+++', g:val)
" On MS-Windows we can't edit the directory, make sure we wipe the right
" buffer.
! bwipe! Xbufenterdir
! call delete('Xbufenterdir', 'd')
au! BufEnter
" Editing a "nofile" buffer doesn't read the file but does trigger BufEnter
***************
*** 2723,2738 ****
endfunc
func Test_autocmd_in_try_block()
! call mkdir('Xdir')
au BufEnter * let g:fname = expand('%')
try
! edit Xdir/
endtry
! call assert_match('Xdir', g:fname)
unlet g:fname
au! BufEnter
! call delete('Xdir', 'rf')
endfunc
func Test_autocmd_SafeState()
--- 2723,2738 ----
endfunc
func Test_autocmd_in_try_block()
! call mkdir('Xintrydir')
au BufEnter * let g:fname = expand('%')
try
! edit Xintrydir/
endtry
! call assert_match('Xintrydir', g:fname)
unlet g:fname
au! BufEnter
! call delete('Xintrydir', 'rf')
endfunc
func Test_autocmd_SafeState()
*** ../vim-9.0.0322/src/testdir/test_cd.vim 2021-12-29 14:27:35.000000000
+0000
--- src/testdir/test_cd.vim 2022-08-29 20:58:43.080244006 +0100
***************
*** 69,79 ****
" Test for chdir()
func Test_chdir_func()
let topdir = getcwd()
! call mkdir('Xdir/y/z', 'p')
" Create a few tabpages and windows with different directories
new
! cd Xdir
tabnew
tcd y
below new
--- 69,79 ----
" Test for chdir()
func Test_chdir_func()
let topdir = getcwd()
! call mkdir('Xchdir/y/z', 'p')
" Create a few tabpages and windows with different directories
new
! cd Xchdir
tabnew
tcd y
below new
***************
*** 81,102 ****
lcd z
tabfirst
! call assert_match('^\[global\] .*/Xdir$', trim(execute('verbose pwd')))
call chdir('..')
call assert_equal('y', fnamemodify(getcwd(1, 2), ':t'))
call assert_equal('z', fnamemodify(3->getcwd(2), ':t'))
tabnext | wincmd t
call assert_match('^\[tabpage\] .*/y$', trim(execute('verbose pwd')))
eval '..'->chdir()
! call assert_equal('Xdir', fnamemodify(getcwd(1, 2), ':t'))
! call assert_equal('Xdir', fnamemodify(getcwd(2, 2), ':t'))
call assert_equal('z', fnamemodify(getcwd(3, 2), ':t'))
call assert_equal('testdir', fnamemodify(getcwd(1, 1), ':t'))
3wincmd w
call assert_match('^\[window\] .*/z$', trim(execute('verbose pwd')))
call chdir('..')
! call assert_equal('Xdir', fnamemodify(getcwd(1, 2), ':t'))
! call assert_equal('Xdir', fnamemodify(getcwd(2, 2), ':t'))
call assert_equal('y', fnamemodify(getcwd(3, 2), ':t'))
call assert_equal('testdir', fnamemodify(getcwd(1, 1), ':t'))
--- 81,102 ----
lcd z
tabfirst
! call assert_match('^\[global\] .*/Xchdir$', trim(execute('verbose pwd')))
call chdir('..')
call assert_equal('y', fnamemodify(getcwd(1, 2), ':t'))
call assert_equal('z', fnamemodify(3->getcwd(2), ':t'))
tabnext | wincmd t
call assert_match('^\[tabpage\] .*/y$', trim(execute('verbose pwd')))
eval '..'->chdir()
! call assert_equal('Xchdir', fnamemodify(getcwd(1, 2), ':t'))
! call assert_equal('Xchdir', fnamemodify(getcwd(2, 2), ':t'))
call assert_equal('z', fnamemodify(getcwd(3, 2), ':t'))
call assert_equal('testdir', fnamemodify(getcwd(1, 1), ':t'))
3wincmd w
call assert_match('^\[window\] .*/z$', trim(execute('verbose pwd')))
call chdir('..')
! call assert_equal('Xchdir', fnamemodify(getcwd(1, 2), ':t'))
! call assert_equal('Xchdir', fnamemodify(getcwd(2, 2), ':t'))
call assert_equal('y', fnamemodify(getcwd(3, 2), ':t'))
call assert_equal('testdir', fnamemodify(getcwd(1, 1), ':t'))
***************
*** 110,129 ****
only | tabonly
call chdir(topdir)
! call delete('Xdir', 'rf')
endfunc
" Test for changing to the previous directory '-'
func Test_prev_dir()
let topdir = getcwd()
! call mkdir('Xdir/a/b/c', 'p')
" Create a few tabpages and windows with different directories
new | only
tabnew | new
tabnew
tabfirst
! cd Xdir
tabnext | wincmd t
tcd a
wincmd w
--- 110,129 ----
only | tabonly
call chdir(topdir)
! call delete('Xchdir', 'rf')
endfunc
" Test for changing to the previous directory '-'
func Test_prev_dir()
let topdir = getcwd()
! call mkdir('Xprevdir/a/b/c', 'p')
" Create a few tabpages and windows with different directories
new | only
tabnew | new
tabnew
tabfirst
! cd Xprevdir
tabnext | wincmd t
tcd a
wincmd w
***************
*** 143,149 ****
" Check the directory of all the windows
tabfirst
! call assert_equal('Xdir', fnamemodify(getcwd(), ':t'))
tabnext | wincmd t
call assert_equal('a', fnamemodify(getcwd(), ':t'))
wincmd w
--- 143,149 ----
" Check the directory of all the windows
tabfirst
! call assert_equal('Xprevdir', fnamemodify(getcwd(), ':t'))
tabnext | wincmd t
call assert_equal('a', fnamemodify(getcwd(), ':t'))
wincmd w
***************
*** 163,169 ****
" Check the directory of all the windows
tabfirst
! call assert_equal('Xdir', fnamemodify(getcwd(), ':t'))
tabnext | wincmd t
call assert_equal('a', fnamemodify(getcwd(), ':t'))
wincmd w
--- 163,169 ----
" Check the directory of all the windows
tabfirst
! call assert_equal('Xprevdir', fnamemodify(getcwd(), ':t'))
tabnext | wincmd t
call assert_equal('a', fnamemodify(getcwd(), ':t'))
wincmd w
***************
*** 173,179 ****
only | tabonly
call chdir(topdir)
! call delete('Xdir', 'rf')
endfunc
func Test_lcd_split()
--- 173,179 ----
only | tabonly
call chdir(topdir)
! call delete('Xprevdir', 'rf')
endfunc
func Test_lcd_split()
*** ../vim-9.0.0322/src/testdir/test_channel.vim 2022-06-21
18:30:21.000000000 +0100
--- src/testdir/test_channel.vim 2022-08-29 21:00:00.452160355 +0100
***************
*** 2281,2289 ****
let text = readfile('Xlog')
call assert_match("hello there", text[1])
call assert_match("%s%s", text[2])
! call mkdir("Xdir1")
! call assert_fails("call ch_logfile('Xdir1')", 'E484:')
! cal delete("Xdir1", 'd')
call delete('Xlog')
endfunc
--- 2281,2289 ----
let text = readfile('Xlog')
call assert_match("hello there", text[1])
call assert_match("%s%s", text[2])
! call mkdir("Xchlogdir1")
! call assert_fails("call ch_logfile('Xchlogdir1')", 'E484:')
! cal delete("Xchlogdir1", 'd')
call delete('Xlog')
endfunc
*** ../vim-9.0.0322/src/testdir/test_checkpath.vim 2020-09-23
21:29:29.000000000 +0100
--- src/testdir/test_checkpath.vim 2022-08-29 21:01:47.568036778 +0100
***************
*** 2,29 ****
" Test for 'include' without \zs or \ze
func Test_checkpath1()
! call mkdir("Xdir1/dir2", "p")
! call writefile(['#include "bar.a"'], 'Xdir1/dir2/foo.a')
! call writefile(['#include "baz.a"'], 'Xdir1/dir2/bar.a')
! call writefile(['#include "foo.a"'], 'Xdir1/dir2/baz.a')
call writefile(['#include <foo.a>'], 'Xbase.a')
edit Xbase.a
! set path=Xdir1/dir2
let res = split(execute("checkpath!"), "\n")
call assert_equal([
\ '--- Included files in path ---',
! \ 'Xdir1/dir2/foo.a',
! \ 'Xdir1/dir2/foo.a -->',
! \ ' Xdir1/dir2/bar.a',
! \ ' Xdir1/dir2/bar.a -->',
! \ ' Xdir1/dir2/baz.a',
! \ ' Xdir1/dir2/baz.a -->',
\ ' "foo.a" (Already listed)'], res)
enew
call delete("./Xbase.a")
! call delete("Xdir1", "rf")
set path&
endfunc
--- 2,29 ----
" Test for 'include' without \zs or \ze
func Test_checkpath1()
! call mkdir("Xcheckdir1/dir2", "p")
! call writefile(['#include "bar.a"'], 'Xcheckdir1/dir2/foo.a')
! call writefile(['#include "baz.a"'], 'Xcheckdir1/dir2/bar.a')
! call writefile(['#include "foo.a"'], 'Xcheckdir1/dir2/baz.a')
call writefile(['#include <foo.a>'], 'Xbase.a')
edit Xbase.a
! set path=Xcheckdir1/dir2
let res = split(execute("checkpath!"), "\n")
call assert_equal([
\ '--- Included files in path ---',
! \ 'Xcheckdir1/dir2/foo.a',
! \ 'Xcheckdir1/dir2/foo.a -->',
! \ ' Xcheckdir1/dir2/bar.a',
! \ ' Xcheckdir1/dir2/bar.a -->',
! \ ' Xcheckdir1/dir2/baz.a',
! \ ' Xcheckdir1/dir2/baz.a -->',
\ ' "foo.a" (Already listed)'], res)
enew
call delete("./Xbase.a")
! call delete("Xcheckdir1", "rf")
set path&
endfunc
***************
*** 33,63 ****
" Test for 'include' with \zs and \ze
func Test_checkpath2()
! call mkdir("Xdir1/dir2", "p")
! call writefile(['%inc /bar/'], 'Xdir1/dir2/foo.b')
! call writefile(['%inc /baz/'], 'Xdir1/dir2/bar.b')
! call writefile(['%inc /foo/'], 'Xdir1/dir2/baz.b')
call writefile(['%inc /foo/'], 'Xbase.b')
let &include='^\s*%inc\s*/\zs[^/]\+\ze'
let &includeexpr='DotsToSlashes()'
edit Xbase.b
! set path=Xdir1/dir2
let res = split(execute("checkpath!"), "\n")
call assert_equal([
\ '--- Included files in path ---',
! \ 'Xdir1/dir2/foo.b',
! \ 'Xdir1/dir2/foo.b -->',
! \ ' Xdir1/dir2/bar.b',
! \ ' Xdir1/dir2/bar.b -->',
! \ ' Xdir1/dir2/baz.b',
! \ ' Xdir1/dir2/baz.b -->',
\ ' foo (Already listed)'], res)
enew
call delete("./Xbase.b")
! call delete("Xdir1", "rf")
set path&
set include&
set includeexpr&
--- 33,63 ----
" Test for 'include' with \zs and \ze
func Test_checkpath2()
! call mkdir("Xcheckdir2/dir2", "p")
! call writefile(['%inc /bar/'], 'Xcheckdir2/dir2/foo.b')
! call writefile(['%inc /baz/'], 'Xcheckdir2/dir2/bar.b')
! call writefile(['%inc /foo/'], 'Xcheckdir2/dir2/baz.b')
call writefile(['%inc /foo/'], 'Xbase.b')
let &include='^\s*%inc\s*/\zs[^/]\+\ze'
let &includeexpr='DotsToSlashes()'
edit Xbase.b
! set path=Xcheckdir2/dir2
let res = split(execute("checkpath!"), "\n")
call assert_equal([
\ '--- Included files in path ---',
! \ 'Xcheckdir2/dir2/foo.b',
! \ 'Xcheckdir2/dir2/foo.b -->',
! \ ' Xcheckdir2/dir2/bar.b',
! \ ' Xcheckdir2/dir2/bar.b -->',
! \ ' Xcheckdir2/dir2/baz.b',
! \ ' Xcheckdir2/dir2/baz.b -->',
\ ' foo (Already listed)'], res)
enew
call delete("./Xbase.b")
! call delete("Xcheckdir2", "rf")
set path&
set include&
set includeexpr&
***************
*** 72,103 ****
" Test for 'include' with \zs and no \ze
func Test_checkpath3()
! call mkdir("Xdir1/dir2", "p")
! call writefile(['%inc bar.c'], 'Xdir1/dir2/foo.c')
! call writefile(['%inc baz.c'], 'Xdir1/dir2/bar.c')
! call writefile(['%inc foo.c'], 'Xdir1/dir2/baz.c')
! call writefile(['%inc foo.c'], 'Xdir1/dir2/FALSE.c')
call writefile(['%inc FALSE.c foo.c'], 'Xbase.c')
let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
let &includeexpr='StripNewlineChar()'
edit Xbase.c
! set path=Xdir1/dir2
let res = split(execute("checkpath!"), "\n")
call assert_equal([
\ '--- Included files in path ---',
! \ 'Xdir1/dir2/foo.c',
! \ 'Xdir1/dir2/foo.c -->',
! \ ' Xdir1/dir2/bar.c',
! \ ' Xdir1/dir2/bar.c -->',
! \ ' Xdir1/dir2/baz.c',
! \ ' Xdir1/dir2/baz.c -->',
\ ' foo.c (Already listed)'], res)
enew
call delete("./Xbase.c")
! call delete("Xdir1", "rf")
set path&
set include&
set includeexpr&
--- 72,103 ----
" Test for 'include' with \zs and no \ze
func Test_checkpath3()
! call mkdir("Xcheckdir3/dir2", "p")
! call writefile(['%inc bar.c'], 'Xcheckdir3/dir2/foo.c')
! call writefile(['%inc baz.c'], 'Xcheckdir3/dir2/bar.c')
! call writefile(['%inc foo.c'], 'Xcheckdir3/dir2/baz.c')
! call writefile(['%inc foo.c'], 'Xcheckdir3/dir2/FALSE.c')
call writefile(['%inc FALSE.c foo.c'], 'Xbase.c')
let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
let &includeexpr='StripNewlineChar()'
edit Xbase.c
! set path=Xcheckdir3/dir2
let res = split(execute("checkpath!"), "\n")
call assert_equal([
\ '--- Included files in path ---',
! \ 'Xcheckdir3/dir2/foo.c',
! \ 'Xcheckdir3/dir2/foo.c -->',
! \ ' Xcheckdir3/dir2/bar.c',
! \ ' Xcheckdir3/dir2/bar.c -->',
! \ ' Xcheckdir3/dir2/baz.c',
! \ ' Xcheckdir3/dir2/baz.c -->',
\ ' foo.c (Already listed)'], res)
enew
call delete("./Xbase.c")
! call delete("Xcheckdir3", "rf")
set path&
set include&
set includeexpr&
*** ../vim-9.0.0322/src/testdir/test_cmdline.vim 2022-08-29
16:21:21.453992376 +0100
--- src/testdir/test_cmdline.vim 2022-08-29 21:04:25.843840994 +0100
***************
*** 83,120 ****
endfunc
func Test_complete_wildmenu()
! call mkdir('Xdir1/Xdir2', 'p')
! call writefile(['testfile1'], 'Xdir1/Xtestfile1')
! call writefile(['testfile2'], 'Xdir1/Xtestfile2')
! call writefile(['testfile3'], 'Xdir1/Xdir2/Xtestfile3')
! call writefile(['testfile3'], 'Xdir1/Xdir2/Xtestfile4')
set wildmenu
" Pressing <Tab> completes, and moves to next files when pressing again.
! call feedkeys(":e Xdir1/\<Tab>\<Tab>\<CR>", 'tx')
call assert_equal('testfile1', getline(1))
! call feedkeys(":e Xdir1/\<Tab>\<Tab>\<Tab>\<CR>", 'tx')
call assert_equal('testfile2', getline(1))
" <S-Tab> is like <Tab> but begin with the last match and then go to
" previous.
! call feedkeys(":e Xdir1/Xtest\<S-Tab>\<CR>", 'tx')
call assert_equal('testfile2', getline(1))
! call feedkeys(":e Xdir1/Xtest\<S-Tab>\<S-Tab>\<CR>", 'tx')
call assert_equal('testfile1', getline(1))
" <Left>/<Right> to move to previous/next file.
! call feedkeys(":e Xdir1/\<Tab>\<Right>\<CR>", 'tx')
call assert_equal('testfile1', getline(1))
! call feedkeys(":e Xdir1/\<Tab>\<Right>\<Right>\<CR>", 'tx')
call assert_equal('testfile2', getline(1))
! call feedkeys(":e Xdir1/\<Tab>\<Right>\<Right>\<Left>\<CR>", 'tx')
call assert_equal('testfile1', getline(1))
" <Up>/<Down> to go up/down directories.
! call feedkeys(":e Xdir1/\<Tab>\<Down>\<CR>", 'tx')
call assert_equal('testfile3', getline(1))
! call feedkeys(":e Xdir1/\<Tab>\<Down>\<Up>\<Right>\<CR>", 'tx')
call assert_equal('testfile1', getline(1))
" this fails in some Unix GUIs, not sure why
--- 83,120 ----
endfunc
func Test_complete_wildmenu()
! call mkdir('Xwilddir1/Xdir2', 'p')
! call writefile(['testfile1'], 'Xwilddir1/Xtestfile1')
! call writefile(['testfile2'], 'Xwilddir1/Xtestfile2')
! call writefile(['testfile3'], 'Xwilddir1/Xdir2/Xtestfile3')
! call writefile(['testfile3'], 'Xwilddir1/Xdir2/Xtestfile4')
set wildmenu
" Pressing <Tab> completes, and moves to next files when pressing again.
! call feedkeys(":e Xwilddir1/\<Tab>\<Tab>\<CR>", 'tx')
call assert_equal('testfile1', getline(1))
! call feedkeys(":e Xwilddir1/\<Tab>\<Tab>\<Tab>\<CR>", 'tx')
call assert_equal('testfile2', getline(1))
" <S-Tab> is like <Tab> but begin with the last match and then go to
" previous.
! call feedkeys(":e Xwilddir1/Xtest\<S-Tab>\<CR>", 'tx')
call assert_equal('testfile2', getline(1))
! call feedkeys(":e Xwilddir1/Xtest\<S-Tab>\<S-Tab>\<CR>", 'tx')
call assert_equal('testfile1', getline(1))
" <Left>/<Right> to move to previous/next file.
! call feedkeys(":e Xwilddir1/\<Tab>\<Right>\<CR>", 'tx')
call assert_equal('testfile1', getline(1))
! call feedkeys(":e Xwilddir1/\<Tab>\<Right>\<Right>\<CR>", 'tx')
call assert_equal('testfile2', getline(1))
! call feedkeys(":e Xwilddir1/\<Tab>\<Right>\<Right>\<Left>\<CR>", 'tx')
call assert_equal('testfile1', getline(1))
" <Up>/<Down> to go up/down directories.
! call feedkeys(":e Xwilddir1/\<Tab>\<Down>\<CR>", 'tx')
call assert_equal('testfile3', getline(1))
! call feedkeys(":e Xwilddir1/\<Tab>\<Down>\<Up>\<Right>\<CR>", 'tx')
call assert_equal('testfile1', getline(1))
" this fails in some Unix GUIs, not sure why
***************
*** 124,132 ****
set wildcharm=<C-Z>
cnoremap <C-J> <Down><C-Z>
cnoremap <C-K> <Up><C-Z>
! call feedkeys(":e Xdir1/\<Tab>\<C-J>\<CR>", 'tx')
call assert_equal('testfile3', getline(1))
! call feedkeys(":e Xdir1/\<Tab>\<C-J>\<C-K>\<CR>", 'tx')
call assert_equal('testfile1', getline(1))
set wildcharm=0
cunmap <C-J>
--- 124,132 ----
set wildcharm=<C-Z>
cnoremap <C-J> <Down><C-Z>
cnoremap <C-K> <Up><C-Z>
! call feedkeys(":e Xwilddir1/\<Tab>\<C-J>\<CR>", 'tx')
call assert_equal('testfile3', getline(1))
! call feedkeys(":e Xwilddir1/\<Tab>\<C-J>\<C-K>\<CR>", 'tx')
call assert_equal('testfile1', getline(1))
set wildcharm=0
cunmap <C-J>
***************
*** 135,155 ****
" Test for canceling the wild menu by adding a character
redrawstatus
! call feedkeys(":e Xdir1/\<Tab>x\<C-B>\"\<CR>", 'xt')
! call assert_equal('"e Xdir1/Xdir2/x', @:)
" Completion using a relative path
! cd Xdir1/Xdir2
call feedkeys(":e ../\<Tab>\<Right>\<Down>\<C-A>\<C-B>\"\<CR>", 'tx')
call assert_equal('"e Xtestfile3 Xtestfile4', @:)
cd -
" test for wildmenumode()
cnoremap <expr> <F2> wildmenumode()
! call feedkeys(":cd Xdir\<Tab>\<F2>\<C-B>\"\<CR>", 'tx')
! call assert_equal('"cd Xdir1/0', @:)
! call feedkeys(":e Xdir1/\<Tab>\<F2>\<C-B>\"\<CR>", 'tx')
! call assert_equal('"e Xdir1/Xdir2/1', @:)
cunmap <F2>
" Test for canceling the wild menu by pressing <PageDown> or <PageUp>.
--- 135,155 ----
" Test for canceling the wild menu by adding a character
redrawstatus
! call feedkeys(":e Xwilddir1/\<Tab>x\<C-B>\"\<CR>", 'xt')
! call assert_equal('"e Xwilddir1/Xdir2/x', @:)
" Completion using a relative path
! cd Xwilddir1/Xdir2
call feedkeys(":e ../\<Tab>\<Right>\<Down>\<C-A>\<C-B>\"\<CR>", 'tx')
call assert_equal('"e Xtestfile3 Xtestfile4', @:)
cd -
" test for wildmenumode()
cnoremap <expr> <F2> wildmenumode()
! call feedkeys(":cd Xwilddir\<Tab>\<F2>\<C-B>\"\<CR>", 'tx')
! call assert_equal('"cd Xwilddir1/0', @:)
! call feedkeys(":e Xwilddir1/\<Tab>\<F2>\<C-B>\"\<CR>", 'tx')
! call assert_equal('"e Xwilddir1/Xdir2/1', @:)
cunmap <F2>
" Test for canceling the wild menu by pressing <PageDown> or <PageUp>.
***************
*** 162,168 ****
" cleanup
%bwipe
! call delete('Xdir1', 'rf')
set nowildmenu
endfunc
--- 162,168 ----
" cleanup
%bwipe
! call delete('Xwilddir1', 'rf')
set nowildmenu
endfunc
***************
*** 1930,1947 ****
func Test_wildmenu_dirstack()
CheckUnix
%bw!
! call mkdir('Xdir1/dir2/dir3/dir4', 'p')
! call writefile([], 'Xdir1/file1_1.txt')
! call writefile([], 'Xdir1/file1_2.txt')
! call writefile([], 'Xdir1/dir2/file2_1.txt')
! call writefile([], 'Xdir1/dir2/file2_2.txt')
! call writefile([], 'Xdir1/dir2/dir3/file3_1.txt')
! call writefile([], 'Xdir1/dir2/dir3/file3_2.txt')
! call writefile([], 'Xdir1/dir2/dir3/dir4/file4_1.txt')
! call writefile([], 'Xdir1/dir2/dir3/dir4/file4_2.txt')
set wildmenu
! cd Xdir1/dir2/dir3/dir4
call feedkeys(":e \<Tab>\<C-B>\"\<CR>", 'xt')
call assert_equal('"e file4_1.txt', @:)
call feedkeys(":e \<Tab>\<Up>\<C-B>\"\<CR>", 'xt')
--- 1930,1947 ----
func Test_wildmenu_dirstack()
CheckUnix
%bw!
! call mkdir('Xwildmenu/dir2/dir3/dir4', 'p')
! call writefile([], 'Xwildmenu/file1_1.txt')
! call writefile([], 'Xwildmenu/file1_2.txt')
! call writefile([], 'Xwildmenu/dir2/file2_1.txt')
! call writefile([], 'Xwildmenu/dir2/file2_2.txt')
! call writefile([], 'Xwildmenu/dir2/dir3/file3_1.txt')
! call writefile([], 'Xwildmenu/dir2/dir3/file3_2.txt')
! call writefile([], 'Xwildmenu/dir2/dir3/dir4/file4_1.txt')
! call writefile([], 'Xwildmenu/dir2/dir3/dir4/file4_2.txt')
set wildmenu
! cd Xwildmenu/dir2/dir3/dir4
call feedkeys(":e \<Tab>\<C-B>\"\<CR>", 'xt')
call assert_equal('"e file4_1.txt', @:)
call feedkeys(":e \<Tab>\<Up>\<C-B>\"\<CR>", 'xt')
***************
*** 1955,1964 ****
call feedkeys(":e \<Tab>\<Up>\<Up>\<Down>\<Down>\<C-B>\"\<CR>", 'xt')
call assert_equal('"e ../../dir3/dir4/file4_1.txt', @:)
cd -
! call feedkeys(":e Xdir1/\<Tab>\<Down>\<Down>\<Down>\<C-B>\"\<CR>", 'xt')
! call assert_equal('"e Xdir1/dir2/dir3/dir4/file4_1.txt', @:)
! call delete('Xdir1', 'rf')
set wildmenu&
endfunc
--- 1955,1964 ----
call feedkeys(":e \<Tab>\<Up>\<Up>\<Down>\<Down>\<C-B>\"\<CR>", 'xt')
call assert_equal('"e ../../dir3/dir4/file4_1.txt', @:)
cd -
! call feedkeys(":e Xwildmenu/\<Tab>\<Down>\<Down>\<Down>\<C-B>\"\<CR>", 'xt')
! call assert_equal('"e Xwildmenu/dir2/dir3/dir4/file4_1.txt', @:)
! call delete('Xwildmenu', 'rf')
set wildmenu&
endfunc
*** ../vim-9.0.0322/src/testdir/test_delete.vim 2021-01-28 13:49:24.000000000
+0000
--- src/testdir/test_delete.vim 2022-08-29 21:07:08.635627164 +0100
***************
*** 14,45 ****
endfunc
func Test_dir_delete()
! call mkdir('Xdir1')
! call assert_true(isdirectory('Xdir1'))
! call assert_equal(0, delete('Xdir1', 'd'))
! call assert_false(isdirectory('Xdir1'))
! call assert_equal(-1, delete('Xdir1', 'd'))
endfunc
func Test_recursive_delete()
! call mkdir('Xdir1')
! call mkdir('Xdir1/subdir')
! call mkdir('Xdir1/empty')
! split Xdir1/Xfile
call setline(1, ['a', 'b'])
w
! w Xdir1/subdir/Xfile
close
! call assert_true(isdirectory('Xdir1'))
! call assert_equal(['a', 'b'], readfile('Xdir1/Xfile'))
! call assert_true(isdirectory('Xdir1/subdir'))
! call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile'))
! call assert_true('Xdir1/empty'->isdirectory())
! call assert_equal(0, delete('Xdir1', 'rf'))
! call assert_false(isdirectory('Xdir1'))
! call assert_equal(-1, delete('Xdir1', 'd'))
! bwipe Xdir1/Xfile
! bwipe Xdir1/subdir/Xfile
endfunc
func Test_symlink_delete()
--- 14,45 ----
endfunc
func Test_dir_delete()
! call mkdir('Xdirdel')
! call assert_true(isdirectory('Xdirdel'))
! call assert_equal(0, delete('Xdirdel', 'd'))
! call assert_false(isdirectory('Xdirdel'))
! call assert_equal(-1, delete('Xdirdel', 'd'))
endfunc
func Test_recursive_delete()
! call mkdir('Xrecdel')
! call mkdir('Xrecdel/subdir')
! call mkdir('Xrecdel/empty')
! split Xrecdel/Xfile
call setline(1, ['a', 'b'])
w
! w Xrecdel/subdir/Xfile
close
! call assert_true(isdirectory('Xrecdel'))
! call assert_equal(['a', 'b'], readfile('Xrecdel/Xfile'))
! call assert_true(isdirectory('Xrecdel/subdir'))
! call assert_equal(['a', 'b'], readfile('Xrecdel/subdir/Xfile'))
! call assert_true('Xrecdel/empty'->isdirectory())
! call assert_equal(0, delete('Xrecdel', 'rf'))
! call assert_false(isdirectory('Xrecdel'))
! call assert_equal(-1, delete('Xrecdel', 'd'))
! bwipe Xrecdel/Xfile
! bwipe Xrecdel/subdir/Xfile
endfunc
func Test_symlink_delete()
***************
*** 47,105 ****
split Xfile
call setline(1, ['a', 'b'])
wq
! silent !ln -s Xfile Xlink
" Delete the link, not the file
! call assert_equal(0, delete('Xlink'))
! call assert_equal(-1, delete('Xlink'))
call assert_equal(0, delete('Xfile'))
bwipe Xfile
endfunc
func Test_symlink_dir_delete()
CheckUnix
! call mkdir('Xdir1')
! silent !ln -s Xdir1 Xlink
! call assert_true(isdirectory('Xdir1'))
! call assert_true(isdirectory('Xlink'))
" Delete the link, not the directory
! call assert_equal(0, delete('Xlink'))
! call assert_equal(-1, delete('Xlink'))
! call assert_equal(0, delete('Xdir1', 'd'))
endfunc
func Test_symlink_recursive_delete()
CheckUnix
! call mkdir('Xdir3')
! call mkdir('Xdir3/subdir')
! call mkdir('Xdir4')
! split Xdir3/Xfile
call setline(1, ['a', 'b'])
w
! w Xdir3/subdir/Xfile
! w Xdir4/Xfile
close
! silent !ln -s ../Xdir4 Xdir3/Xlink
! call assert_true(isdirectory('Xdir3'))
! call assert_equal(['a', 'b'], readfile('Xdir3/Xfile'))
! call assert_true(isdirectory('Xdir3/subdir'))
! call assert_equal(['a', 'b'], readfile('Xdir3/subdir/Xfile'))
! call assert_true(isdirectory('Xdir4'))
! call assert_true(isdirectory('Xdir3/Xlink'))
! call assert_equal(['a', 'b'], readfile('Xdir4/Xfile'))
!
! call assert_equal(0, delete('Xdir3', 'rf'))
! call assert_false(isdirectory('Xdir3'))
! call assert_equal(-1, delete('Xdir3', 'd'))
" symlink is deleted, not the directory it points to
! call assert_true(isdirectory('Xdir4'))
! call assert_equal(['a', 'b'], readfile('Xdir4/Xfile'))
! call assert_equal(0, delete('Xdir4/Xfile'))
! call assert_equal(0, delete('Xdir4', 'd'))
!
! bwipe Xdir3/Xfile
! bwipe Xdir3/subdir/Xfile
! bwipe Xdir4/Xfile
endfunc
func Test_delete_errors()
--- 47,105 ----
split Xfile
call setline(1, ['a', 'b'])
wq
! silent !ln -s Xfile Xdellink
" Delete the link, not the file
! call assert_equal(0, delete('Xdellink'))
! call assert_equal(-1, delete('Xdellink'))
call assert_equal(0, delete('Xfile'))
bwipe Xfile
endfunc
func Test_symlink_dir_delete()
CheckUnix
! call mkdir('Xsymdir')
! silent !ln -s Xsymdir Xdirlink
! call assert_true(isdirectory('Xsymdir'))
! call assert_true(isdirectory('Xdirlink'))
" Delete the link, not the directory
! call assert_equal(0, delete('Xdirlink'))
! call assert_equal(-1, delete('Xdirlink'))
! call assert_equal(0, delete('Xsymdir', 'd'))
endfunc
func Test_symlink_recursive_delete()
CheckUnix
! call mkdir('Xrecdir3')
! call mkdir('Xrecdir3/subdir')
! call mkdir('Xrecdir4')
! split Xrecdir3/Xfile
call setline(1, ['a', 'b'])
w
! w Xrecdir3/subdir/Xfile
! w Xrecdir4/Xfile
close
! silent !ln -s ../Xrecdir4 Xrecdir3/Xreclink
! call assert_true(isdirectory('Xrecdir3'))
! call assert_equal(['a', 'b'], readfile('Xrecdir3/Xfile'))
! call assert_true(isdirectory('Xrecdir3/subdir'))
! call assert_equal(['a', 'b'], readfile('Xrecdir3/subdir/Xfile'))
! call assert_true(isdirectory('Xrecdir4'))
! call assert_true(isdirectory('Xrecdir3/Xreclink'))
! call assert_equal(['a', 'b'], readfile('Xrecdir4/Xfile'))
!
! call assert_equal(0, delete('Xrecdir3', 'rf'))
! call assert_false(isdirectory('Xrecdir3'))
! call assert_equal(-1, delete('Xrecdir3', 'd'))
" symlink is deleted, not the directory it points to
! call assert_true(isdirectory('Xrecdir4'))
! call assert_equal(['a', 'b'], readfile('Xrecdir4/Xfile'))
! call assert_equal(0, delete('Xrecdir4/Xfile'))
! call assert_equal(0, delete('Xrecdir4', 'd'))
!
! bwipe Xrecdir3/Xfile
! bwipe Xrecdir3/subdir/Xfile
! bwipe Xrecdir4/Xfile
endfunc
func Test_delete_errors()
*** ../vim-9.0.0322/src/testdir/test_edit.vim 2022-07-26 18:12:35.094727070
+0100
--- src/testdir/test_edit.vim 2022-08-29 21:14:31.174136825 +0100
***************
*** 1492,1498 ****
" Long directory names only work on Unix.
CheckUnix
! let dirname = getcwd() . "/Xdir"
let longdirname = dirname . repeat('/' . repeat('d', 255), 4)
try
call mkdir(longdirname, 'p')
--- 1492,1498 ----
" Long directory names only work on Unix.
CheckUnix
! let dirname = getcwd() . "/Xlongdir"
let longdirname = dirname . repeat('/' . repeat('d', 255), 4)
try
call mkdir(longdirname, 'p')
***************
*** 1729,1735 ****
" Test for editing a directory
func Test_edit_is_a_directory()
CheckEnglish
! let dirname = getcwd() . "/Xdir"
call mkdir(dirname, 'p')
new
--- 1729,1735 ----
" Test for editing a directory
func Test_edit_is_a_directory()
CheckEnglish
! let dirname = getcwd() . "/Xeditdir"
call mkdir(dirname, 'p')
new
*** ../vim-9.0.0322/src/testdir/test_excmd.vim 2022-07-26 19:44:52.916896633
+0100
--- src/testdir/test_excmd.vim 2022-08-29 21:15:27.562470759 +0100
***************
*** 489,497 ****
if has('unix')
" Redirecting to a directory name
! call mkdir('Xdir')
! call assert_fails('redir > Xdir', 'E17:')
! call delete('Xdir', 'd')
endif
" Test for redirecting to a register
--- 489,497 ----
if has('unix')
" Redirecting to a directory name
! call mkdir('Xredir')
! call assert_fails('redir > Xredir', 'E17:')
! call delete('Xredir', 'd')
endif
" Test for redirecting to a register
*** ../vim-9.0.0322/src/testdir/test_findfile.vim 2021-07-25
13:56:59.000000000 +0100
--- src/testdir/test_findfile.vim 2022-08-29 21:16:47.370884052 +0100
***************
*** 1,14 ****
" Test findfile() and finddir()
! let s:files = [ 'Xdir1/foo',
! \ 'Xdir1/bar',
! \ 'Xdir1/Xdir2/foo',
! \ 'Xdir1/Xdir2/foobar',
! \ 'Xdir1/Xdir2/Xdir3/bar',
! \ 'Xdir1/Xdir2/Xdir3/barfoo' ]
func CreateFiles()
! call mkdir('Xdir1/Xdir2/Xdir3/Xdir2', 'p')
for f in s:files
call writefile([], f)
endfor
--- 1,14 ----
" Test findfile() and finddir()
! let s:files = [ 'Xfinddir1/foo',
! \ 'Xfinddir1/bar',
! \ 'Xfinddir1/Xdir2/foo',
! \ 'Xfinddir1/Xdir2/foobar',
! \ 'Xfinddir1/Xdir2/Xdir3/bar',
! \ 'Xfinddir1/Xdir2/Xdir3/barfoo' ]
func CreateFiles()
! call mkdir('Xfinddir1/Xdir2/Xdir3/Xdir2', 'p')
for f in s:files
call writefile([], f)
endfor
***************
*** 16,30 ****
func CleanFiles()
" Safer to delete each file even if it's more verbose
! " than doing a recursive delete('Xdir1', 'rf').
for f in s:files
call delete(f)
endfor
! call delete('Xdir1/Xdir2/Xdir3/Xdir2', 'd')
! call delete('Xdir1/Xdir2/Xdir3', 'd')
! call delete('Xdir1/Xdir2', 'd')
! call delete('Xdir1', 'd')
endfunc
" Test findfile({name} [, {path} [, {count}]])
--- 16,30 ----
func CleanFiles()
" Safer to delete each file even if it's more verbose
! " than doing a recursive delete('Xfinddir1', 'rf').
for f in s:files
call delete(f)
endfor
! call delete('Xfinddir1/Xdir2/Xdir3/Xdir2', 'd')
! call delete('Xfinddir1/Xdir2/Xdir3', 'd')
! call delete('Xfinddir1/Xdir2', 'd')
! call delete('Xfinddir1', 'd')
endfunc
" Test findfile({name} [, {path} [, {count}]])
***************
*** 34,40 ****
let save_dir = getcwd()
set shellslash
call CreateFiles()
! cd Xdir1
e Xdir2/foo
" With ,, in path, findfile() searches in current directory.
--- 34,40 ----
let save_dir = getcwd()
set shellslash
call CreateFiles()
! cd Xfinddir1
e Xdir2/foo
" With ,, in path, findfile() searches in current directory.
***************
*** 83,116 ****
" Test upwards search.
cd Xdir2/Xdir3
call assert_equal('bar', findfile('bar', ';'))
! call assert_match('.*/Xdir1/Xdir2/foo', findfile('foo', ';'))
! call assert_match('.*/Xdir1/Xdir2/foo', findfile('foo', ';', 1))
! call assert_match('.*/Xdir1/foo', findfile('foo', ';', 2))
! call assert_match('.*/Xdir1/foo', findfile('foo', ';', 2))
! call assert_match('.*/Xdir1/Xdir2/foo', findfile('foo', 'Xdir2;', 1))
call assert_equal('', findfile('foo', 'Xdir2;', 2))
" List l should have at least 2 values (possibly more if foo file
! " happens to be found upwards above Xdir1).
let l = findfile('foo', ';', -1)
! call assert_match('.*/Xdir1/Xdir2/foo', l[0])
! call assert_match('.*/Xdir1/foo', l[1])
" Test upwards search with stop-directory.
cd Xdir2
! let l = findfile('bar', ';' . save_dir . '/Xdir1/Xdir2/', -1)
call assert_equal(1, len(l))
! call assert_match('.*/Xdir1/Xdir2/Xdir3/bar', l[0])
! let l = findfile('bar', ';' . save_dir . '/Xdir1/', -1)
call assert_equal(2, len(l))
! call assert_match('.*/Xdir1/Xdir2/Xdir3/bar', l[0])
! call assert_match('.*/Xdir1/bar', l[1])
" Test combined downwards and upwards search from Xdir2/.
cd ../..
call assert_equal('Xdir3/bar', findfile('bar', '**;', 1))
! call assert_match('.*/Xdir1/bar', findfile('bar', '**;', 2))
bwipe!
call chdir(save_dir)
--- 83,116 ----
" Test upwards search.
cd Xdir2/Xdir3
call assert_equal('bar', findfile('bar', ';'))
! call assert_match('.*/Xfinddir1/Xdir2/foo', findfile('foo', ';'))
! call assert_match('.*/Xfinddir1/Xdir2/foo', findfile('foo', ';', 1))
! call assert_match('.*/Xfinddir1/foo', findfile('foo', ';', 2))
! call assert_match('.*/Xfinddir1/foo', findfile('foo', ';', 2))
! call assert_match('.*/Xfinddir1/Xdir2/foo', findfile('foo', 'Xdir2;', 1))
call assert_equal('', findfile('foo', 'Xdir2;', 2))
" List l should have at least 2 values (possibly more if foo file
! " happens to be found upwards above Xfinddir1).
let l = findfile('foo', ';', -1)
! call assert_match('.*/Xfinddir1/Xdir2/foo', l[0])
! call assert_match('.*/Xfinddir1/foo', l[1])
" Test upwards search with stop-directory.
cd Xdir2
! let l = findfile('bar', ';' . save_dir . '/Xfinddir1/Xdir2/', -1)
call assert_equal(1, len(l))
! call assert_match('.*/Xfinddir1/Xdir2/Xdir3/bar', l[0])
! let l = findfile('bar', ';' . save_dir . '/Xfinddir1/', -1)
call assert_equal(2, len(l))
! call assert_match('.*/Xfinddir1/Xdir2/Xdir3/bar', l[0])
! call assert_match('.*/Xfinddir1/bar', l[1])
" Test combined downwards and upwards search from Xdir2/.
cd ../..
call assert_equal('Xdir3/bar', findfile('bar', '**;', 1))
! call assert_match('.*/Xfinddir1/bar', findfile('bar', '**;', 2))
bwipe!
call chdir(save_dir)
***************
*** 134,140 ****
let save_dir = getcwd()
set path=,,
call CreateFiles()
! cd Xdir1
call assert_equal('Xdir2', finddir('Xdir2'))
call assert_equal('', 'Xdir3'->finddir())
--- 134,140 ----
let save_dir = getcwd()
set path=,,
call CreateFiles()
! cd Xfinddir1
call assert_equal('Xdir2', finddir('Xdir2'))
call assert_equal('', 'Xdir3'->finddir())
***************
*** 157,173 ****
" Test upwards dir search.
cd Xdir2/Xdir3
! call assert_match('.*/Xdir1', finddir('Xdir1', ';'))
" Test upwards search with stop-directory.
! call assert_match('.*/Xdir1', finddir('Xdir1', ';' . save_dir . '/'))
! call assert_equal('', finddir('Xdir1', ';' . save_dir . '/Xdir1/'))
" Test combined downwards and upwards dir search from Xdir2/.
cd ..
! call assert_match('.*/Xdir1', finddir('Xdir1', '**;', 1))
call assert_equal('Xdir3/Xdir2', finddir('Xdir2', '**;', 1))
! call assert_match('.*/Xdir1/Xdir2', finddir('Xdir2', '**;', 2))
call assert_equal('Xdir3', finddir('Xdir3', '**;', 1))
call chdir(save_dir)
--- 157,173 ----
" Test upwards dir search.
cd Xdir2/Xdir3
! call assert_match('.*/Xfinddir1', finddir('Xfinddir1', ';'))
" Test upwards search with stop-directory.
! call assert_match('.*/Xfinddir1', finddir('Xfinddir1', ';' . save_dir .
'/'))
! call assert_equal('', finddir('Xfinddir1', ';' . save_dir .
'/Xfinddir1/'))
" Test combined downwards and upwards dir search from Xdir2/.
cd ..
! call assert_match('.*/Xfinddir1', finddir('Xfinddir1', '**;', 1))
call assert_equal('Xdir3/Xdir2', finddir('Xdir2', '**;', 1))
! call assert_match('.*/Xfinddir1/Xdir2', finddir('Xdir2', '**;', 2))
call assert_equal('Xdir3', finddir('Xdir3', '**;', 1))
call chdir(save_dir)
***************
*** 191,197 ****
let save_dir = getcwd()
set path=.,./**/*
call CreateFiles()
! cd Xdir1
" Test for :find
find foo
--- 191,197 ----
let save_dir = getcwd()
set path=.,./**/*
call CreateFiles()
! cd Xfinddir1
" Test for :find
find foo
*** ../vim-9.0.0322/src/testdir/test_functions.vim 2022-08-26
15:34:48.248902161 +0100
--- src/testdir/test_functions.vim 2022-08-29 21:30:52.360830425 +0100
***************
*** 347,355 ****
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 Xlink2/ Xlink1
call assert_equal('Xlink2', 'Xlink1'->resolve())
--- 347,355 ----
call delete('Xlink2')
call delete('Xlink3')
! 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,396 ****
" test for shortcut file
if executable('cscript')
! new Xfile
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.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() . '\Xfile'),
s:normalize_fname(resolve('./Xlink.lnk')))
call delete('Xlink.lnk')
else
echomsg 'skipped test for shortcut file'
--- 375,396 ----
" test for shortcut file
if executable('cscript')
! 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, "Xresfile")
shortcut.Save
END
call writefile(lines, 'link.vbs')
silent !cscript link.vbs
call delete('link.vbs')
! call assert_equal(s:normalize_fname(getcwd() . '\Xresfile'),
s:normalize_fname(resolve('./Xlink.lnk')))
! call delete('Xresfile')
! 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,449 ****
" remove files
call delete('Xlink')
! call delete('Xdir', 'd')
! call delete('Xfile')
" test for symbolic link to a file
! new Xfile
wq
! call assert_equal('Xfile', resolve('Xfile'))
! silent !mklink Xlink Xfile
if !v:shell_error
! call assert_equal(s:normalize_fname(getcwd() . '\Xfile'),
s:normalize_fname(resolve('./Xlink')))
call delete('Xlink')
else
echomsg 'skipped test for symbolic link to a file'
endif
! call delete('Xfile')
" test for junction to a directory
! call mkdir('Xdir')
! silent !mklink /J Xlink Xdir
if !v:shell_error
! call assert_equal(s:normalize_fname(getcwd() . '\Xdir'),
s:normalize_fname(resolve(getcwd() . '/Xlink')))
! call delete('Xdir', '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')
endif
" test for symbolic link to a directory
! call mkdir('Xdir')
! silent !mklink /D Xlink Xdir
if !v:shell_error
! call assert_equal(s:normalize_fname(getcwd() . '\Xdir'),
s:normalize_fname(resolve(getcwd() . '/Xlink')))
! call delete('Xdir', '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')
endif
" test for buffer name
--- 398,448 ----
" remove files
call delete('Xlink')
! call delete('Xresfile')
" test for symbolic link to a file
! new Xslinkfile
wq
! call assert_equal('Xslinkfile', resolve('Xslinkfile'))
! silent !mklink Xlink Xslinkfile
if !v:shell_error
! 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('Xslinkfile')
" test for junction to a directory
! call mkdir('Xjuncdir')
! silent !mklink /J Xlink Xjuncdir
if !v:shell_error
! call assert_equal(s:normalize_fname(getcwd() . '\Xjuncdir'),
s:normalize_fname(resolve(getcwd() . '/Xlink')))
! 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('Xjuncdir', 'd')
endif
" test for symbolic link to a directory
! call mkdir('Xjuncdir')
! silent !mklink /D Xlink Xjuncdir
if !v:shell_error
! call assert_equal(s:normalize_fname(getcwd() . '\Xjuncdir'),
s:normalize_fname(resolve(getcwd() . '/Xlink')))
! 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('Xjuncdir', 'd')
endif
" test for buffer name
***************
*** 461,480 ****
call delete('Xfile')
" test for reparse point
! call mkdir('Xdir')
! call assert_equal('Xdir', resolve('Xdir'))
! silent !mklink /D Xdirlink Xdir
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')))
call delete('Xdirlink')
else
echomsg 'skipped test for reparse point'
endif
! call delete('Xdir', 'rf')
endfunc
func Test_simplify()
--- 460,479 ----
call delete('Xfile')
" test for reparse point
! call mkdir('Xparsedir')
! call assert_equal('Xdir', resolve('Xparsedir'))
! silent !mklink /D Xdirlink Xparsedir
if !v:shell_error
! 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('Xparsedir', 'rf')
endfunc
func Test_simplify()
***************
*** 497,505 ****
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 assert_fails('call simplify({->0})', 'E729:')
call assert_fails('call simplify([])', 'E730:')
--- 496,504 ----
call assert_equal('./file', simplify('dir/.././file'))
call assert_equal('../dir', simplify('./../dir'))
call assert_equal('..', simplify('../testdir/..'))
! 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,1344 ****
call assert_equal(0, filewritable('doesnotexist'))
! call mkdir('Xdir')
! call assert_equal(2, filewritable('Xdir'))
! call delete('Xdir', 'd')
call delete('Xfilewritable')
bw!
--- 1335,1343 ----
call assert_equal(0, filewritable('doesnotexist'))
! call mkdir('Xwritedir')
! call assert_equal(2, filewritable('Xwritedir'))
! call delete('Xwritedir', 'd')
call delete('Xfilewritable')
bw!
***************
*** 1364,1380 ****
bwipe
" create "notepad.bat"
! call mkdir('Xdir')
! let notepadbat = fnamemodify('Xdir/notepad.bat', ':p')
call writefile([], notepadbat)
new
" check that the path and the pathext order is valid
! lcd Xdir
let [pathext, $PATHEXT] = [$PATHEXT, '.com;.exe;.bat;.cmd']
call assert_equal(notepadbat, exepath('notepad'))
let $PATHEXT = pathext
bwipe
! eval 'Xdir'->delete('rf')
elseif has('unix')
call assert_equal(1, 'cat'->executable())
call assert_equal(0, executable('nodogshere'))
--- 1363,1379 ----
bwipe
" create "notepad.bat"
! 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 Xnotedir
let [pathext, $PATHEXT] = [$PATHEXT, '.com;.exe;.bat;.cmd']
call assert_equal(notepadbat, exepath('notepad'))
let $PATHEXT = pathext
bwipe
! eval 'Xnotedir'->delete('rf')
elseif has('unix')
call assert_equal(1, 'cat'->executable())
call assert_equal(0, executable('nodogshere'))
***************
*** 2073,2160 ****
endfunc
func Test_readdir()
! call mkdir('Xdir')
! call writefile([], 'Xdir/foo.txt')
! call writefile([], 'Xdir/bar.txt')
! call mkdir('Xdir/dir')
" All results
! let files = readdir('Xdir')
call assert_equal(['bar.txt', 'dir', 'foo.txt'], sort(files))
" Only results containing "f"
! let files = 'Xdir'->readdir({ x -> stridx(x, 'f') != -1 })
call assert_equal(['foo.txt'], sort(files))
" Only .txt files
! let files = readdir('Xdir', { x -> x =~ '.txt$' })
call assert_equal(['bar.txt', 'foo.txt'], sort(files))
" Only .txt files with string
! let files = readdir('Xdir', '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})
call assert_equal(1, len(files))
" Nested readdir() must not crash
! let files = readdir('Xdir', 'readdir("Xdir", "1") != []')
call sort(files)->assert_equal(['bar.txt', 'dir', 'foo.txt'])
! eval 'Xdir'->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')
" All results
! let files = readdirex('Xdir')->map({-> v:val.name})
call assert_equal(['bar.txt', 'dir', 'foo.txt'], sort(files))
! let sizes = readdirex('Xdir')->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 })
\ ->map({-> v:val.name})
call assert_equal(['foo.txt'], sort(files))
" Only .txt files
! let files = readdirex('Xdir', { 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$"')
\ ->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})
\ ->map({-> v:val.name})
call assert_equal(1, len(files))
" Nested readdirex() must not crash
! let files = readdirex('Xdir', 'readdirex("Xdir", "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") != []')
\ ->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')
call assert_fails('call readdirex("doesnotexist")', 'E484:')
endfunc
--- 2072,2159 ----
endfunc
func Test_readdir()
! call mkdir('Xreaddir')
! call writefile([], 'Xreaddir/foo.txt')
! call writefile([], 'Xreaddir/bar.txt')
! call mkdir('Xreaddir/dir')
" All results
! let files = readdir('Xreaddir')
call assert_equal(['bar.txt', 'dir', 'foo.txt'], sort(files))
" Only results containing "f"
! let files = 'Xreaddir'->readdir({ x -> stridx(x, 'f') != -1 })
call assert_equal(['foo.txt'], sort(files))
" Only .txt files
! let files = readdir('Xreaddir', { x -> x =~ '.txt$' })
call assert_equal(['bar.txt', 'foo.txt'], sort(files))
" Only .txt files with string
! 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('Xreaddir', {x -> len(add(l, x)) == 2 ? -1 : 1})
call assert_equal(1, len(files))
" 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 writefile(['foo'], 'Xexdir/foo.txt')
! call writefile(['barbar'], 'Xexdir/bar.txt')
! call mkdir('Xexdir/dir')
" All results
! let files = readdirex('Xexdir')->map({-> v:val.name})
call assert_equal(['bar.txt', 'dir', 'foo.txt'], sort(files))
! let sizes = readdirex('Xexdir')->map({-> v:val.size})
call assert_equal([0, 4, 7], sort(sizes))
" Only results containing "f"
! 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('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('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('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('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([], '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 'Xexdir'->delete('rf')
call assert_fails('call readdirex("doesnotexist")', 'E484:')
endfunc
***************
*** 2166,2199 ****
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')
" 1) default
! let files = readdirex('Xdir2')->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 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')
" 3) sort by case (same as default)
! let files = readdirex('Xdir2', 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})
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})
call assert_equal(['README.txt', 'Readme.txt', 'readme.txt'], files, 'sort
by C collation')
" 6) Collation de_DE
--- 2165,2198 ----
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 writefile(['1'], 'Xsortdir2/README.txt')
! call writefile(['2'], 'Xsortdir2/Readme.txt')
! call writefile(['3'], 'Xsortdir2/readme.txt')
" 1) default
! 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('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('Xsortdir2', 1, #{slort: 'none'})",
'E857: Dictionary key "sort" required')
" 3) sort by case (same as default)
! 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('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('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,2220 ****
" available
try
lang collate de_DE
! let files = readdirex('Xdir2', 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')
endtry
endfunc
func Test_readdir_sort()
" some more cases for testing sorting for readdirex
! let dir = 'Xdir3'
call mkdir(dir)
call writefile(['1'], dir .. '/README.txt')
call writefile(['2'], dir .. '/Readm.txt')
--- 2200,2219 ----
" available
try
lang collate de_DE
! 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 'Xsortdir2'->delete('rf')
endtry
endfunc
func Test_readdir_sort()
" some more cases for testing sorting for readdirex
! let dir = 'Xsortdir3'
call mkdir(dir)
call writefile(['1'], dir .. '/README.txt')
call writefile(['2'], dir .. '/Readm.txt')
***************
*** 2259,2284 ****
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 assert_equal(0, delete('Xdir', 'rf'))
! call assert_false(filereadable('Xdir/foo.txt'))
! call assert_false(filereadable('Xdir/[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'))
endif
endfunc
--- 2258,2283 ----
endfunc
func Test_delete_rf()
! 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('Xrfdir', 'rf'))
! call assert_false(filereadable('Xrfdir/foo.txt'))
! call assert_false(filereadable('Xrfdir/[a-1]/foo.txt'))
if has('unix')
! 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
*** ../vim-9.0.0322/src/testdir/test_getcwd.vim 2020-08-12 17:43:41.000000000
+0100
--- src/testdir/test_getcwd.vim 2022-08-29 21:31:48.196875701 +0100
***************
*** 40,48 ****
eval 'Xtopdir'->mkdir()
cd Xtopdir
let g:topdir = getcwd()
! call mkdir('Xdir1')
! call mkdir('Xdir2')
! call mkdir('Xdir3')
endfunction
let g:cwd=getcwd()
--- 40,48 ----
eval 'Xtopdir'->mkdir()
cd Xtopdir
let g:topdir = getcwd()
! call mkdir('Xcwdir1')
! call mkdir('Xcwdir2')
! call mkdir('Xcwdir3')
endfunction
let g:cwd=getcwd()
***************
*** 57,79 ****
new b
new c
3wincmd w
! lcd Xdir1
! call assert_equal("a Xdir1 1", GetCwdInfo(0, 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W
call assert_equal("b Xtopdir 0", GetCwdInfo(0, 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W
! lcd Xdir3
! call assert_equal("c Xdir3 1", GetCwdInfo(0, 0))
! call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), 0))
call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), 0))
! call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W
! call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), tabpagenr()))
call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), tabpagenr()))
! call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), tabpagenr()))
call assert_equal(g:topdir, getcwd(-1))
tabnew x
--- 57,79 ----
new b
new c
3wincmd w
! lcd Xcwdir1
! call assert_equal("a Xcwdir1 1", GetCwdInfo(0, 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W
call assert_equal("b Xtopdir 0", GetCwdInfo(0, 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W
! lcd Xcwdir3
! call assert_equal("c Xcwdir3 1", GetCwdInfo(0, 0))
! call assert_equal("a Xcwdir1 1", GetCwdInfo(bufwinnr("a"), 0))
call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), 0))
! call assert_equal("c Xcwdir3 1", GetCwdInfo(bufwinnr("c"), 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W
! call assert_equal("a Xcwdir1 1", GetCwdInfo(bufwinnr("a"), tabpagenr()))
call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), tabpagenr()))
! call assert_equal("c Xcwdir3 1", GetCwdInfo(bufwinnr("c"), tabpagenr()))
call assert_equal(g:topdir, getcwd(-1))
tabnew x
***************
*** 83,103 ****
call assert_equal("x Xtopdir 0", GetCwdInfo(0, 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W
! lcd Xdir2
! call assert_equal("y Xdir2 1", GetCwdInfo(0, 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W
! lcd Xdir3
! call assert_equal("z Xdir3 1", GetCwdInfo(0, 0))
call assert_equal("x Xtopdir 0", GetCwdInfo(bufwinnr("x"), 0))
! call assert_equal("y Xdir2 1", GetCwdInfo(bufwinnr("y"), 0))
! call assert_equal("z Xdir3 1", GetCwdInfo(bufwinnr("z"), 0))
call assert_equal(g:topdir, getcwd(-1))
let tp_nr = tabpagenr()
tabrewind
call assert_equal("x Xtopdir 0", GetCwdInfo(3, tp_nr))
! call assert_equal("y Xdir2 1", GetCwdInfo(2, tp_nr))
! call assert_equal("z Xdir3 1", GetCwdInfo(1, tp_nr))
call assert_equal(g:topdir, getcwd(-1))
" Non existing windows and tab pages
call assert_equal('', getcwd(100))
--- 83,103 ----
call assert_equal("x Xtopdir 0", GetCwdInfo(0, 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W
! lcd Xcwdir2
! call assert_equal("y Xcwdir2 1", GetCwdInfo(0, 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W
! lcd Xcwdir3
! call assert_equal("z Xcwdir3 1", GetCwdInfo(0, 0))
call assert_equal("x Xtopdir 0", GetCwdInfo(bufwinnr("x"), 0))
! call assert_equal("y Xcwdir2 1", GetCwdInfo(bufwinnr("y"), 0))
! call assert_equal("z Xcwdir3 1", GetCwdInfo(bufwinnr("z"), 0))
call assert_equal(g:topdir, getcwd(-1))
let tp_nr = tabpagenr()
tabrewind
call assert_equal("x Xtopdir 0", GetCwdInfo(3, tp_nr))
! call assert_equal("y Xcwdir2 1", GetCwdInfo(2, tp_nr))
! call assert_equal("z Xcwdir3 1", GetCwdInfo(1, tp_nr))
call assert_equal(g:topdir, getcwd(-1))
" Non existing windows and tab pages
call assert_equal('', getcwd(100))
***************
*** 241,264 ****
" Change the global directory for the first tab page
tabrewind | 1wincmd w
! cd ../Xdir1
! call assert_equal("a Xdir1 0", GetCwdInfo(1, 1))
! call assert_equal("b Xdir1 0", GetCwdInfo(2, 1))
call assert_equal("m Xtabdir1 2", GetCwdInfo(1, 2))
call assert_equal("n Xwindir2 1", GetCwdInfo(2, 2))
" Change the global directory for the second tab page
tabnext | 1wincmd w
! cd ../Xdir3
! call assert_equal("m Xdir3 0", GetCwdInfo(1, 2))
call assert_equal("n Xwindir2 1", GetCwdInfo(2, 2))
! call assert_equal("o Xdir3 0", GetCwdInfo(3, 2))
" Change the tab-local directory for the third tab page
tabnext | 1wincmd w
! cd ../Xdir1
! call assert_equal("x Xdir1 0", GetCwdInfo(1, 3))
! call assert_equal("y Xdir1 0", GetCwdInfo(2, 3))
call assert_equal("z Xwindir3 1", GetCwdInfo(3, 3))
enew | only | tabonly
--- 241,264 ----
" Change the global directory for the first tab page
tabrewind | 1wincmd w
! cd ../Xcwdir1
! call assert_equal("a Xcwdir1 0", GetCwdInfo(1, 1))
! call assert_equal("b Xcwdir1 0", GetCwdInfo(2, 1))
call assert_equal("m Xtabdir1 2", GetCwdInfo(1, 2))
call assert_equal("n Xwindir2 1", GetCwdInfo(2, 2))
" Change the global directory for the second tab page
tabnext | 1wincmd w
! cd ../Xcwdir3
! call assert_equal("m Xcwdir3 0", GetCwdInfo(1, 2))
call assert_equal("n Xwindir2 1", GetCwdInfo(2, 2))
! call assert_equal("o Xcwdir3 0", GetCwdInfo(3, 2))
" Change the tab-local directory for the third tab page
tabnext | 1wincmd w
! cd ../Xcwdir1
! call assert_equal("x Xcwdir1 0", GetCwdInfo(1, 3))
! call assert_equal("y Xcwdir1 0", GetCwdInfo(2, 3))
call assert_equal("z Xwindir3 1", GetCwdInfo(3, 3))
enew | only | tabonly
*** ../vim-9.0.0322/src/testdir/test_gui.vim 2022-08-28 13:38:40.145369135
+0100
--- src/testdir/test_gui.vim 2022-08-29 21:35:45.233017506 +0100
***************
*** 1400,1435 ****
%argdelete
" pressing shift when dropping files should change directory
let save_cwd = getcwd()
! call mkdir('Xdir1')
! call writefile([], 'Xdir1/Xfile1')
! call writefile([], 'Xdir1/Xfile2')
! let d = #{files: ['Xdir1/Xfile1', 'Xdir1/Xfile2'], row: 1, col: 1,
\ modifiers: 0x4}
call test_gui_event('dropfiles', d)
! call assert_equal('Xdir1', fnamemodify(getcwd(), ':t'))
call assert_equal('Xfile1', @%)
call chdir(save_cwd)
" pressing shift when dropping directory and files should change directory
! let d = #{files: ['Xdir1', 'Xdir1/Xfile2'], row: 1, col: 1, modifiers: 0x4}
call test_gui_event('dropfiles', d)
! call assert_equal('Xdir1', fnamemodify(getcwd(), ':t'))
! call assert_equal('Xdir1', fnamemodify(@%, ':t'))
call chdir(save_cwd)
%bw!
%argdelete
" dropping a directory should edit it
! let d = #{files: ['Xdir1'], row: 1, col: 1, modifiers: 0}
call test_gui_event('dropfiles', d)
! call assert_equal('Xdir1', @%)
%bw!
%argdelete
" dropping only a directory name with Shift should ignore it
! let d = #{files: ['Xdir1'], row: 1, col: 1, modifiers: 0x4}
call test_gui_event('dropfiles', d)
call assert_equal('', @%)
%bw!
%argdelete
! call delete('Xdir1', 'rf')
" drop files in the command line. The GUI drop files adds the file names to
" the low level input buffer. So need to use a cmdline map and feedkeys()
--- 1400,1435 ----
%argdelete
" pressing shift when dropping files should change directory
let save_cwd = getcwd()
! call mkdir('Xdropdir1')
! call writefile([], 'Xdropdir1/Xfile1')
! call writefile([], 'Xdropdir1/Xfile2')
! let d = #{files: ['Xdropdir1/Xfile1', 'Xdropdir1/Xfile2'], row: 1, col: 1,
\ modifiers: 0x4}
call test_gui_event('dropfiles', d)
! call assert_equal('Xdropdir1', fnamemodify(getcwd(), ':t'))
call assert_equal('Xfile1', @%)
call chdir(save_cwd)
" pressing shift when dropping directory and files should change directory
! let d = #{files: ['Xdropdir1', 'Xdropdir1/Xfile2'], row: 1, col: 1,
modifiers: 0x4}
call test_gui_event('dropfiles', d)
! call assert_equal('Xdropdir1', fnamemodify(getcwd(), ':t'))
! call assert_equal('Xdropdir1', fnamemodify(@%, ':t'))
call chdir(save_cwd)
%bw!
%argdelete
" dropping a directory should edit it
! let d = #{files: ['Xdropdir1'], row: 1, col: 1, modifiers: 0}
call test_gui_event('dropfiles', d)
! call assert_equal('Xdropdir1', @%)
%bw!
%argdelete
" dropping only a directory name with Shift should ignore it
! let d = #{files: ['Xdropdir1'], row: 1, col: 1, modifiers: 0x4}
call test_gui_event('dropfiles', d)
call assert_equal('', @%)
%bw!
%argdelete
! call delete('Xdropdir1', 'rf')
" drop files in the command line. The GUI drop files adds the file names to
" the low level input buffer. So need to use a cmdline map and feedkeys()
*** ../vim-9.0.0322/src/testdir/test_help.vim 2022-07-30 12:03:12.839558828
+0100
--- src/testdir/test_help.vim 2022-08-29 21:38:40.245082778 +0100
***************
*** 129,158 ****
" Test for the :helptags command
" NOTE: if you run tests as root this will fail. Don't run tests as root!
func Test_helptag_cmd()
! call mkdir('Xdir/a/doc', 'p')
" No help file to process in the directory
! call assert_fails('helptags Xdir', 'E151:')
! call writefile([], 'Xdir/a/doc/sample.txt')
" Test for ++t argument
! helptags ++t Xdir
! call assert_equal(["help-tags\ttags\t1"], readfile('Xdir/tags'))
! call delete('Xdir/tags')
" Test parsing tags
call writefile(['*tag1*', 'Example: >', ' *notag*', 'Example end: *tag2*'],
! \ 'Xdir/a/doc/sample.txt')
! helptags Xdir
call assert_equal(["tag1\ta/doc/sample.txt\t/*tag1*",
! \ "tag2\ta/doc/sample.txt\t/*tag2*"],
readfile('Xdir/tags'))
" Duplicate tags in the help file
! call writefile(['*tag1*', '*tag1*', '*tag2*'], 'Xdir/a/doc/sample.txt')
! call assert_fails('helptags Xdir', 'E154:')
! call delete('Xdir', 'rf')
endfunc
func Test_helptag_cmd_readonly()
--- 129,158 ----
" Test for the :helptags command
" NOTE: if you run tests as root this will fail. Don't run tests as root!
func Test_helptag_cmd()
! call mkdir('Xtagdir/a/doc', 'p')
" No help file to process in the directory
! call assert_fails('helptags Xtagdir', 'E151:')
! call writefile([], 'Xtagdir/a/doc/sample.txt')
" Test for ++t argument
! helptags ++t Xtagdir
! call assert_equal(["help-tags\ttags\t1"], readfile('Xtagdir/tags'))
! call delete('Xtagdir/tags')
" Test parsing tags
call writefile(['*tag1*', 'Example: >', ' *notag*', 'Example end: *tag2*'],
! \ 'Xtagdir/a/doc/sample.txt')
! helptags Xtagdir
call assert_equal(["tag1\ta/doc/sample.txt\t/*tag1*",
! \ "tag2\ta/doc/sample.txt\t/*tag2*"],
readfile('Xtagdir/tags'))
" Duplicate tags in the help file
! call writefile(['*tag1*', '*tag1*', '*tag2*'], 'Xtagdir/a/doc/sample.txt')
! call assert_fails('helptags Xtagdir', 'E154:')
! call delete('Xtagdir', 'rf')
endfunc
func Test_helptag_cmd_readonly()
***************
*** 160,184 ****
CheckNotRoot
" Read-only tags file
! call mkdir('Xdir/doc', 'p')
! call writefile([''], 'Xdir/doc/tags')
! call writefile([], 'Xdir/doc/sample.txt')
! call setfperm('Xdir/doc/tags', 'r-xr--r--')
! call assert_fails('helptags Xdir/doc', 'E152:', getfperm('Xdir/doc/tags'))
let rtp = &rtp
! let &rtp = 'Xdir'
helptags ALL
let &rtp = rtp
! call delete('Xdir/doc/tags')
" No permission to read the help file
! call mkdir('Xdir/b/doc', 'p')
! call writefile([], 'Xdir/b/doc/sample.txt')
! call setfperm('Xdir/b/doc/sample.txt', '-w-------')
! call assert_fails('helptags Xdir', 'E153:',
getfperm('Xdir/b/doc/sample.txt'))
! call delete('Xdir', 'rf')
endfunc
" Test for setting the 'helpheight' option in the help window
--- 160,184 ----
CheckNotRoot
" Read-only tags file
! call mkdir('Xrodir/doc', 'p')
! call writefile([''], 'Xrodir/doc/tags')
! call writefile([], 'Xrodir/doc/sample.txt')
! call setfperm('Xrodir/doc/tags', 'r-xr--r--')
! call assert_fails('helptags Xrodir/doc', 'E152:',
getfperm('Xrodir/doc/tags'))
let rtp = &rtp
! let &rtp = 'Xrodir'
helptags ALL
let &rtp = rtp
! call delete('Xrodir/doc/tags')
" No permission to read the help file
! call mkdir('Xrodir/b/doc', 'p')
! call writefile([], 'Xrodir/b/doc/sample.txt')
! call setfperm('Xrodir/b/doc/sample.txt', '-w-------')
! call assert_fails('helptags Xrodir', 'E153:',
getfperm('Xrodir/b/doc/sample.txt'))
! call delete('Xrodir', 'rf')
endfunc
" Test for setting the 'helpheight' option in the help window
*** ../vim-9.0.0322/src/testdir/test_ins_complete.vim 2022-07-31
11:37:16.451058499 +0100
--- src/testdir/test_ins_complete.vim 2022-08-29 21:47:11.421168120 +0100
***************
*** 9,16 ****
edit test_ins_complete.vim
" The files in the current directory interferes with the files
" used by this test. So use a separate directory for the test.
! call mkdir('Xdir')
! cd Xdir
set ff=unix
call writefile(["test11\t36Gepeto\t/Tag/",
--- 9,16 ----
edit test_ins_complete.vim
" The files in the current directory interferes with the files
" used by this test. So use a separate directory for the test.
! call mkdir('Xcpldir')
! cd Xcpldir
set ff=unix
call writefile(["test11\t36Gepeto\t/Tag/",
***************
*** 105,111 ****
call delete('Xtestdata')
set cpt& cot& def& tags& tagbsearch& hidden&
cd ..
! call delete('Xdir', 'rf')
endfunc
func Test_ins_complete_invalid_byte()
--- 105,111 ----
call delete('Xtestdata')
set cpt& cot& def& tags& tagbsearch& hidden&
cd ..
! call delete('Xcpldir', 'rf')
endfunc
func Test_ins_complete_invalid_byte()
***************
*** 433,439 ****
func Test_ins_completeslash()
CheckMSWindows
! call mkdir('Xdir')
let orig_shellslash = &shellslash
set cpt&
new
--- 433,439 ----
func Test_ins_completeslash()
CheckMSWindows
! call mkdir('Xcpldir')
let orig_shellslash = &shellslash
set cpt&
new
***************
*** 442,472 ****
set completeslash=
exe "normal oXd\<C-X>\<C-F>"
! call assert_equal('Xdir\', getline('.'))
set completeslash=backslash
exe "normal oXd\<C-X>\<C-F>"
! call assert_equal('Xdir\', getline('.'))
set completeslash=slash
exe "normal oXd\<C-X>\<C-F>"
! call assert_equal('Xdir/', getline('.'))
set shellslash
set completeslash=
exe "normal oXd\<C-X>\<C-F>"
! call assert_equal('Xdir/', getline('.'))
set completeslash=backslash
exe "normal oXd\<C-X>\<C-F>"
! call assert_equal('Xdir\', getline('.'))
set completeslash=slash
exe "normal oXd\<C-X>\<C-F>"
! call assert_equal('Xdir/', getline('.'))
%bw!
! call delete('Xdir', 'rf')
set noshellslash
set completeslash=slash
--- 442,472 ----
set completeslash=
exe "normal oXd\<C-X>\<C-F>"
! call assert_equal('Xcpldir\', getline('.'))
set completeslash=backslash
exe "normal oXd\<C-X>\<C-F>"
! call assert_equal('Xcpldir\', getline('.'))
set completeslash=slash
exe "normal oXd\<C-X>\<C-F>"
! call assert_equal('Xcpldir/', getline('.'))
set shellslash
set completeslash=
exe "normal oXd\<C-X>\<C-F>"
! call assert_equal('Xcpldir/', getline('.'))
set completeslash=backslash
exe "normal oXd\<C-X>\<C-F>"
! call assert_equal('Xcpldir\', getline('.'))
set completeslash=slash
exe "normal oXd\<C-X>\<C-F>"
! call assert_equal('Xcpldir/', getline('.'))
%bw!
! call delete('Xcpldir', 'rf')
set noshellslash
set completeslash=slash
*** ../vim-9.0.0322/src/testdir/test_packadd.vim 2022-01-31
17:24:22.000000000 +0000
--- src/testdir/test_packadd.vim 2022-08-29 21:49:36.129175420 +0100
***************
*** 3,9 ****
source check.vim
func SetUp()
! let s:topdir = getcwd() . '/Xdir'
exe 'set packpath=' . s:topdir
let s:plugdir = s:topdir . '/pack/mine/opt/mytest'
endfunc
--- 3,9 ----
source check.vim
func SetUp()
! let s:topdir = getcwd() . '/Xppdir'
exe 'set packpath=' . s:topdir
let s:plugdir = s:topdir . '/pack/mine/opt/mytest'
endfunc
***************
*** 51,59 ****
call assert_equal(77, g:plugin_also_works)
call assert_equal(17, g:ftdetect_works)
call assert_true(len(&rtp) > len(rtp))
! call assert_match('/testdir/Xdir/pack/mine/opt/mytest\($\|,\)', &rtp)
! let new_after = match(&rtp, '/testdir/Xdir/pack/mine/opt/mytest/after,')
let forwarded = substitute(first_after_entry, '\\', '[/\\\\]', 'g')
let old_after = match(&rtp, ',' . forwarded . '\>')
call assert_true(new_after > 0, 'rtp is ' . &rtp)
--- 51,59 ----
call assert_equal(77, g:plugin_also_works)
call assert_equal(17, g:ftdetect_works)
call assert_true(len(&rtp) > len(rtp))
! call assert_match('/testdir/Xppdir/pack/mine/opt/mytest\($\|,\)', &rtp)
! let new_after = match(&rtp, '/testdir/Xppdir/pack/mine/opt/mytest/after,')
let forwarded = substitute(first_after_entry, '\\', '[/\\\\]', 'g')
let old_after = match(&rtp, ',' . forwarded . '\>')
call assert_true(new_after > 0, 'rtp is ' . &rtp)
***************
*** 67,73 ****
" Check the path of 'myte' is added
call assert_true(len(&rtp) > len(rtp))
! call assert_match('/testdir/Xdir/pack/mine/opt/myte\($\|,\)', &rtp)
" Check exception
call assert_fails("packadd directorynotfound", 'E919:')
--- 67,73 ----
" Check the path of 'myte' is added
call assert_true(len(&rtp) > len(rtp))
! call assert_match('/testdir/Xppdir/pack/mine/opt/myte\($\|,\)', &rtp)
" Check exception
call assert_fails("packadd directorynotfound", 'E919:')
***************
*** 89,95 ****
call assert_equal(24, g:plugin_works)
call assert_true(len(&rtp) > len(rtp))
! call assert_match('/testdir/Xdir/pack/mine/start/other\($\|,\)', &rtp)
endfunc
func Test_packadd_noload()
--- 89,95 ----
call assert_equal(24, g:plugin_works)
call assert_true(len(&rtp) > len(rtp))
! call assert_match('/testdir/Xppdir/pack/mine/start/other\($\|,\)', &rtp)
endfunc
func Test_packadd_noload()
***************
*** 106,112 ****
packadd! mytest
call assert_true(len(&rtp) > len(rtp))
! call assert_match('testdir/Xdir/pack/mine/opt/mytest\($\|,\)', &rtp)
call assert_equal(0, g:plugin_works)
" check the path is not added twice
--- 106,112 ----
packadd! mytest
call assert_true(len(&rtp) > len(rtp))
! call assert_match('testdir/Xppdir/pack/mine/opt/mytest\($\|,\)', &rtp)
call assert_equal(0, g:plugin_works)
" check the path is not added twice
*** ../vim-9.0.0322/src/testdir/test_quickfix.vim 2022-08-29
20:45:11.344535306 +0100
--- src/testdir/test_quickfix.vim 2022-08-29 21:50:22.325176785 +0100
***************
*** 4390,4396 ****
autocmd BufRead * silent cd %:p:h
augroup END
! 10Xvimgrep /vim/ Xdir/**
let l = g:Xgetlist()
call assert_equal('f1.txt', bufname(l[0].bufnr))
call assert_equal('f2.txt', fnamemodify(bufname(l[2].bufnr), ':t'))
--- 4390,4396 ----
autocmd BufRead * silent cd %:p:h
augroup END
! 10Xvimgrep /vim/ Xgrepdir/**
let l = g:Xgetlist()
call assert_equal('f1.txt', bufname(l[0].bufnr))
call assert_equal('f2.txt', fnamemodify(bufname(l[2].bufnr), ':t'))
***************
*** 4403,4416 ****
endfunc
func Test_vimgrep_autocmd_cd()
! call mkdir('Xdir/a', 'p')
! call mkdir('Xdir/b', 'p')
! call writefile(['a_L1_vim', 'a_L2_vim'], 'Xdir/a/f1.txt')
! call writefile(['b_L1_vim', 'b_L2_vim'], 'Xdir/b/f2.txt')
call Xvimgrep_autocmd_cd('c')
call Xvimgrep_autocmd_cd('l')
%bwipe
! call delete('Xdir', 'rf')
endfunc
" The following test used to crash Vim
--- 4403,4416 ----
endfunc
func Test_vimgrep_autocmd_cd()
! call mkdir('Xgrepdir/a', 'p')
! call mkdir('Xgrepdir/b', 'p')
! call writefile(['a_L1_vim', 'a_L2_vim'], 'Xgrepdir/a/f1.txt')
! call writefile(['b_L1_vim', 'b_L2_vim'], 'Xgrepdir/b/f2.txt')
call Xvimgrep_autocmd_cd('c')
call Xvimgrep_autocmd_cd('l')
%bwipe
! call delete('Xgrepdir', 'rf')
endfunc
" The following test used to crash Vim
*** ../vim-9.0.0322/src/testdir/test_startup.vim 2022-06-21
14:33:43.000000000 +0100
--- src/testdir/test_startup.vim 2022-08-29 21:51:33.565178118 +0100
***************
*** 1064,1076 ****
call writefile(v:errors, 'Xtestout')
qall
[CODE]
! call mkdir('Xdir')
! call writefile(['let exrc_found=37'], 'Xdir/.exrc')
! call writefile(after, 'Xdir/Xafter')
! let cmd = GetVimProg() . ' --not-a-term -S Xafter --cmd "cd Xdir" --cmd
"set enc=utf8 exrc secure"'
exe "silent !" . cmd
! call assert_equal([], readfile('Xdir/Xtestout'))
! call delete('Xdir', 'rf')
endfunc
" Test for starting Vim with a non-terminal as input/output
--- 1064,1076 ----
call writefile(v:errors, 'Xtestout')
qall
[CODE]
! call mkdir('Xrcdir')
! call writefile(['let exrc_found=37'], 'Xrcdir/.exrc')
! call writefile(after, 'Xrcdir/Xafter')
! let cmd = GetVimProg() . ' --not-a-term -S Xafter --cmd "cd Xrcdir" --cmd
"set enc=utf8 exrc secure"'
exe "silent !" . cmd
! call assert_equal([], readfile('Xrcdir/Xtestout'))
! call delete('Xrcdir', 'rf')
endfunc
" Test for starting Vim with a non-terminal as input/output
***************
*** 1125,1134 ****
" Test for failing to open the script output file. This test works only when
" the language is English.
if v:lang == "C" || v:lang =~ '^[Ee]n'
! call mkdir("Xdir")
! let m = system(GetVimCommand() .. " -w Xdir")
! call assert_equal("Cannot open for script output: \"Xdir\"\n", m)
! call delete("Xdir", 'rf')
endif
" A number argument sets the 'window' option
--- 1125,1134 ----
" Test for failing to open the script output file. This test works only when
" the language is English.
if v:lang == "C" || v:lang =~ '^[Ee]n'
! call mkdir("Xargdir")
! let m = system(GetVimCommand() .. " -w Xargdir")
! call assert_equal("Cannot open for script output: \"Xargdir\"\n", m)
! call delete("Xargdir", 'rf')
endif
" A number argument sets the 'window' option
*** ../vim-9.0.0322/src/testdir/test_terminal.vim 2022-06-15
17:49:55.000000000 +0100
--- src/testdir/test_terminal.vim 2022-08-29 21:53:45.513178475 +0100
***************
*** 630,641 ****
CheckExecutable pwd
let cmd = 'pwd'
endif
! call mkdir('Xdir')
! let buf = term_start(cmd, {'cwd': 'Xdir'})
! call WaitForAssert({-> assert_equal('Xdir', fnamemodify(getline(1), ":t"))})
exe buf . 'bwipe'
! call delete('Xdir', 'rf')
endfunc
func Test_terminal_cwd_failure()
--- 630,641 ----
CheckExecutable pwd
let cmd = 'pwd'
endif
! call mkdir('Xtermdir')
! let buf = term_start(cmd, {'cwd': 'Xtermdir'})
! call WaitForAssert({-> assert_equal('Xtermdir', fnamemodify(getline(1),
":t"))})
exe buf . 'bwipe'
! call delete('Xtermdir', 'rf')
endfunc
func Test_terminal_cwd_failure()
*** ../vim-9.0.0322/src/testdir/test_vim9_disassemble.vim 2022-08-20
14:51:13.814510144 +0100
--- src/testdir/test_vim9_disassemble.vim 2022-08-29 21:54:33.153178038
+0100
***************
*** 315,328 ****
enddef
def Test_disassemble_push()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
var lines =<< trim END
vim9script
END
! writefile(lines, 'Xdir/autoload/autoscript.vim')
lines =<< trim END
vim9script
--- 315,328 ----
enddef
def Test_disassemble_push()
! mkdir('Xdisdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdisdir'
var lines =<< trim END
vim9script
END
! writefile(lines, 'Xdisdir/autoload/autoscript.vim')
lines =<< trim END
vim9script
***************
*** 342,348 ****
END
v9.CheckScriptSuccess(lines)
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
--- 342,348 ----
END
v9.CheckScriptSuccess(lines)
! delete('Xdisdir', 'rf')
&rtp = save_rtp
enddef
*** ../vim-9.0.0322/src/testdir/test_vim9_func.vim 2022-08-20
14:51:13.814510144 +0100
--- src/testdir/test_vim9_func.vim 2022-08-29 22:16:56.985111281 +0100
***************
*** 41,47 ****
enddef
def TestCompilingErrorInTry()
! var dir = 'Xdir/autoload'
mkdir(dir, 'p')
var lines =<< trim END
--- 41,47 ----
enddef
def TestCompilingErrorInTry()
! var dir = 'Xcompdir/autoload'
mkdir(dir, 'p')
var lines =<< trim END
***************
*** 61,67 ****
catch /nothing/
endtry
END
! lines[1] = 'set rtp=' .. getcwd() .. '/Xdir'
writefile(lines, 'XTest_compile_error')
var buf = g:RunVimInTerminal('-S XTest_compile_error', {rows: 10,
wait_for_ruler: 0})
--- 61,67 ----
catch /nothing/
endtry
END
! lines[1] = 'set rtp=' .. getcwd() .. '/Xcompdir'
writefile(lines, 'XTest_compile_error')
var buf = g:RunVimInTerminal('-S XTest_compile_error', {rows: 10,
wait_for_ruler: 0})
***************
*** 71,77 ****
# clean up
g:StopVimInTerminal(buf)
delete('XTest_compile_error')
! delete('Xdir', 'rf')
enddef
def Test_comment_error()
--- 71,77 ----
# clean up
g:StopVimInTerminal(buf)
delete('XTest_compile_error')
! delete('Xcompdir', 'rf')
enddef
def Test_comment_error()
***************
*** 170,176 ****
enddef
def Test_autoload_name_mismatch()
! var dir = 'Xdir/autoload'
mkdir(dir, 'p')
var lines =<< trim END
--- 170,176 ----
enddef
def Test_autoload_name_mismatch()
! var dir = 'Xnamedir/autoload'
mkdir(dir, 'p')
var lines =<< trim END
***************
*** 183,200 ****
writefile(lines, dir .. '/script.vim')
var save_rtp = &rtp
! exe 'set rtp=' .. getcwd() .. '/Xdir'
lines =<< trim END
call script#Function()
END
v9.CheckScriptFailure(lines, 'E117:', 1)
&rtp = save_rtp
! delete(dir, 'rf')
enddef
def Test_autoload_names()
! var dir = 'Xdir/autoload'
mkdir(dir, 'p')
var lines =<< trim END
--- 183,200 ----
writefile(lines, dir .. '/script.vim')
var save_rtp = &rtp
! exe 'set rtp=' .. getcwd() .. '/Xnamedir'
lines =<< trim END
call script#Function()
END
v9.CheckScriptFailure(lines, 'E117:', 1)
&rtp = save_rtp
! delete('Xnamdir', 'rf')
enddef
def Test_autoload_names()
! var dir = 'Xandir/autoload'
mkdir(dir, 'p')
var lines =<< trim END
***************
*** 206,212 ****
writefile(lines, dir .. '/foobar.vim')
var save_rtp = &rtp
! exe 'set rtp=' .. getcwd() .. '/Xdir'
lines =<< trim END
assert_equal('yes', foobar#function())
--- 206,212 ----
writefile(lines, dir .. '/foobar.vim')
var save_rtp = &rtp
! exe 'set rtp=' .. getcwd() .. '/Xandir'
lines =<< trim END
assert_equal('yes', foobar#function())
***************
*** 218,228 ****
v9.CheckDefAndScriptSuccess(lines)
&rtp = save_rtp
! delete(dir, 'rf')
enddef
def Test_autoload_error_in_script()
! var dir = 'Xdir/autoload'
mkdir(dir, 'p')
var lines =<< trim END
--- 218,228 ----
v9.CheckDefAndScriptSuccess(lines)
&rtp = save_rtp
! delete('Xandir', 'rf')
enddef
def Test_autoload_error_in_script()
! var dir = 'Xaedir/autoload'
mkdir(dir, 'p')
var lines =<< trim END
***************
*** 234,240 ****
writefile(lines, dir .. '/scripterror.vim')
var save_rtp = &rtp
! exe 'set rtp=' .. getcwd() .. '/Xdir'
g:called_function = 'no'
# The error in the autoload script cannot be checked with assert_fails(),
use
--- 234,240 ----
writefile(lines, dir .. '/scripterror.vim')
var save_rtp = &rtp
! exe 'set rtp=' .. getcwd() .. '/Xaedir'
g:called_function = 'no'
# The error in the autoload script cannot be checked with assert_fails(),
use
***************
*** 264,270 ****
assert_equal('yes', g:called_function)
&rtp = save_rtp
! delete(dir, 'rf')
enddef
def s:CallRecursive(n: number): number
--- 264,270 ----
assert_equal('yes', g:called_function)
&rtp = save_rtp
! delete('Xaedir', 'rf')
enddef
def s:CallRecursive(n: number): number
*** ../vim-9.0.0322/src/testdir/test_vim9_import.vim 2022-08-28
18:52:06.671888918 +0100
--- src/testdir/test_vim9_import.vim 2022-08-29 22:27:13.942199156 +0100
***************
*** 766,775 ****
g:result = 49
enddef
END
! mkdir('Xdir/autoload', 'p')
! writefile(lines, 'Xdir/autoload/XautoloadExport.vim')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
lines =<< trim END
vim9script
--- 766,775 ----
g:result = 49
enddef
END
! mkdir('Ximpdir/autoload', 'p')
! writefile(lines, 'Ximpdir/autoload/XautoloadExport.vim')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Ximpdir'
lines =<< trim END
vim9script
***************
*** 786,792 ****
unlet g:result
delete('Xmapscript.vim')
nunmap <F3>
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
--- 786,792 ----
unlet g:result
delete('Xmapscript.vim')
nunmap <F3>
! delete('Ximpdir', 'rf')
&rtp = save_rtp
enddef
***************
*** 838,846 ****
enddef
def Test_use_autoload_import_in_insert_completion()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
var lines =<< trim END
vim9script
--- 838,846 ----
enddef
def Test_use_autoload_import_in_insert_completion()
! mkdir('Xinsdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xinsdir'
var lines =<< trim END
vim9script
***************
*** 857,863 ****
enddef
g:completion_loaded = 'yes'
END
! writefile(lines, 'Xdir/autoload/completion.vim')
new
lines =<< trim END
--- 857,863 ----
enddef
g:completion_loaded = 'yes'
END
! writefile(lines, 'Xinsdir/autoload/completion.vim')
new
lines =<< trim END
***************
*** 874,895 ****
set thesaurusfunc=
bwipe!
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
def Test_use_autoload_import_partial_in_opfunc()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
var lines =<< trim END
vim9script
! export def Opfunc(..._)
g:opfunc_called = 'yes'
enddef
END
! writefile(lines, 'Xdir/autoload/opfunc.vim')
new
lines =<< trim END
--- 874,895 ----
set thesaurusfunc=
bwipe!
! delete('Xinsdir', 'rf')
&rtp = save_rtp
enddef
def Test_use_autoload_import_partial_in_opfunc()
! mkdir('Xpartdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xpartdir'
var lines =<< trim END
vim9script
! export def Opfunc1(..._)
g:opfunc_called = 'yes'
enddef
END
! writefile(lines, 'Xpartdir/autoload/opfunc.vim')
new
lines =<< trim END
***************
*** 897,903 ****
import autoload 'opfunc.vim'
nnoremap <expr> <F3> TheFunc()
def TheFunc(): string
! &operatorfunc = function('opfunc.Opfunc', [0])
return 'g@'
enddef
feedkeys("\<F3>l", 'xt')
--- 897,903 ----
import autoload 'opfunc.vim'
nnoremap <expr> <F3> TheFunc()
def TheFunc(): string
! &operatorfunc = function('opfunc.Opfunc1', [0])
return 'g@'
enddef
feedkeys("\<F3>l", 'xt')
***************
*** 907,929 ****
set opfunc=
bwipe!
! delete('Xdir', 'rf')
nunmap <F3>
&rtp = save_rtp
enddef
def Test_set_opfunc_to_autoload_func_directly()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
var lines =<< trim END
vim9script
! export def Opfunc(..._)
g:opfunc_called = 'yes'
enddef
END
! writefile(lines, 'Xdir/autoload/opfunc.vim')
new
lines =<< trim END
--- 907,929 ----
set opfunc=
bwipe!
! delete('Xpartdir', 'rf')
nunmap <F3>
&rtp = save_rtp
enddef
def Test_set_opfunc_to_autoload_func_directly()
! mkdir('Xdirdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdirdir'
var lines =<< trim END
vim9script
! export def Opfunc2(..._)
g:opfunc_called = 'yes'
enddef
END
! writefile(lines, 'Xdirdir/autoload/opfunc.vim')
new
lines =<< trim END
***************
*** 931,937 ****
import autoload 'opfunc.vim'
nnoremap <expr> <F3> TheFunc()
def TheFunc(): string
! &operatorfunc = opfunc.Opfunc
return 'g@'
enddef
feedkeys("\<F3>l", 'xt')
--- 931,937 ----
import autoload 'opfunc.vim'
nnoremap <expr> <F3> TheFunc()
def TheFunc(): string
! &operatorfunc = opfunc.Opfunc2
return 'g@'
enddef
feedkeys("\<F3>l", 'xt')
***************
*** 941,955 ****
set opfunc=
bwipe!
! delete('Xdir', 'rf')
nunmap <F3>
&rtp = save_rtp
enddef
def Test_use_autoload_import_in_fold_expression()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
var lines =<< trim END
vim9script
--- 941,955 ----
set opfunc=
bwipe!
! delete('Xdirdir', 'rf')
nunmap <F3>
&rtp = save_rtp
enddef
def Test_use_autoload_import_in_fold_expression()
! mkdir('Xfolddir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xfolddir'
var lines =<< trim END
vim9script
***************
*** 961,967 ****
enddef
g:fold_loaded = 'yes'
END
! writefile(lines, 'Xdir/autoload/fold.vim')
lines =<< trim END
vim9script
--- 961,967 ----
enddef
g:fold_loaded = 'yes'
END
! writefile(lines, 'Xfolddir/autoload/fold.vim')
lines =<< trim END
vim9script
***************
*** 985,991 ****
set foldexpr= foldtext& foldmethod& debug=
bwipe!
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
--- 985,991 ----
set foldexpr= foldtext& foldmethod& debug=
bwipe!
! delete('Xfolddir', 'rf')
&rtp = save_rtp
enddef
***************
*** 1200,1206 ****
END
v9.CheckScriptFailure(lines, 'E484:')
! delete('Xdir', 'rf')
enddef
func Test_import_in_diffexpr()
--- 1200,1206 ----
END
v9.CheckScriptFailure(lines, 'E484:')
! delete('Xa.vim')
enddef
func Test_import_in_diffexpr()
***************
*** 1455,1463 ****
enddef
def Test_export_shadows_global_function()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
var lines =<< trim END
vim9script
--- 1455,1463 ----
enddef
def Test_export_shadows_global_function()
! mkdir('Xglobdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xglobdir'
var lines =<< trim END
vim9script
***************
*** 1465,1471 ****
return 'Shadow()'
enddef
END
! writefile(lines, 'Xdir/autoload/shadow.vim')
lines =<< trim END
vim9script
--- 1465,1471 ----
return 'Shadow()'
enddef
END
! writefile(lines, 'Xglobdir/autoload/shadow.vim')
lines =<< trim END
vim9script
***************
*** 1481,1487 ****
delfunc g:Shadow
bwipe!
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
--- 1481,1487 ----
delfunc g:Shadow
bwipe!
! delete('Xglobdir', 'rf')
&rtp = save_rtp
enddef
***************
*** 2178,2187 ****
enddef
END
! mkdir('Xdir/autoload', 'p')
! writefile(lines, 'Xdir/autoload/some.vim')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
assert_equal('test', g:some#Gettest())
assert_equal('name', g:some#name)
--- 2178,2187 ----
enddef
END
! mkdir('Xfulldir/autoload', 'p')
! writefile(lines, 'Xfulldir/autoload/some.vim')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xfulldir'
assert_equal('test', g:some#Gettest())
assert_equal('name', g:some#name)
***************
*** 2198,2214 ****
return 'other'
enddef
END
! writefile(lines, 'Xdir/autoload/Other.vim')
assert_equal('other', g:Other#GetOther())
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
def Test_vim9script_autoload()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
# when the path has "/autoload/" prefix is not needed
var lines =<< trim END
--- 2198,2214 ----
return 'other'
enddef
END
! writefile(lines, 'Xfulldir/autoload/Other.vim')
assert_equal('other', g:Other#GetOther())
! delete('Xfulldir', 'rf')
&rtp = save_rtp
enddef
def Test_vim9script_autoload()
! mkdir('Xaldir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xaldir'
# when the path has "/autoload/" prefix is not needed
var lines =<< trim END
***************
*** 2232,2238 ****
export final fname = 'final'
export const cname = 'const'
END
! writefile(lines, 'Xdir/autoload/prefixed.vim')
g:prefixed_loaded = 0
g:expected_loaded = 0
--- 2232,2238 ----
export final fname = 'final'
export const cname = 'const'
END
! writefile(lines, 'Xaldir/autoload/prefixed.vim')
g:prefixed_loaded = 0
g:expected_loaded = 0
***************
*** 2266,2279 ****
unlet g:prefixed_loaded
unlet g:expected_loaded
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
def Test_import_autoload_not_exported()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
# error when using an item that is not exported from an autoload script
var exportLines =<< trim END
--- 2266,2279 ----
unlet g:prefixed_loaded
unlet g:expected_loaded
! delete('Xaldir', 'rf')
&rtp = save_rtp
enddef
def Test_import_autoload_not_exported()
! mkdir('Xnimdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xnimdir'
# error when using an item that is not exported from an autoload script
var exportLines =<< trim END
***************
*** 2283,2289 ****
echo 'nop'
enddef
END
! writefile(exportLines, 'Xdir/autoload/notExport1.vim')
var lines =<< trim END
vim9script
--- 2283,2289 ----
echo 'nop'
enddef
END
! writefile(exportLines, 'Xnimdir/autoload/notExport1.vim')
var lines =<< trim END
vim9script
***************
*** 2329,2335 ****
# using a :def function we use a different autoload script every time so
that
# the function is compiled without the script loaded
! writefile(exportLines, 'Xdir/autoload/notExport2.vim')
lines =<< trim END
vim9script
import autoload 'notExport2.vim'
--- 2329,2335 ----
# using a :def function we use a different autoload script every time so
that
# the function is compiled without the script loaded
! writefile(exportLines, 'Xnimdir/autoload/notExport2.vim')
lines =<< trim END
vim9script
import autoload 'notExport2.vim'
***************
*** 2340,2346 ****
END
v9.CheckScriptFailure(lines, 'E1048: Item not found in script:
notExport2#notFound')
! writefile(exportLines, 'Xdir/autoload/notExport3.vim')
lines =<< trim END
vim9script
import autoload 'notExport3.vim'
--- 2340,2346 ----
END
v9.CheckScriptFailure(lines, 'E1048: Item not found in script:
notExport2#notFound')
! writefile(exportLines, 'Xnimdir/autoload/notExport3.vim')
lines =<< trim END
vim9script
import autoload 'notExport3.vim'
***************
*** 2352,2358 ****
# don't get E1049 because it is too complicated to figure out
v9.CheckScriptFailure(lines, 'E1048: Item not found in script:
notExport3#notExported')
! writefile(exportLines, 'Xdir/autoload/notExport4.vim')
lines =<< trim END
vim9script
import autoload 'notExport4.vim'
--- 2352,2358 ----
# don't get E1049 because it is too complicated to figure out
v9.CheckScriptFailure(lines, 'E1048: Item not found in script:
notExport3#notExported')
! writefile(exportLines, 'Xnimdir/autoload/notExport4.vim')
lines =<< trim END
vim9script
import autoload 'notExport4.vim'
***************
*** 2363,2369 ****
END
v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport4#NotFunc')
! writefile(exportLines, 'Xdir/autoload/notExport5.vim')
lines =<< trim END
vim9script
import autoload 'notExport5.vim'
--- 2363,2369 ----
END
v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport4#NotFunc')
! writefile(exportLines, 'Xnimdir/autoload/notExport5.vim')
lines =<< trim END
vim9script
import autoload 'notExport5.vim'
***************
*** 2374,2380 ****
END
v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport5#NotExport')
! writefile(exportLines, 'Xdir/autoload/notExport6.vim')
lines =<< trim END
vim9script
import autoload 'notExport6.vim'
--- 2374,2380 ----
END
v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport5#NotExport')
! writefile(exportLines, 'Xnimdir/autoload/notExport6.vim')
lines =<< trim END
vim9script
import autoload 'notExport6.vim'
***************
*** 2385,2391 ****
END
v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport6#NotFunc')
! writefile(exportLines, 'Xdir/autoload/notExport7.vim')
lines =<< trim END
vim9script
import autoload 'notExport7.vim'
--- 2385,2391 ----
END
v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport6#NotFunc')
! writefile(exportLines, 'Xnimdir/autoload/notExport7.vim')
lines =<< trim END
vim9script
import autoload 'notExport7.vim'
***************
*** 2396,2409 ****
END
v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport7#NotExport')
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
def Test_vim9script_autoload_call()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
var lines =<< trim END
vim9script
--- 2396,2409 ----
END
v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport7#NotExport')
! delete('Xnimdir', 'rf')
&rtp = save_rtp
enddef
def Test_vim9script_autoload_call()
! mkdir('Xcalldir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xcalldir'
var lines =<< trim END
vim9script
***************
*** 2416,2422 ****
g:result = 'other'
enddef
END
! writefile(lines, 'Xdir/autoload/another.vim')
lines =<< trim END
vim9script
--- 2416,2422 ----
g:result = 'other'
enddef
END
! writefile(lines, 'Xcalldir/autoload/another.vim')
lines =<< trim END
vim9script
***************
*** 2440,2453 ****
v9.CheckScriptSuccess(lines)
unlet g:result
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
def Test_vim9script_noclear_autoload()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
var lines =<< trim END
vim9script
--- 2440,2453 ----
v9.CheckScriptSuccess(lines)
unlet g:result
! delete('Xcalldir', 'rf')
&rtp = save_rtp
enddef
def Test_vim9script_noclear_autoload()
! mkdir('Xnocdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xnocdir'
var lines =<< trim END
vim9script
***************
*** 2456,2462 ****
enddef
g:double_loaded = 'yes'
END
! writefile(lines, 'Xdir/autoload/double.vim')
lines =<< trim END
vim9script noclear
--- 2456,2462 ----
enddef
g:double_loaded = 'yes'
END
! writefile(lines, 'Xnocdir/autoload/double.vim')
lines =<< trim END
vim9script noclear
***************
*** 2482,2493 ****
unlet g:double_loaded
unlet g:script_loaded
unlet g:result
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
def Test_vim9script_autoload_duplicate()
! mkdir('Xdir/autoload', 'p')
var lines =<< trim END
vim9script
--- 2482,2493 ----
unlet g:double_loaded
unlet g:script_loaded
unlet g:result
! delete('Xnocdir', 'rf')
&rtp = save_rtp
enddef
def Test_vim9script_autoload_duplicate()
! mkdir('Xdupdir/autoload', 'p')
var lines =<< trim END
vim9script
***************
*** 2498,2505 ****
def Func()
enddef
END
! writefile(lines, 'Xdir/autoload/dupfunc.vim')
! assert_fails('source Xdir/autoload/dupfunc.vim', 'E1073:')
lines =<< trim END
vim9script
--- 2498,2505 ----
def Func()
enddef
END
! writefile(lines, 'Xdupdir/autoload/dupfunc.vim')
! assert_fails('source Xdupdir/autoload/dupfunc.vim', 'E1073:')
lines =<< trim END
vim9script
***************
*** 2510,2517 ****
export def Func()
enddef
END
! writefile(lines, 'Xdir/autoload/dup2func.vim')
! assert_fails('source Xdir/autoload/dup2func.vim', 'E1073:')
lines =<< trim END
vim9script
--- 2510,2517 ----
export def Func()
enddef
END
! writefile(lines, 'Xdupdir/autoload/dup2func.vim')
! assert_fails('source Xdupdir/autoload/dup2func.vim', 'E1073:')
lines =<< trim END
vim9script
***************
*** 2521,2528 ****
export var Func = 'asdf'
END
! writefile(lines, 'Xdir/autoload/dup3func.vim')
! assert_fails('source Xdir/autoload/dup3func.vim', 'E1041: Redefining script
item: "Func"')
lines =<< trim END
vim9script
--- 2521,2528 ----
export var Func = 'asdf'
END
! writefile(lines, 'Xdupdir/autoload/dup3func.vim')
! assert_fails('source Xdupdir/autoload/dup3func.vim', 'E1041: Redefining
script item: "Func"')
lines =<< trim END
vim9script
***************
*** 2532,2539 ****
def Func()
enddef
END
! writefile(lines, 'Xdir/autoload/dup4func.vim')
! assert_fails('source Xdir/autoload/dup4func.vim', 'E707:')
lines =<< trim END
vim9script
--- 2532,2539 ----
def Func()
enddef
END
! writefile(lines, 'Xdupdir/autoload/dup4func.vim')
! assert_fails('source Xdupdir/autoload/dup4func.vim', 'E707:')
lines =<< trim END
vim9script
***************
*** 2543,2550 ****
export def Func()
enddef
END
! writefile(lines, 'Xdir/autoload/dup5func.vim')
! assert_fails('source Xdir/autoload/dup5func.vim', 'E707:')
lines =<< trim END
vim9script
--- 2543,2550 ----
export def Func()
enddef
END
! writefile(lines, 'Xdupdir/autoload/dup5func.vim')
! assert_fails('source Xdupdir/autoload/dup5func.vim', 'E707:')
lines =<< trim END
vim9script
***************
*** 2554,2567 ****
var Func = 'asdf'
END
! writefile(lines, 'Xdir/autoload/dup6func.vim')
! assert_fails('source Xdir/autoload/dup6func.vim', 'E1041: Redefining script
item: "Func"')
! delete('Xdir', 'rf')
enddef
def Test_autoload_missing_function_name()
! mkdir('Xdir/autoload', 'p')
var lines =<< trim END
vim9script
--- 2554,2567 ----
var Func = 'asdf'
END
! writefile(lines, 'Xdupdir/autoload/dup6func.vim')
! assert_fails('source Xdupdir/autoload/dup6func.vim', 'E1041: Redefining
script item: "Func"')
! delete('Xdupdir', 'rf')
enddef
def Test_autoload_missing_function_name()
! mkdir('Xmisdir/autoload', 'p')
var lines =<< trim END
vim9script
***************
*** 2569,2578 ****
def loadme#()
enddef
END
! writefile(lines, 'Xdir/autoload/loadme.vim')
! assert_fails('source Xdir/autoload/loadme.vim', 'E129:')
! delete('Xdir', 'rf')
enddef
def Test_autoload_name_wrong()
--- 2569,2578 ----
def loadme#()
enddef
END
! writefile(lines, 'Xmisdir/autoload/loadme.vim')
! assert_fails('source Xmisdir/autoload/loadme.vim', 'E129:')
! delete('Xmisdir', 'rf')
enddef
def Test_autoload_name_wrong()
***************
*** 2584,2605 ****
v9.CheckScriptFailure(lines, 'E746:')
delete('Xscriptname.vim')
! mkdir('Xdir/autoload', 'p')
lines =<< trim END
vim9script
def somescript#Func()
enddef
END
! writefile(lines, 'Xdir/autoload/somescript.vim')
! assert_fails('source Xdir/autoload/somescript.vim', 'E1263:')
! delete('Xdir', 'rf')
enddef
def Test_import_autoload_postponed()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
var lines =<< trim END
vim9script
--- 2584,2605 ----
v9.CheckScriptFailure(lines, 'E746:')
delete('Xscriptname.vim')
! mkdir('Xwrodir/autoload', 'p')
lines =<< trim END
vim9script
def somescript#Func()
enddef
END
! writefile(lines, 'Xwrodir/autoload/somescript.vim')
! assert_fails('source Xwrodir/autoload/somescript.vim', 'E1263:')
! delete('Xwrodir', 'rf')
enddef
def Test_import_autoload_postponed()
! mkdir('Xpostdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xpostdir'
var lines =<< trim END
vim9script
***************
*** 2610,2616 ****
return 'bla'
enddef
END
! writefile(lines, 'Xdir/autoload/postponed.vim')
lines =<< trim END
vim9script
--- 2610,2616 ----
return 'bla'
enddef
END
! writefile(lines, 'Xpostdir/autoload/postponed.vim')
lines =<< trim END
vim9script
***************
*** 2628,2641 ****
assert_equal('true', g:loaded_postponed)
unlet g:loaded_postponed
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
def Test_import_autoload_override()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
test_override('autoload', 1)
var lines =<< trim END
--- 2628,2641 ----
assert_equal('true', g:loaded_postponed)
unlet g:loaded_postponed
! delete('Xpostdir', 'rf')
&rtp = save_rtp
enddef
def Test_import_autoload_override()
! mkdir('Xoverdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xoverdir'
test_override('autoload', 1)
var lines =<< trim END
***************
*** 2647,2653 ****
return 'bla'
enddef
END
! writefile(lines, 'Xdir/autoload/override.vim')
lines =<< trim END
vim9script
--- 2647,2653 ----
return 'bla'
enddef
END
! writefile(lines, 'Xoverdir/autoload/override.vim')
lines =<< trim END
vim9script
***************
*** 2664,2677 ****
test_override('autoload', 0)
unlet g:loaded_override
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
def Test_autoload_mapping()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
var lines =<< trim END
vim9script
--- 2664,2677 ----
test_override('autoload', 0)
unlet g:loaded_override
! delete('Xoverdir', 'rf')
&rtp = save_rtp
enddef
def Test_autoload_mapping()
! mkdir('Xmapdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xmapdir'
var lines =<< trim END
vim9script
***************
*** 2685,2691 ****
g:doit_called = 'yes'
enddef
END
! writefile(lines, 'Xdir/autoload/toggle.vim')
lines =<< trim END
vim9script
--- 2685,2691 ----
g:doit_called = 'yes'
enddef
END
! writefile(lines, 'Xmapdir/autoload/toggle.vim')
lines =<< trim END
vim9script
***************
*** 2716,2722 ****
nunmap yy
unlet g:toggle_loaded
unlet g:toggle_called
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
--- 2716,2722 ----
nunmap yy
unlet g:toggle_loaded
unlet g:toggle_called
! delete('Xmapdir', 'rf')
&rtp = save_rtp
enddef
***************
*** 2774,2782 ****
" test disassembling an auto-loaded function starting with "debug"
def Test_vim9_autoload_disass()
! mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
var lines =<< trim END
vim9script
--- 2774,2782 ----
" test disassembling an auto-loaded function starting with "debug"
def Test_vim9_autoload_disass()
! mkdir('Xdasdir/autoload', 'p')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdasdir'
var lines =<< trim END
vim9script
***************
*** 2784,2790 ****
return 'debug'
enddef
END
! writefile(lines, 'Xdir/autoload/debugit.vim')
lines =<< trim END
vim9script
--- 2784,2790 ----
return 'debug'
enddef
END
! writefile(lines, 'Xdasdir/autoload/debugit.vim')
lines =<< trim END
vim9script
***************
*** 2792,2798 ****
return 'profile'
enddef
END
! writefile(lines, 'Xdir/autoload/profileit.vim')
lines =<< trim END
vim9script
--- 2792,2798 ----
return 'profile'
enddef
END
! writefile(lines, 'Xdasdir/autoload/profileit.vim')
lines =<< trim END
vim9script
***************
*** 2803,2809 ****
END
v9.CheckScriptSuccess(lines)
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
--- 2803,2809 ----
END
v9.CheckScriptSuccess(lines)
! delete('Xdasdir', 'rf')
&rtp = save_rtp
enddef
***************
*** 2816,2825 ****
enddef
END
! mkdir('Xdir/autoload', 'p')
! writefile(lines, 'Xdir/autoload/foo.vim')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
augroup test
autocmd TextYankPost * call foo#Test()
augroup END
--- 2816,2825 ----
enddef
END
! mkdir('Xauldir/autoload', 'p')
! writefile(lines, 'Xauldir/autoload/foo.vim')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xauldir'
augroup test
autocmd TextYankPost * call foo#Test()
augroup END
***************
*** 2829,2835 ****
augroup test
autocmd!
augroup END
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
--- 2829,2835 ----
augroup test
autocmd!
augroup END
! delete('Xauldir', 'rf')
&rtp = save_rtp
enddef
***************
*** 2842,2851 ****
enddef
END
! mkdir('Xdir/autoload', 'p')
! writefile(lines, 'Xdir/autoload/CaseSensitive.vim')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
lines =<< trim END
vim9script
--- 2842,2851 ----
enddef
END
! mkdir('Xcasedir/autoload', 'p')
! writefile(lines, 'Xcasedir/autoload/CaseSensitive.vim')
var save_rtp = &rtp
! exe 'set rtp^=' .. getcwd() .. '/Xcasedir'
lines =<< trim END
vim9script
***************
*** 2863,2869 ****
v9.CheckScriptFailure(lines, 'E1262:')
endif
! delete('Xdir', 'rf')
&rtp = save_rtp
enddef
--- 2863,2869 ----
v9.CheckScriptFailure(lines, 'E1262:')
endif
! delete('Xcasedir', 'rf')
&rtp = save_rtp
enddef
*** ../vim-9.0.0322/src/testdir/test_vim9_script.vim 2022-08-20
14:51:13.814510144 +0100
--- src/testdir/test_vim9_script.vim 2022-08-29 22:01:11.161166132 +0100
***************
*** 3586,3598 ****
export def Func()
enddef
END
! mkdir('Xdir/autoload', 'p')
! writefile(lines, 'Xdir/autoload/script.vim')
lines =<< trim END
vim9script
set cpo+=M
! exe 'set rtp^=' .. getcwd() .. '/Xdir'
au CmdlineEnter : ++once timer_start(0, (_) => script#Func())
setline(1, 'some text')
END
--- 3586,3598 ----
export def Func()
enddef
END
! mkdir('Xnordir/autoload', 'p')
! writefile(lines, 'Xnordir/autoload/script.vim')
lines =<< trim END
vim9script
set cpo+=M
! exe 'set rtp^=' .. getcwd() .. '/Xnordir'
au CmdlineEnter : ++once timer_start(0, (_) => script#Func())
setline(1, 'some text')
END
***************
*** 3605,3611 ****
term_sendkeys(buf, "\<Esc>u")
g:StopVimInTerminal(buf)
delete('XTest_redraw_cpo')
! delete('Xdir', 'rf')
enddef
func Test_reject_declaration()
--- 3605,3611 ----
term_sendkeys(buf, "\<Esc>u")
g:StopVimInTerminal(buf)
delete('XTest_redraw_cpo')
! delete('Xnordir', 'rf')
enddef
func Test_reject_declaration()
*** ../vim-9.0.0322/src/testdir/test_viminfo.vim 2021-11-21
11:32:04.000000000 +0000
--- src/testdir/test_viminfo.vim 2022-08-29 22:01:26.885165436 +0100
***************
*** 962,971 ****
call delete('Xviminfo')
" Try to write the viminfo to a directory
! call mkdir('Xdir')
! call assert_fails('wviminfo Xdir', 'E137:')
! call assert_fails('rviminfo Xdir', 'E195:')
! call delete('Xdir', 'rf')
endfunc
" Test for writing to an existing viminfo file merges the file marks
--- 962,971 ----
call delete('Xviminfo')
" Try to write the viminfo to a directory
! call mkdir('Xvifdir')
! call assert_fails('wviminfo Xvifdir', 'E137:')
! call assert_fails('rviminfo Xvifdir', 'E195:')
! call delete('Xvifdir', 'rf')
endfunc
" Test for writing to an existing viminfo file merges the file marks
*** ../vim-9.0.0322/src/testdir/test_writefile.vim 2022-03-14
19:16:37.000000000 +0000
--- src/testdir/test_writefile.vim 2022-08-29 22:02:10.641163402 +0100
***************
*** 251,259 ****
" Try to overwrite a directory
if has('unix')
! call mkdir('Xdir1')
! call assert_fails('write Xdir1', 'E17:')
! call delete('Xdir1', 'd')
endif
" Test for :wall for a buffer with no name
--- 251,259 ----
" Try to overwrite a directory
if has('unix')
! call mkdir('Xwerdir1')
! call assert_fails('write Xwerdir1', 'E17:')
! call delete('Xwerdir1', 'd')
endif
" Test for :wall for a buffer with no name
***************
*** 479,498 ****
" Root can do it too.
CheckNotRoot
! call mkdir('Xdir/')
! call writefile(['one'], 'Xdir/Xfile1')
! call setfperm('Xdir', 'r-xr--r--')
" try to create a new file in the directory
! new Xdir/Xfile2
call setline(1, 'two')
call assert_fails('write', 'E212:')
" try to create a backup file in the directory
! edit! Xdir/Xfile1
! set backupdir=./Xdir backupskip=
set patchmode=.orig
call assert_fails('write', 'E509:')
! call setfperm('Xdir', 'rwxr--r--')
! call delete('Xdir', 'rf')
set backupdir& backupskip& patchmode&
endfunc
--- 479,498 ----
" Root can do it too.
CheckNotRoot
! call mkdir('Xrodir/')
! call writefile(['one'], 'Xrodir/Xfile1')
! call setfperm('Xrodir', 'r-xr--r--')
" try to create a new file in the directory
! new Xrodir/Xfile2
call setline(1, 'two')
call assert_fails('write', 'E212:')
" try to create a backup file in the directory
! edit! Xrodir/Xfile1
! set backupdir=./Xrodir backupskip=
set patchmode=.orig
call assert_fails('write', 'E509:')
! call setfperm('Xrodir', 'rwxr--r--')
! call delete('Xrodir', 'rf')
set backupdir& backupskip& patchmode&
endfunc
*** ../vim-9.0.0322/src/version.c 2022-08-29 20:45:11.344535306 +0100
--- src/version.c 2022-08-29 22:28:18.817450606 +0100
***************
*** 709,710 ****
--- 709,712 ----
{ /* Add new patch number below this line */
+ /**/
+ 323,
/**/
--
It might look like I'm doing nothing, but at the cellular level
I'm really quite busy.
/// 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/20220829213210.C7FBB1C07CD%40moolenaar.net.