0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.1.0262: not enough testing for getftype()

Problem:    Not enough testing for getftype().
Solution:   Add a test. (Dominique Pelle, closes #3300)
This commit is contained in:
Bram Moolenaar 2018-08-09 22:08:57 +02:00
parent 38efd1d17a
commit 1598f9937a
3 changed files with 38 additions and 1 deletions

View File

@ -5111,7 +5111,7 @@ f_getftype(typval_T *argvars, typval_T *rettv)
# endif
# ifdef S_ISSOCK
else if (S_ISSOCK(st.st_mode))
t = "fifo";
t = "socket";
# endif
else
t = "other";

View File

@ -122,6 +122,41 @@ func Test_nonexistent_file()
call assert_equal('', getfperm(fname))
endfunc
func Test_getftype()
call assert_equal('file', getftype(v:progpath))
call assert_equal('dir', getftype('.'))
if !has('unix')
return
endif
silent !ln -s Xfile Xlink
call assert_equal('link', getftype('Xlink'))
call delete('Xlink')
if executable('mkfifo')
silent !mkfifo Xfifo
call assert_equal('fifo', getftype('Xfifo'))
call delete('Xfifo')
endif
for cdevfile in systemlist('find /dev -type c -maxdepth 2 2>/dev/null')
call assert_equal('cdev', getftype(cdevfile))
endfor
for bdevfile in systemlist('find /dev -type b -maxdepth 2 2>/dev/null')
call assert_equal('bdev', getftype(bdevfile))
endfor
" The /run/ directory typically contains socket files.
" If it does not, test won't fail but will not test socket files.
for socketfile in systemlist('find /run -type s -maxdepth 2 2>/dev/null')
call assert_equal('socket', getftype(socketfile))
endfor
" TODO: file type 'other' is not tested. How can we test it?
endfunc
func Test_win32_symlink_dir()
" On Windows, non-admin users cannot create symlinks.
" So we use an existing symlink for this test.

View File

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