vim-patch:8.1.0318: the getftype() test may fail for char devices

Problem:    The getftype() test may fail for char devices if the file
            disappeared in between the listing and the getftype() call.
Solution:   Ignore empty result. (Ozaki Kiichi, closes vim/vim#3360)
3b3a506f57
This commit is contained in:
Jan Edmund Lazo 2018-11-17 22:37:31 -05:00
parent 2b7e58cb2c
commit eab181a74e

View File

@ -141,17 +141,29 @@ func Test_getftype()
endif
for cdevfile in systemlist('find /dev -type c -maxdepth 2 2>/dev/null')
call assert_equal('cdev', getftype(cdevfile))
let type = getftype(cdevfile)
" ignore empty result, can happen if the file disappeared
if type != ''
call assert_equal('cdev', type)
endif
endfor
for bdevfile in systemlist('find /dev -type b -maxdepth 2 2>/dev/null')
call assert_equal('bdev', getftype(bdevfile))
let type = getftype(bdevfile)
" ignore empty result, can happen if the file disappeared
if type != ''
call assert_equal('bdev', type)
endif
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))
let type = getftype(socketfile)
" ignore empty result, can happen if the file disappeared
if type != ''
call assert_equal('socket', type)
endif
endfor
" TODO: file type 'other' is not tested. How can we test it?