blob: a8d94c3a166eb22f07329677a7b3fc5bace7f979 [file] [log] [blame]
Bram Moolenaarda440d22016-01-16 21:27:23 +01001" Test for delete().
2
Bram Moolenaaraeb313f2020-11-27 19:13:28 +01003source check.vim
4
Bram Moolenaarda440d22016-01-16 21:27:23 +01005func Test_file_delete()
6 split Xfile
7 call setline(1, ['a', 'b'])
8 wq
9 call assert_equal(['a', 'b'], readfile('Xfile'))
10 call assert_equal(0, delete('Xfile'))
11 call assert_fails('call readfile("Xfile")', 'E484:')
12 call assert_equal(-1, delete('Xfile'))
Bram Moolenaar4520d442017-03-19 16:09:46 +010013 bwipe Xfile
Bram Moolenaarda440d22016-01-16 21:27:23 +010014endfunc
15
16func Test_dir_delete()
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010017 call mkdir('Xdirdel')
18 call assert_true(isdirectory('Xdirdel'))
19 call assert_equal(0, delete('Xdirdel', 'd'))
20 call assert_false(isdirectory('Xdirdel'))
21 call assert_equal(-1, delete('Xdirdel', 'd'))
Bram Moolenaarda440d22016-01-16 21:27:23 +010022endfunc
23
24func Test_recursive_delete()
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010025 call mkdir('Xrecdel')
26 call mkdir('Xrecdel/subdir')
27 call mkdir('Xrecdel/empty')
28 split Xrecdel/Xfile
Bram Moolenaarda440d22016-01-16 21:27:23 +010029 call setline(1, ['a', 'b'])
30 w
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010031 w Xrecdel/subdir/Xfile
Bram Moolenaarda440d22016-01-16 21:27:23 +010032 close
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010033 call assert_true(isdirectory('Xrecdel'))
34 call assert_equal(['a', 'b'], readfile('Xrecdel/Xfile'))
35 call assert_true(isdirectory('Xrecdel/subdir'))
36 call assert_equal(['a', 'b'], readfile('Xrecdel/subdir/Xfile'))
37 call assert_true('Xrecdel/empty'->isdirectory())
38 call assert_equal(0, delete('Xrecdel', 'rf'))
39 call assert_false(isdirectory('Xrecdel'))
40 call assert_equal(-1, delete('Xrecdel', 'd'))
41 bwipe Xrecdel/Xfile
42 bwipe Xrecdel/subdir/Xfile
Bram Moolenaarda440d22016-01-16 21:27:23 +010043endfunc
Bram Moolenaar43a34f92016-01-17 15:56:34 +010044
45func Test_symlink_delete()
Bram Moolenaaraeb313f2020-11-27 19:13:28 +010046 CheckUnix
Bram Moolenaar43a34f92016-01-17 15:56:34 +010047 split Xfile
48 call setline(1, ['a', 'b'])
49 wq
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010050 silent !ln -s Xfile Xdellink
Bram Moolenaar43a34f92016-01-17 15:56:34 +010051 " Delete the link, not the file
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010052 call assert_equal(0, delete('Xdellink'))
53 call assert_equal(-1, delete('Xdellink'))
Bram Moolenaar43a34f92016-01-17 15:56:34 +010054 call assert_equal(0, delete('Xfile'))
Bram Moolenaar4520d442017-03-19 16:09:46 +010055 bwipe Xfile
Bram Moolenaar43a34f92016-01-17 15:56:34 +010056endfunc
57
58func Test_symlink_dir_delete()
Bram Moolenaaraeb313f2020-11-27 19:13:28 +010059 CheckUnix
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010060 call mkdir('Xsymdir')
61 silent !ln -s Xsymdir Xdirlink
62 call assert_true(isdirectory('Xsymdir'))
63 call assert_true(isdirectory('Xdirlink'))
Bram Moolenaar43a34f92016-01-17 15:56:34 +010064 " Delete the link, not the directory
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010065 call assert_equal(0, delete('Xdirlink'))
66 call assert_equal(-1, delete('Xdirlink'))
67 call assert_equal(0, delete('Xsymdir', 'd'))
Bram Moolenaar43a34f92016-01-17 15:56:34 +010068endfunc
69
70func Test_symlink_recursive_delete()
Bram Moolenaaraeb313f2020-11-27 19:13:28 +010071 CheckUnix
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010072 call mkdir('Xrecdir3')
73 call mkdir('Xrecdir3/subdir')
74 call mkdir('Xrecdir4')
75 split Xrecdir3/Xfile
Bram Moolenaar43a34f92016-01-17 15:56:34 +010076 call setline(1, ['a', 'b'])
77 w
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010078 w Xrecdir3/subdir/Xfile
79 w Xrecdir4/Xfile
Bram Moolenaar43a34f92016-01-17 15:56:34 +010080 close
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010081 silent !ln -s ../Xrecdir4 Xrecdir3/Xreclink
Bram Moolenaar43a34f92016-01-17 15:56:34 +010082
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010083 call assert_true(isdirectory('Xrecdir3'))
84 call assert_equal(['a', 'b'], readfile('Xrecdir3/Xfile'))
85 call assert_true(isdirectory('Xrecdir3/subdir'))
86 call assert_equal(['a', 'b'], readfile('Xrecdir3/subdir/Xfile'))
87 call assert_true(isdirectory('Xrecdir4'))
88 call assert_true(isdirectory('Xrecdir3/Xreclink'))
89 call assert_equal(['a', 'b'], readfile('Xrecdir4/Xfile'))
Bram Moolenaar43a34f92016-01-17 15:56:34 +010090
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010091 call assert_equal(0, delete('Xrecdir3', 'rf'))
92 call assert_false(isdirectory('Xrecdir3'))
93 call assert_equal(-1, delete('Xrecdir3', 'd'))
Bram Moolenaar43a34f92016-01-17 15:56:34 +010094 " symlink is deleted, not the directory it points to
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +010095 call assert_true(isdirectory('Xrecdir4'))
96 call assert_equal(['a', 'b'], readfile('Xrecdir4/Xfile'))
97 call assert_equal(0, delete('Xrecdir4/Xfile'))
98 call assert_equal(0, delete('Xrecdir4', 'd'))
Bram Moolenaar4520d442017-03-19 16:09:46 +010099
Bram Moolenaar3b0d70f2022-08-29 22:31:20 +0100100 bwipe Xrecdir3/Xfile
101 bwipe Xrecdir3/subdir/Xfile
102 bwipe Xrecdir4/Xfile
Bram Moolenaar43a34f92016-01-17 15:56:34 +0100103endfunc
Bram Moolenaar17aca702019-05-16 22:24:55 +0200104
105func Test_delete_errors()
106 call assert_fails('call delete('''')', 'E474:')
107 call assert_fails('call delete(''foo'', 0)', 'E15:')
108endfunc
Bram Moolenaar6d91bcb2020-08-12 18:50:36 +0200109
110" vim: shiftwidth=2 sts=2 expandtab