diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-05-06 21:10:48 -0400 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-05-06 22:35:45 -0400 |
commit | 210d803777a82616710fd0816fc743ed987f2347 (patch) | |
tree | 86c8ed3f076c8c982578a38ecfe5452234a7dbd2 /src | |
parent | 5a714c53f293fbbb168e4131b81ec280280ff240 (diff) | |
download | rneovim-210d803777a82616710fd0816fc743ed987f2347.tar.gz rneovim-210d803777a82616710fd0816fc743ed987f2347.tar.bz2 rneovim-210d803777a82616710fd0816fc743ed987f2347.zip |
vim-patch:8.1.1285: test17 is old style
Problem: Test17 is old style.
Solution: Turn into new style test. (Yegappan Lakshmanan, closes vim/vim#4347)
https://github.com/vim/vim/commit/f0ab01f6d868164ed0bb247b6f7b152e6929ef18
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/testdir/Makefile | 1 | ||||
-rw-r--r-- | src/nvim/testdir/test17.in | 126 | ||||
-rw-r--r-- | src/nvim/testdir/test17.ok | 33 | ||||
-rw-r--r-- | src/nvim/testdir/test17a.in | 3 | ||||
-rw-r--r-- | src/nvim/testdir/test_checkpath.vim | 113 | ||||
-rw-r--r-- | src/nvim/testdir/test_gf.vim | 35 |
6 files changed, 148 insertions, 163 deletions
diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile index 2535a51b88..8ea2689939 100644 --- a/src/nvim/testdir/Makefile +++ b/src/nvim/testdir/Makefile @@ -22,7 +22,6 @@ SCRIPTS_DEFAULT = \ ifneq ($(OS),Windows_NT) SCRIPTS_DEFAULTS := $(SCRIPTS_DEFAULT) \ - test17.out \ test49.out \ endif diff --git a/src/nvim/testdir/test17.in b/src/nvim/testdir/test17.in deleted file mode 100644 index 1a4ac6b6d1..0000000000 --- a/src/nvim/testdir/test17.in +++ /dev/null @@ -1,126 +0,0 @@ -Tests for: -- "gf" on ${VAR}, -- ":checkpath!" with various 'include' settings. - -STARTTEST -:set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,} -:" -:if has("unix") -:let $CDIR = "." -/CDIR -:else -:let $TDIR = "." -/TDIR -:endif -:" Dummy writing for making that sure gf doesn't fail even if the current -:" file is modified. It can be occurred when executing the following command -:" directly on Windows without fixing the 'fileformat': -:" > nmake -f Make_dos.mak test17.out -:w! test.out -gf -:set ff=unix -:w! test.out -:brewind -ENDTEST - - ${CDIR}/test17a.in - $TDIR/test17a.in - -STARTTEST -:" check for 'include' without \zs or \ze -:lang C -:call delete("./Xbase.a") -:call delete("Xdir1", "rf") -:!mkdir Xdir1 -:!mkdir "Xdir1/dir2" -:e! Xdir1/dir2/foo.a -i#include "bar.a": -:w -:e Xdir1/dir2/bar.a -i#include "baz.a": -:w -:e Xdir1/dir2/baz.a -i#include "foo.a": -:w -:e Xbase.a -:set path=Xdir1/dir2 -i#include <foo.a>: -:w -:redir! >>test.out -:checkpath! -:redir END -:brewind -ENDTEST - -STARTTEST -:" check for 'include' with \zs and \ze -:call delete("./Xbase.b") -:call delete("Xdir1", "rf") -:!mkdir Xdir1 -:!mkdir "Xdir1/dir2" -:let &include='^\s*%inc\s*/\zs[^/]\+\ze' -:function! DotsToSlashes() -: return substitute(v:fname, '\.', '/', 'g') . '.b' -:endfunction -:let &includeexpr='DotsToSlashes()' -:e! Xdir1/dir2/foo.b -i%inc /bar/: -:w -:e Xdir1/dir2/bar.b -i%inc /baz/: -:w -:e Xdir1/dir2/baz.b -i%inc /foo/: -:w -:e Xbase.b -:set path=Xdir1/dir2 -i%inc /foo/: -:w -:redir! >>test.out -:checkpath! -:redir END -:brewind -ENDTEST - -STARTTEST -:" check for 'include' with \zs and no \ze -:call delete("./Xbase.c") -:call delete("Xdir1", "rf") -:!mkdir Xdir1 -:!mkdir "Xdir1/dir2" -:let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze' -:function! StripNewlineChar() -: if v:fname =~ '\n$' -: return v:fname[:-2] -: endif -: return v:fname -:endfunction -:let &includeexpr='StripNewlineChar()' -:e! Xdir1/dir2/foo.c -i%inc bar.c: -:w -:e Xdir1/dir2/bar.c -i%inc baz.c: -:w -:e Xdir1/dir2/baz.c -i%inc foo.c: -:w -:e Xdir1/dir2/FALSE.c -i%inc foo.c: -:w -:e Xbase.c -:set path=Xdir1/dir2 -i%inc FALSE.c foo.c: -:w -:redir! >>test.out -:checkpath! -:redir END -:brewind -:" change "\" to "/" for Windows and fix 'fileformat' -:e test.out -:%s#\\#/#g -:set ff& -:w -:q -ENDTEST - diff --git a/src/nvim/testdir/test17.ok b/src/nvim/testdir/test17.ok deleted file mode 100644 index b2a66d5f85..0000000000 --- a/src/nvim/testdir/test17.ok +++ /dev/null @@ -1,33 +0,0 @@ -This file is just to test "gf" in test 17. -The contents is not important. -Just testing! - - ---- 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) - - ---- 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) - - ---- 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) diff --git a/src/nvim/testdir/test17a.in b/src/nvim/testdir/test17a.in deleted file mode 100644 index 7e89364797..0000000000 --- a/src/nvim/testdir/test17a.in +++ /dev/null @@ -1,3 +0,0 @@ -This file is just to test "gf" in test 17. -The contents is not important. -Just testing! diff --git a/src/nvim/testdir/test_checkpath.vim b/src/nvim/testdir/test_checkpath.vim new file mode 100644 index 0000000000..a7557a107d --- /dev/null +++ b/src/nvim/testdir/test_checkpath.vim @@ -0,0 +1,113 @@ +" Tests for the :checkpath command + +" Test for 'include' without \zs or \ze +func Test_checkpath1() + let save_shellslash = &shellslash + set shellslash + 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& + let &shellslash = save_shellslash +endfunc + +func DotsToSlashes() + return substitute(v:fname, '\.', '/', 'g') . '.b' +endfunc + +" Test for 'include' with \zs and \ze +func Test_checkpath2() + let save_shellslash = &shellslash + set shellslash + 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& + let &shellslash = save_shellslash +endfunc + +func StripNewlineChar() + if v:fname =~ '\n$' + return v:fname[:-2] + endif + return v:fname +endfunc + +" Test for 'include' with \zs and no \ze +func Test_checkpath3() + let save_shellslash = &shellslash + set shellslash + 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& + let &shellslash = save_shellslash +endfunc diff --git a/src/nvim/testdir/test_gf.vim b/src/nvim/testdir/test_gf.vim index d233046d2b..accd21e9a3 100644 --- a/src/nvim/testdir/test_gf.vim +++ b/src/nvim/testdir/test_gf.vim @@ -64,3 +64,38 @@ func Test_gF() bwipe Xfile bwipe Xfile2 endfunc + +" Test for invoking 'gf' on a ${VAR} variable +func Test_gf() + if has("ebcdic") + set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,} + else + set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,} + endif + + call writefile(["Test for gf command"], "Xtest1") + if has("unix") + call writefile([" ${CDIR}/Xtest1"], "Xtestgf") + else + call writefile([" $TDIR/Xtest1"], "Xtestgf") + endif + new Xtestgf + if has("unix") + let $CDIR = "." + /CDIR + else + if has("amiga") + let $TDIR = "/testdir" + else + let $TDIR = "." + endif + /TDIR + endif + + normal gf + call assert_equal('Xtest1', fnamemodify(bufname(''), ":t")) + close! + + call delete('Xtest1') + call delete('Xtestgf') +endfunc |