Mercurial > vim
annotate src/testdir/test_stat.vim @ 31738:ad0712119bee v9.0.1201
patch 9.0.1201: assignment with operator doesn't work in object method
Commit: https://github.com/vim/vim/commit/4cae845ce32797bcae845aacf740ed865b479f34
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 15 15:51:48 2023 +0000
patch 9.0.1201: assignment with operator doesn't work in object method
Problem: Assignment with operator doesn't work in object method.
Solution: Handle loading the object member. (closes https://github.com/vim/vim/issues/11820) Add a few more
tests.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 15 Jan 2023 17:00:04 +0100 |
parents | ae10b91ac6b3 |
children |
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!'] |
30769
ae10b91ac6b3
patch 9.0.0719: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
30051
diff
changeset
|
66 call writefile(fl, fname, 'D') |
9387
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)) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
75 endfunc |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
76 |
25953
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
77 func Test_checktime_fast() |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
78 CheckFeature nanotime |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
79 |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
80 let fname = 'Xtest.tmp' |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
81 |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
82 let fl = ['Hello World!'] |
30769
ae10b91ac6b3
patch 9.0.0719: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
30051
diff
changeset
|
83 call writefile(fl, fname, 'D') |
25953
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
84 set autoread |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
85 exec 'e' fname |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
86 let fl = readfile(fname) |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
87 let fl[0] .= ' - checktime' |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
88 call writefile(fl, fname) |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
89 checktime |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
90 call assert_equal(fl[0], getline(1)) |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
91 endfunc |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
92 |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
93 func Test_autoread_fast() |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
94 CheckFeature nanotime |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
95 |
25961
a21a47c83e0c
patch 8.2.3514: autoread test with nano second time sometimes fails
Bram Moolenaar <Bram@vim.org>
parents:
25957
diff
changeset
|
96 " this is timing sensitive |
a21a47c83e0c
patch 8.2.3514: autoread test with nano second time sometimes fails
Bram Moolenaar <Bram@vim.org>
parents:
25957
diff
changeset
|
97 let g:test_is_flaky = 1 |
a21a47c83e0c
patch 8.2.3514: autoread test with nano second time sometimes fails
Bram Moolenaar <Bram@vim.org>
parents:
25957
diff
changeset
|
98 |
25953
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
99 new Xautoread |
25961
a21a47c83e0c
patch 8.2.3514: autoread test with nano second time sometimes fails
Bram Moolenaar <Bram@vim.org>
parents:
25957
diff
changeset
|
100 setlocal autoread |
25953
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
101 call setline(1, 'foo') |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
102 w! |
26002
c45e990847e5
patch 8.2.3534: autoread test is a bit flaky
Bram Moolenaar <Bram@vim.org>
parents:
25961
diff
changeset
|
103 sleep 10m |
30769
ae10b91ac6b3
patch 9.0.0719: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
30051
diff
changeset
|
104 call writefile(['bar'], 'Xautoread', 'D') |
25957
08f63df32e8e
patch 8.2.3512: timestamp test fails on some systems
Bram Moolenaar <Bram@vim.org>
parents:
25953
diff
changeset
|
105 sleep 10m |
25953
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
106 checktime |
25961
a21a47c83e0c
patch 8.2.3514: autoread test with nano second time sometimes fails
Bram Moolenaar <Bram@vim.org>
parents:
25957
diff
changeset
|
107 call assert_equal('bar', trim(getline(1))) |
25953
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
108 endfunc |
d7e1cf30728c
patch 8.2.3510: changes are only detected with one second accuracy
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
109 |
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
|
110 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
|
111 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
|
112 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
|
113 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
|
114 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
|
115 |
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 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
|
117 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
|
118 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
|
119 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
|
120 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
|
121 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
|
122 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
|
123 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
|
124 |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
125 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
|
126 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
|
127 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
|
128 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
|
129 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
|
130 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
|
131 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
|
132 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
|
133 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
|
134 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
|
135 |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
136 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
|
137 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
|
138 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
|
139 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
|
140 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
|
141 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
|
142 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
|
143 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
|
144 |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
145 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
|
146 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
|
147 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
|
148 |
977cab3d5474
patch 8.1.0161: buffer not updated with 'autoread' set if file was deleted
Christian Brabandt <cb@256bit.org>
parents:
12150
diff
changeset
|
149 |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
150 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
|
151 let fname = 'Xtest.tmp' |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
152 |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
153 call delete(fname) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
154 call assert_equal(-1, getftime(fname)) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
155 call assert_equal(-1, getfsize(fname)) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
156 call assert_equal('', getftype(fname)) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
157 call assert_equal('', getfperm(fname)) |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
158 endfunc |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
159 |
14497
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
160 func Test_getftype() |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
161 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
|
162 call assert_equal('dir', getftype('.')) |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
163 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
164 if !has('unix') |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
165 return |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
166 endif |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
167 |
30051
13b02c1ea0f7
patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents:
26002
diff
changeset
|
168 silent !ln -s Xlinkfile Xlink |
14497
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
169 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
|
170 call delete('Xlink') |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
171 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
172 if executable('mkfifo') |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
173 silent !mkfifo Xfifo |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
174 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
|
175 call delete('Xfifo') |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
176 endif |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
177 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
178 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
|
179 " 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
|
180 if cdevfile !~ '/dev/fd/' |
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
181 let type = getftype(cdevfile) |
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
182 " 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
|
183 if type != '' |
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
184 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
|
185 endif |
14609
40b10f98eb13
patch 8.1.0318: the getftype() test may fail for char devices
Christian Brabandt <cb@256bit.org>
parents:
14497
diff
changeset
|
186 endif |
14497
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
187 endfor |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
188 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
189 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
|
190 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
|
191 " 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
|
192 if type != '' |
17889
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
193 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
|
194 endif |
14497
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
195 endfor |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
196 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
197 " 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
|
198 " 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
|
199 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
|
200 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
|
201 " 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
|
202 if type != '' |
17889
0d64e74be8b2
patch 8.1.1941: getftype() test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
203 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
|
204 endif |
14497
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
205 endfor |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
206 |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
207 " 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
|
208 endfunc |
a7b2dc5f1306
patch 8.1.0262: not enough testing for getftype()
Christian Brabandt <cb@256bit.org>
parents:
14290
diff
changeset
|
209 |
9387
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
210 func Test_win32_symlink_dir() |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
211 " 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
|
212 " 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
|
213 CheckMSWindows |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
214 " 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
|
215 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
|
216 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
|
217 " 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
|
218 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
|
219 else |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
220 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
|
221 endif |
f094d4085014
commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
222 endfunc |
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
223 |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19195
diff
changeset
|
224 " vim: shiftwidth=2 sts=2 expandtab |