Mercurial > vim
annotate src/testdir/test_stat.vim @ 21960:402f745d2d2b
Added tag v8.2.1529 for changeset 67d4be2757b007a6433d5d8ff410c1f1e5a44444
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 27 Aug 2020 23:15:05 +0200 |
parents | 08940efa6b4e |
children | d7e1cf30728c |
rev | line source |
---|---|
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " Tests for stat functions and checktime |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
3 source check.vim |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
4 |
12150
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
5 func CheckFileTime(doSleep) |
15050
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
6 let fnames = ['Xtest1.tmp', 'Xtest2.tmp', 'Xtest3.tmp'] |
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
7 let times = [] |
12150
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
8 let result = 0 |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 |
19195
2ef19eed524a
patch 8.2.0156: various typos in source files and tests
Bram Moolenaar <Bram@vim.org>
parents:
17889
diff
changeset
|
10 " Use three files instead of localtim(), with a network filesystem the file |
15050
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
11 " times may differ at bit |
10805
750779134e67
patch 8.0.0292: the stat test is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
9387
diff
changeset
|
12 let fl = ['Hello World!'] |
15050
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
13 for fname in fnames |
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
14 call writefile(fl, fname) |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
15050
diff
changeset
|
15 call add(times, fname->getftime()) |
15050
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
16 if a:doSleep |
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
17 sleep 1 |
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
18 endif |
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
19 endfor |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 |
15050
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
21 let time_correct = (times[0] <= times[1] && times[1] <= times[2]) |
12150
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
22 if a:doSleep || time_correct |
15050
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
23 call assert_true(time_correct, printf('Expected %s <= %s <= %s', times[0], times[1], times[2])) |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
15050
diff
changeset
|
24 call assert_equal(strlen(fl[0] . "\n"), fnames[0]->getfsize()) |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
15050
diff
changeset
|
25 call assert_equal('file', fnames[0]->getftype()) |
15050
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
26 call assert_equal('rw-', getfperm(fnames[0])[0:2]) |
12150
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
27 let result = 1 |
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
28 endif |
10805
750779134e67
patch 8.0.0292: the stat test is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
9387
diff
changeset
|
29 |
15050
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
30 for fname in fnames |
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
31 call delete(fname) |
c7628d6bc0dc
patch 8.1.0536: file time test fails when using NFS
Bram Moolenaar <Bram@vim.org>
parents:
14609
diff
changeset
|
32 endfor |
12150
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
33 return result |
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
34 endfunc |
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
35 |
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
36 func Test_existent_file() |
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
37 " On some systems the file timestamp is rounded to a multiple of 2 seconds. |
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
38 " We need to sleep to handle that, but that makes the test slow. First try |
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
39 " without the sleep, and if it fails try again with the sleep. |
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
40 if CheckFileTime(0) == 0 |
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
41 call CheckFileTime(1) |
709b898e2119
patch 8.0.0955: Test_existent_file() fails on some file systems
Christian Brabandt <cb@256bit.org>
parents:
10805
diff
changeset
|
42 endif |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 endfunc |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
45 func Test_existent_directory() |
10805
750779134e67
patch 8.0.0292: the stat test is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
9387
diff
changeset
|
46 let dname = '.' |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
47 |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
48 call assert_equal(0, getfsize(dname)) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
49 call assert_equal('dir', getftype(dname)) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
50 call assert_equal('rwx', getfperm(dname)[0:2]) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
51 endfunc |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
52 |
14290
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
53 func SleepForTimestamp() |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
54 " FAT has a granularity of 2 seconds, otherwise it's usually 1 second |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
55 if has('win32') |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
56 sleep 2 |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
57 else |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
58 sleep 1 |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
59 endif |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
60 endfunc |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
61 |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
62 func Test_checktime() |
10805
750779134e67
patch 8.0.0292: the stat test is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
9387
diff
changeset
|
63 let fname = 'Xtest.tmp' |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
64 |
10805
750779134e67
patch 8.0.0292: the stat test is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
9387
diff
changeset
|
65 let fl = ['Hello World!'] |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
66 call writefile(fl, fname) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
67 set autoread |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
68 exec 'e' fname |
14290
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
69 call SleepForTimestamp() |
10805
750779134e67
patch 8.0.0292: the stat test is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
9387
diff
changeset
|
70 let fl = readfile(fname) |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
71 let fl[0] .= ' - checktime' |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
72 call writefile(fl, fname) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
73 checktime |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
74 call assert_equal(fl[0], getline(1)) |
10805
750779134e67
patch 8.0.0292: the stat test is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
9387
diff
changeset
|
75 |
750779134e67
patch 8.0.0292: the stat test is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
9387
diff
changeset
|
76 call delete(fname) |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
77 endfunc |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
78 |
14290
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
79 func Test_autoread_file_deleted() |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
80 new Xautoread |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
81 set autoread |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
82 call setline(1, 'original') |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
83 w! |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
84 |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
85 call SleepForTimestamp() |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
86 if has('win32') |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
87 silent !echo changed > Xautoread |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
88 else |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
89 silent !echo 'changed' > Xautoread |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
90 endif |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
91 checktime |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
92 call assert_equal('changed', trim(getline(1))) |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
93 |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
94 call SleepForTimestamp() |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
95 messages clear |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
96 if has('win32') |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
97 silent !del Xautoread |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
98 else |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
99 silent !rm Xautoread |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
100 endif |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
101 checktime |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
102 call assert_match('E211:', execute('messages')) |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
103 call assert_equal('changed', trim(getline(1))) |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
104 |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
105 call SleepForTimestamp() |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
106 if has('win32') |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
107 silent !echo recreated > Xautoread |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
108 else |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
109 silent !echo 'recreated' > Xautoread |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
110 endif |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
111 checktime |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
112 call assert_equal('recreated', trim(getline(1))) |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
113 |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
114 call delete('Xautoread') |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
115 bwipe! |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
116 endfunc |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
117 |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
118 |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
119 func Test_nonexistent_file() |
10805
750779134e67
patch 8.0.0292: the stat test is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
9387
diff
changeset
|
120 let fname = 'Xtest.tmp' |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
121 |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
122 call delete(fname) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
123 call assert_equal(-1, getftime(fname)) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
124 call assert_equal(-1, getfsize(fname)) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
125 call assert_equal('', getftype(fname)) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
126 call assert_equal('', getfperm(fname)) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
127 endfunc |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
128 |
14497
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
129 func Test_getftype() |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
130 call assert_equal('file', getftype(v:progpath)) |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
131 call assert_equal('dir', getftype('.')) |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
132 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
133 if !has('unix') |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
134 return |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
135 endif |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
136 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
137 silent !ln -s Xfile Xlink |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
138 call assert_equal('link', getftype('Xlink')) |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
139 call delete('Xlink') |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
140 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
141 if executable('mkfifo') |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
142 silent !mkfifo Xfifo |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
143 call assert_equal('fifo', getftype('Xfifo')) |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
144 call delete('Xfifo') |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
145 endif |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
146 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
147 for cdevfile in systemlist('find /dev -type c -maxdepth 2 2>/dev/null') |
17889
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
148 " On Mac /def/fd/2 is found but the type is "fifo" |
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
149 if cdevfile !~ '/dev/fd/' |
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
150 let type = getftype(cdevfile) |
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
151 " ignore empty result, can happen if the file disappeared |
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
152 if type != '' |
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
153 call assert_equal('cdev', type, 'for ' .. cdevfile) |
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
154 endif |
14609
40b10f98eb13
patch 8.1.0318: the getftype() test may fail for char devices
Christian Brabandt <cb@256bit.org>
parents:
14497
diff
changeset
|
155 endif |
14497
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
156 endfor |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
157 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
158 for bdevfile in systemlist('find /dev -type b -maxdepth 2 2>/dev/null') |
14609
40b10f98eb13
patch 8.1.0318: the getftype() test may fail for char devices
Christian Brabandt <cb@256bit.org>
parents:
14497
diff
changeset
|
159 let type = getftype(bdevfile) |
40b10f98eb13
patch 8.1.0318: the getftype() test may fail for char devices
Christian Brabandt <cb@256bit.org>
parents:
14497
diff
changeset
|
160 " ignore empty result, can happen if the file disappeared |
40b10f98eb13
patch 8.1.0318: the getftype() test may fail for char devices
Christian Brabandt <cb@256bit.org>
parents:
14497
diff
changeset
|
161 if type != '' |
17889
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
162 call assert_equal('bdev', type, 'for ' .. bdevfile) |
14609
40b10f98eb13
patch 8.1.0318: the getftype() test may fail for char devices
Christian Brabandt <cb@256bit.org>
parents:
14497
diff
changeset
|
163 endif |
14497
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
164 endfor |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
165 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
166 " The /run/ directory typically contains socket files. |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
167 " If it does not, test won't fail but will not test socket files. |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
168 for socketfile in systemlist('find /run -type s -maxdepth 2 2>/dev/null') |
14609
40b10f98eb13
patch 8.1.0318: the getftype() test may fail for char devices
Christian Brabandt <cb@256bit.org>
parents:
14497
diff
changeset
|
169 let type = getftype(socketfile) |
40b10f98eb13
patch 8.1.0318: the getftype() test may fail for char devices
Christian Brabandt <cb@256bit.org>
parents:
14497
diff
changeset
|
170 " ignore empty result, can happen if the file disappeared |
40b10f98eb13
patch 8.1.0318: the getftype() test may fail for char devices
Christian Brabandt <cb@256bit.org>
parents:
14497
diff
changeset
|
171 if type != '' |
17889
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
172 call assert_equal('socket', type, 'for ' .. socketfile) |
14609
40b10f98eb13
patch 8.1.0318: the getftype() test may fail for char devices
Christian Brabandt <cb@256bit.org>
parents:
14497
diff
changeset
|
173 endif |
14497
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
174 endfor |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
175 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
176 " TODO: file type 'other' is not tested. How can we test it? |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
177 endfunc |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
178 |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
179 func Test_win32_symlink_dir() |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
180 " On Windows, non-admin users cannot create symlinks. |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
181 " So we use an existing symlink for this test. |
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
182 CheckMSWindows |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
183 " Check if 'C:\Users\All Users' is a symlink to a directory. |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
184 let res = system('dir C:\Users /a') |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
185 if match(res, '\C<SYMLINKD> *All Users') >= 0 |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
186 " Get the filetype of the symlink. |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
187 call assert_equal('dir', getftype('C:\Users\All Users')) |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
188 else |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
189 throw 'Skipped: cannot find an existing symlink' |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
190 endif |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
191 endfunc |
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
192 |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
193 " vim: shiftwidth=2 sts=2 expandtab |