mirror of
https://github.com/neovim/neovim.git
synced 2026-02-12 23:42:19 +10:00
Vim creates these scripts in test1 depending on what build features are enabled so that tests that use these features are skiped if necessary. Because Neovim only has one type of build (and the features +eval, +windows, and +multi-byte are enabled in this build) they are not necessary.
133 lines
2.4 KiB
Plaintext
133 lines
2.4 KiB
Plaintext
Tests for:
|
||
- "gf" on ${VAR},
|
||
- ":checkpath!" with various 'include' settings.
|
||
|
||
STARTTEST
|
||
:set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}
|
||
:function! DeleteDirectory(dir)
|
||
: if has("win16") || has("win32") || has("win64") || has("dos16") || has("dos32")
|
||
: exec "silent !rmdir /Q /S " . a:dir
|
||
: else
|
||
: exec "silent !rm -rf " . a:dir
|
||
: endif
|
||
:endfun
|
||
: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 DeleteDirectory("Xdir1")
|
||
:!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 DeleteDirectory("Xdir1")
|
||
:!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 DeleteDirectory("Xdir1")
|
||
:!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
|
||
|