]> granicus.if.org Git - vim/commitdiff
patch 8.1.0262: not enough testing for getftype() v8.1.0262
authorBram Moolenaar <Bram@vim.org>
Thu, 9 Aug 2018 20:08:57 +0000 (22:08 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 9 Aug 2018 20:08:57 +0000 (22:08 +0200)
Problem:    Not enough testing for getftype().
Solution:   Add a test. (Dominique Pelle, closes #3300)

src/evalfunc.c
src/testdir/test_stat.vim
src/version.c

index 31096d75dbbc97b16423de9a8e20e628e4c681ef..9673a1ae3de06d039b3dfec0cb337f0a7afd7469 100644 (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";
index 307cf5e6402a197defd33440bf3ca094458a555b..c6272666462b7bfd2a6d2238ad49a10e4402009b 100644 (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.
index 9e2ee2e8f8e59e4f1c413e06ecf4608bffd660e9..1cd58f0c8258079ec31a512d1c044b510566747f 100644 (file)
@@ -794,6 +794,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    262,
 /**/
     261,
 /**/