comparison src/testdir/test_delete.vim @ 7629:befbed72da87 v7.4.1114

commit https://github.com/vim/vim/commit/43a34f9f74fdce462fa250baab620264c28b6165 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jan 17 15:56:34 2016 +0100 patch 7.4.1114 Problem: delete() does not work well with symbolic links. Solution: Recognize symbolik links.
author Christian Brabandt <cb@256bit.org>
date Sun, 17 Jan 2016 16:00:05 +0100
parents 228ff048db20
children b44fc33ef92a
comparison
equal deleted inserted replaced
7628:d74db83fa956 7629:befbed72da87
32 call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile')) 32 call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile'))
33 call assert_equal(0, delete('Xdir1', 'rf')) 33 call assert_equal(0, delete('Xdir1', 'rf'))
34 call assert_false(isdirectory('Xdir1')) 34 call assert_false(isdirectory('Xdir1'))
35 call assert_equal(-1, delete('Xdir1', 'd')) 35 call assert_equal(-1, delete('Xdir1', 'd'))
36 endfunc 36 endfunc
37
38 func Test_symlink_delete()
39 if !has('unix')
40 return
41 endif
42 split Xfile
43 call setline(1, ['a', 'b'])
44 wq
45 silent !ln -s Xfile Xlink
46 " Delete the link, not the file
47 call assert_equal(0, delete('Xlink'))
48 call assert_equal(-1, delete('Xlink'))
49 call assert_equal(0, delete('Xfile'))
50 endfunc
51
52 func Test_symlink_dir_delete()
53 if !has('unix')
54 return
55 endif
56 call mkdir('Xdir1')
57 silent !ln -s Xdir1 Xlink
58 call assert_true(isdirectory('Xdir1'))
59 call assert_true(isdirectory('Xlink'))
60 " Delete the link, not the directory
61 call assert_equal(0, delete('Xlink'))
62 call assert_equal(-1, delete('Xlink'))
63 call assert_equal(0, delete('Xdir1', 'd'))
64 endfunc
65
66 func Test_symlink_recursive_delete()
67 if !has('unix')
68 return
69 endif
70 call mkdir('Xdir3')
71 call mkdir('Xdir3/subdir')
72 call mkdir('Xdir4')
73 split Xdir3/Xfile
74 call setline(1, ['a', 'b'])
75 w
76 w Xdir3/subdir/Xfile
77 w Xdir4/Xfile
78 close
79 silent !ln -s ../Xdir4 Xdir3/Xlink
80
81 call assert_true(isdirectory('Xdir3'))
82 call assert_equal(['a', 'b'], readfile('Xdir3/Xfile'))
83 call assert_true(isdirectory('Xdir3/subdir'))
84 call assert_equal(['a', 'b'], readfile('Xdir3/subdir/Xfile'))
85 call assert_true(isdirectory('Xdir4'))
86 call assert_true(isdirectory('Xdir3/Xlink'))
87 call assert_equal(['a', 'b'], readfile('Xdir4/Xfile'))
88
89 call assert_equal(0, delete('Xdir3', 'rf'))
90 call assert_false(isdirectory('Xdir3'))
91 call assert_equal(-1, delete('Xdir3', 'd'))
92 " symlink is deleted, not the directory it points to
93 call assert_true(isdirectory('Xdir4'))
94 call assert_equal(['a', 'b'], readfile('Xdir4/Xfile'))
95 call assert_equal(0, delete('Xdir4/Xfile'))
96 call assert_equal(0, delete('Xdir4', 'd'))
97 endfunc