Mercurial > vim
changeset 4956:5cd32322154c v7.3.1223
updated for version 7.3.1223
Problem: Tests fail on MS-Windows.
Solution: Avoid depending on OS version. Use DOS commands instead of Unix
commands. (Taro Muraoka, Ken Takata)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 19 Jun 2013 21:17:31 +0200 |
parents | 6027cd2c471c |
children | 9608d9953dc2 |
files | src/testdir/test17.in src/testdir/test50.in src/testdir/test71.in src/testdir/test77.in src/version.c |
diffstat | 5 files changed, 43 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test17.in +++ b/src/testdir/test17.in @@ -9,6 +9,13 @@ STARTTEST :else : set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,} :endif +: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 @@ -20,6 +27,11 @@ STARTTEST :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 :w! test.out :brewind @@ -31,10 +43,11 @@ ENDTEST STARTTEST :" check for 'include' without \zs or \ze :lang C -:!rm -f ./Xbase.a -:!rm -rf ./Xdir1 -:!mkdir -p Xdir1/dir2 -:e Xdir1/dir2/foo.a +: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 @@ -55,15 +68,16 @@ ENDTEST STARTTEST :" check for 'include' with \zs and \ze -:!rm -f ./Xbase.b -:!rm -rf ./Xdir1 -:!mkdir -p Xdir1/dir2 +: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 +:e! Xdir1/dir2/foo.b i%inc /bar/ :w :e Xdir1/dir2/bar.b @@ -84,9 +98,10 @@ ENDTEST STARTTEST :" check for 'include' with \zs and no \ze -:!rm -f ./Xbase.c -:!rm -rf ./Xdir1 -:!mkdir -p Xdir1/dir2 +: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$' @@ -95,7 +110,7 @@ STARTTEST : return v:fname :endfunction :let &includeexpr='StripNewlineChar()' -:e Xdir1/dir2/foo.c +:e! Xdir1/dir2/foo.c i%inc bar.c :w :e Xdir1/dir2/bar.c @@ -115,6 +130,10 @@ i%inc FALSE.c foo.c :checkpath! :redir END :brewind +:" replace "\" to "/" for Windows +:e test.out +:%s#\\#/#g +:w :q ENDTEST
--- a/src/testdir/test50.in +++ b/src/testdir/test50.in @@ -33,7 +33,7 @@ endfun " This could change for CygWin to //cygdrive/c let dir1='c:/x.x.y' if filereadable(dir1) || isdirectory(dir1) - call confirm( "'".dir1."' exists, cannot run test" ) + echo "FATAL: '".dir1."' exists, cannot run test" return endif let file1=dir1.'/zz.y.txt' @@ -41,13 +41,18 @@ endfun let dir2=dir1.'/VimIsTheGreatestSinceSlicedBread' let file2=dir2.'/z.txt' let nofile2=dir2.'/zz.txt' - let resdir1='c:/XX2235~1.Y' + call MakeDir( dir1 ) + let resdir1 = substitute(fnamemodify(dir1, ':p:8'), '\\$', '', '') + if resdir1 !~ '\V\^c:/XX\x\x\x\x~1.Y\$' + echo "FATAL: unexpected short name: " . resdir1 + echo "INFO: please report your OS to vim-dev" + return + endif let resfile1=resdir1.'/ZZY~1.TXT' let resnofile1=resdir1.'/z.y.txt' let resdir2=resdir1.'/VIMIST~1' let resfile2=resdir2.'/z.txt' let resnofile2=resdir2.'/zz.txt' - call MakeDir( dir1 ) call MakeDir( dir2 ) call MakeFile( file1 ) call MakeFile( file2 )
--- a/src/testdir/test71.in +++ b/src/testdir/test71.in @@ -8,7 +8,7 @@ STARTTEST :let cm0_bytes = getline('.', '.') :/^start of cm=blowfish bytes/+1 :let cm1_bytes = getline('.', '.') -:bwipe +:bwipe! :call append(0, text_lines) :$d :X