1
0
forked from aniani/vim

patch 8.1.1285: test17 is old style

Problem:    Test17 is old style.
Solution:   Turn into new style test. (Yegappan Lakshmanan, closes #4347)
This commit is contained in:
Bram Moolenaar
2019-05-06 22:00:00 +02:00
parent d136221129
commit f0ab01f6d8
9 changed files with 145 additions and 175 deletions

View File

@@ -2175,7 +2175,7 @@ test_libvterm:
# These do not depend on the executable, compile it when needed.
test1 \
test_eval \
test3 test17 \
test3 \
test29 test30 test37 test39 \
test42 test44 test48 test49 \
test52 test59 \

View File

@@ -44,7 +44,6 @@ SCRIPTS_MORE2 = \
# Tests that run on most systems, but not on VMS
SCRIPTS_MORE4 = \
test17.out \
test30.out \
test59.out \
test72.out \
@@ -82,6 +81,7 @@ NEW_TESTS = \
test_channel \
test_charsearch \
test_charsearch_utf8 \
test_checkpath \
test_cindent \
test_clientserver \
test_close_count \
@@ -302,6 +302,7 @@ NEW_TESTS_RES = \
test_changelist.res \
test_channel.res \
test_charsearch.res \
test_checkpath.res \
test_cindent.res \
test_clientserver.res \
test_close_count.res \

View File

@@ -83,7 +83,6 @@ SCRIPT = test1.out test3.out \
test_eval.out
# Known problems:
# test17: ?
#
# test30: bug, most probably - a problem around mac format
#
@@ -102,7 +101,7 @@ GUI_OPTION = -g
.ENDIF
.IFDEF WANT_UNIX
SCRIPT_UNIX = test10.out test17.out test27.out test49.out
SCRIPT_UNIX = test10.out test27.out test49.out
.ENDIF
.IFDEF WANT_WIN

View File

@@ -1,135 +0,0 @@
Tests for:
- "gf" on ${VAR},
- ":checkpath!" with various 'include' settings.
STARTTEST
:so small.vim
:if has("ebcdic")
: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}
:else
: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}
:endif
:"
:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $TDIR = "."
:endif
/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

View File

@@ -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)

View File

@@ -1,3 +0,0 @@
This file is just to test "gf" in test 17.
The contents is not important.
Just testing!

View File

@@ -0,0 +1,104 @@
" Tests for the :checkpath command
" 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
func DotsToSlashes()
return substitute(v:fname, '\.', '/', 'g') . '.b'
endfunc
" 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&
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()
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&
endfunc

View File

@@ -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

View File

@@ -767,6 +767,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1285,
/**/
1284,
/**/