diff src/testdir/test_stat.vim @ 14497:a7b2dc5f1306 v8.1.0262

patch 8.1.0262: not enough testing for getftype() commit https://github.com/vim/vim/commit/1598f9937a18c056d7b713dc254325c8f8456c8f Author: Bram Moolenaar <Bram@vim.org> Date: Thu Aug 9 22:08:57 2018 +0200 patch 8.1.0262: not enough testing for getftype() Problem: Not enough testing for getftype(). Solution: Add a test. (Dominique Pelle, closes https://github.com/vim/vim/issues/3300)
author Christian Brabandt <cb@256bit.org>
date Thu, 09 Aug 2018 22:15:04 +0200
parents 977cab3d5474
children 40b10f98eb13
line wrap: on
line diff
--- a/src/testdir/test_stat.vim
+++ b/src/testdir/test_stat.vim
@@ -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.