Files
neovim/src/nvim/testdir/test50.in
Michael Ennen e70cae426c test: Remove references to tiny.vim/small.vim/mbyte.vim
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.
2016-05-22 15:55:38 -04:00

90 lines
2.7 KiB
Plaintext

Test for shortpathname ':8' extension.
Only for use on Win32 systems!
STARTTEST
:fun! TestIt(file, bits, expected)
let res=fnamemodify(a:file,a:bits)
if a:expected == ''
echo "'".a:file."'->(".a:bits.")->'".res."'"
else
if substitute(res,'/','\\', 'g') != substitute( a:expected, '/','\\', 'g')
echo "FAILED: '".a:file."'->(".a:bits.")->'".res."'"
echo "Expected: '".a:expected."'"
else
echo "OK"
endif
endif
endfun
:fun! MakeDir( dirname )
"exe '!mkdir '.substitute(a:dirname,'/','\\','g')
call system('mkdir '.substitute(a:dirname,'/','\\','g'))
endfun
:fun! RMDir( dirname)
"exe '!rmdir '.substitute(a:dirname,'/','\\','g')
call system('rmdir '.substitute(a:dirname,'/','\\','g'))
endfun
:fun! MakeFile( filename)
"exe '!copy nul '.substitute(a:filename,'/','\\','g')
call system('copy nul '.substitute(a:filename,'/','\\','g'))
endfun
:fun! TestColonEight()
redir! >test.out
" This could change for CygWin to //cygdrive/c
let dir1='c:/x.x.y'
if filereadable(dir1) || isdirectory(dir1)
echo "FATAL: '".dir1."' exists, cannot run test"
return
endif
let file1=dir1.'/zz.y.txt'
let nofile1=dir1.'/z.y.txt'
let dir2=dir1.'/VimIsTheGreatestSinceSlicedBread'
let file2=dir2.'/z.txt'
let nofile2=dir2.'/zz.txt'
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( dir2 )
call MakeFile( file1 )
call MakeFile( file2 )
call TestIt(file1, ':p:8', resfile1)
call TestIt(nofile1, ':p:8', resnofile1)
call TestIt(file2, ':p:8', resfile2)
call TestIt(nofile2, ':p:8', resnofile2)
call TestIt(nofile2, ':p:8:h', fnamemodify(resnofile2,':h'))
exe 'cd '.dir1
call TestIt(file1, ':.:8', strpart(resfile1,strlen(resdir1)+1))
call TestIt(nofile1, ':.:8', strpart(resnofile1,strlen(resdir1)+1))
call TestIt(file2, ':.:8', strpart(resfile2,strlen(resdir1)+1))
call TestIt(nofile2, ':.:8', strpart(resnofile2,strlen(resdir1)+1))
let $HOME=dir1
call TestIt(file1, ':~:8', '~'.strpart(resfile1,strlen(resdir1)))
call TestIt(nofile1, ':~:8', '~'.strpart(resnofile1,strlen(resdir1)))
call TestIt(file2, ':~:8', '~'.strpart(resfile2,strlen(resdir1)))
call TestIt(nofile2, ':~:8', '~'.strpart(resnofile2,strlen(resdir1)))
cd c:/
call delete( file2 )
call delete( file1 )
call RMDir( dir2 )
call RMDir( dir1 )
echo
redir END
endfun
:let dir = getcwd()
:call TestColonEight()
:exe "cd " . dir
:edit! test.out
:set ff=dos
:w
:qa!
ENDTEST