Mercurial > vim
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 |