diff src/testdir/test_eval_stuff.vim @ 13672:4a1efd1a6018 v8.0.1708

patch 8.0.1708: mkdir with 'p' flag fails on existing directory commit https://github.com/vim/vim/commit/78a16b0f2a142aae1fdc96c50ab0f25194d0e755 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Apr 14 13:51:55 2018 +0200 patch 8.0.1708: mkdir with 'p' flag fails on existing directory Problem: Mkdir with 'p' flag fails on existing directory, which is different from the mkdir shell command. Solution: Don't fail if the directory already exists. (James McCoy, closes #2775)
author Christian Brabandt <cb@256bit.org>
date Sat, 14 Apr 2018 14:00:06 +0200
parents 530943a23d3f
children bdbb049c2aa8
line wrap: on
line diff
--- a/src/testdir/test_eval_stuff.vim
+++ b/src/testdir/test_eval_stuff.vim
@@ -25,3 +25,20 @@ func Test_nocatch_restore_silent_emsg()
   let c5 = nr2char(screenchar(&lines, 5))
   call assert_equal('wrong', c1 . c2 . c3 . c4 . c5)
 endfunc
+
+func Test_mkdir_p()
+  call mkdir('Xmkdir/nested', 'p')
+  call assert_true(isdirectory('Xmkdir/nested'))
+  try
+    " Trying to make existing directories doesn't error
+    call mkdir('Xmkdir', 'p')
+    call mkdir('Xmkdir/nested', 'p')
+  catch /E739:/
+    call assert_report('mkdir(..., "p") failed for an existing directory')
+  endtry
+  " 'p' doesn't suppress real errors
+  call writefile([], 'Xfile')
+  call assert_fails('call mkdir("Xfile", "p")', 'E739')
+  call delete('Xfile')
+  call delete('Xmkdir', 'rf')
+endfunc