mirror of
https://github.com/neovim/neovim.git
synced 2026-04-30 03:04:13 +00: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.
90 lines
2.7 KiB
Plaintext
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
|
|
|