mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
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)
f0ab01f6d8
This commit is contained in:
parent
5a714c53f2
commit
210d803777
@ -22,7 +22,6 @@ SCRIPTS_DEFAULT = \
|
||||
|
||||
ifneq ($(OS),Windows_NT)
|
||||
SCRIPTS_DEFAULTS := $(SCRIPTS_DEFAULT) \
|
||||
test17.out \
|
||||
test49.out \
|
||||
|
||||
endif
|
||||
|
@ -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
|
||||
|
@ -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)
|
@ -1,3 +0,0 @@
|
||||
This file is just to test "gf" in test 17.
|
||||
The contents is not important.
|
||||
Just testing!
|
113
src/nvim/testdir/test_checkpath.vim
Normal file
113
src/nvim/testdir/test_checkpath.vim
Normal file
@ -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
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user