Mercurial > vim
comparison src/testdir/test_findfile.vim @ 29970:d891115c0aea v9.0.0323
patch 9.0.0323: using common name in tests leads to flaky tests
Commit: https://github.com/vim/vim/commit/3b0d70f4ff436cb144683dafd956e8a3ee485a90
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Aug 29 22:31:20 2022 +0100
patch 9.0.0323: using common name in tests leads to flaky tests
Problem: Using common name in tests leads to flaky tests.
Solution: Rename files and directories to be more specific.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 29 Aug 2022 23:45:04 +0200 |
parents | af5c4fabcf40 |
children | a7a9e8b9af89 |
comparison
equal
deleted
inserted
replaced
29969:5f2d38cacd6c | 29970:d891115c0aea |
---|---|
1 " Test findfile() and finddir() | 1 " Test findfile() and finddir() |
2 | 2 |
3 let s:files = [ 'Xdir1/foo', | 3 let s:files = [ 'Xfinddir1/foo', |
4 \ 'Xdir1/bar', | 4 \ 'Xfinddir1/bar', |
5 \ 'Xdir1/Xdir2/foo', | 5 \ 'Xfinddir1/Xdir2/foo', |
6 \ 'Xdir1/Xdir2/foobar', | 6 \ 'Xfinddir1/Xdir2/foobar', |
7 \ 'Xdir1/Xdir2/Xdir3/bar', | 7 \ 'Xfinddir1/Xdir2/Xdir3/bar', |
8 \ 'Xdir1/Xdir2/Xdir3/barfoo' ] | 8 \ 'Xfinddir1/Xdir2/Xdir3/barfoo' ] |
9 | 9 |
10 func CreateFiles() | 10 func CreateFiles() |
11 call mkdir('Xdir1/Xdir2/Xdir3/Xdir2', 'p') | 11 call mkdir('Xfinddir1/Xdir2/Xdir3/Xdir2', 'p') |
12 for f in s:files | 12 for f in s:files |
13 call writefile([], f) | 13 call writefile([], f) |
14 endfor | 14 endfor |
15 endfunc | 15 endfunc |
16 | 16 |
17 func CleanFiles() | 17 func CleanFiles() |
18 " Safer to delete each file even if it's more verbose | 18 " Safer to delete each file even if it's more verbose |
19 " than doing a recursive delete('Xdir1', 'rf'). | 19 " than doing a recursive delete('Xfinddir1', 'rf'). |
20 for f in s:files | 20 for f in s:files |
21 call delete(f) | 21 call delete(f) |
22 endfor | 22 endfor |
23 | 23 |
24 call delete('Xdir1/Xdir2/Xdir3/Xdir2', 'd') | 24 call delete('Xfinddir1/Xdir2/Xdir3/Xdir2', 'd') |
25 call delete('Xdir1/Xdir2/Xdir3', 'd') | 25 call delete('Xfinddir1/Xdir2/Xdir3', 'd') |
26 call delete('Xdir1/Xdir2', 'd') | 26 call delete('Xfinddir1/Xdir2', 'd') |
27 call delete('Xdir1', 'd') | 27 call delete('Xfinddir1', 'd') |
28 endfunc | 28 endfunc |
29 | 29 |
30 " Test findfile({name} [, {path} [, {count}]]) | 30 " Test findfile({name} [, {path} [, {count}]]) |
31 func Test_findfile() | 31 func Test_findfile() |
32 let save_path = &path | 32 let save_path = &path |
33 let save_shellslash = &shellslash | 33 let save_shellslash = &shellslash |
34 let save_dir = getcwd() | 34 let save_dir = getcwd() |
35 set shellslash | 35 set shellslash |
36 call CreateFiles() | 36 call CreateFiles() |
37 cd Xdir1 | 37 cd Xfinddir1 |
38 e Xdir2/foo | 38 e Xdir2/foo |
39 | 39 |
40 " With ,, in path, findfile() searches in current directory. | 40 " With ,, in path, findfile() searches in current directory. |
41 set path=,, | 41 set path=,, |
42 call assert_equal('foo', findfile('foo')) | 42 call assert_equal('foo', findfile('foo')) |
81 call assert_equal(['bar', 'Xdir2/Xdir3/bar'], findfile('bar', '**', -1)) | 81 call assert_equal(['bar', 'Xdir2/Xdir3/bar'], findfile('bar', '**', -1)) |
82 | 82 |
83 " Test upwards search. | 83 " Test upwards search. |
84 cd Xdir2/Xdir3 | 84 cd Xdir2/Xdir3 |
85 call assert_equal('bar', findfile('bar', ';')) | 85 call assert_equal('bar', findfile('bar', ';')) |
86 call assert_match('.*/Xdir1/Xdir2/foo', findfile('foo', ';')) | 86 call assert_match('.*/Xfinddir1/Xdir2/foo', findfile('foo', ';')) |
87 call assert_match('.*/Xdir1/Xdir2/foo', findfile('foo', ';', 1)) | 87 call assert_match('.*/Xfinddir1/Xdir2/foo', findfile('foo', ';', 1)) |
88 call assert_match('.*/Xdir1/foo', findfile('foo', ';', 2)) | 88 call assert_match('.*/Xfinddir1/foo', findfile('foo', ';', 2)) |
89 call assert_match('.*/Xdir1/foo', findfile('foo', ';', 2)) | 89 call assert_match('.*/Xfinddir1/foo', findfile('foo', ';', 2)) |
90 call assert_match('.*/Xdir1/Xdir2/foo', findfile('foo', 'Xdir2;', 1)) | 90 call assert_match('.*/Xfinddir1/Xdir2/foo', findfile('foo', 'Xdir2;', 1)) |
91 call assert_equal('', findfile('foo', 'Xdir2;', 2)) | 91 call assert_equal('', findfile('foo', 'Xdir2;', 2)) |
92 | 92 |
93 " List l should have at least 2 values (possibly more if foo file | 93 " List l should have at least 2 values (possibly more if foo file |
94 " happens to be found upwards above Xdir1). | 94 " happens to be found upwards above Xfinddir1). |
95 let l = findfile('foo', ';', -1) | 95 let l = findfile('foo', ';', -1) |
96 call assert_match('.*/Xdir1/Xdir2/foo', l[0]) | 96 call assert_match('.*/Xfinddir1/Xdir2/foo', l[0]) |
97 call assert_match('.*/Xdir1/foo', l[1]) | 97 call assert_match('.*/Xfinddir1/foo', l[1]) |
98 | 98 |
99 " Test upwards search with stop-directory. | 99 " Test upwards search with stop-directory. |
100 cd Xdir2 | 100 cd Xdir2 |
101 let l = findfile('bar', ';' . save_dir . '/Xdir1/Xdir2/', -1) | 101 let l = findfile('bar', ';' . save_dir . '/Xfinddir1/Xdir2/', -1) |
102 call assert_equal(1, len(l)) | 102 call assert_equal(1, len(l)) |
103 call assert_match('.*/Xdir1/Xdir2/Xdir3/bar', l[0]) | 103 call assert_match('.*/Xfinddir1/Xdir2/Xdir3/bar', l[0]) |
104 | 104 |
105 let l = findfile('bar', ';' . save_dir . '/Xdir1/', -1) | 105 let l = findfile('bar', ';' . save_dir . '/Xfinddir1/', -1) |
106 call assert_equal(2, len(l)) | 106 call assert_equal(2, len(l)) |
107 call assert_match('.*/Xdir1/Xdir2/Xdir3/bar', l[0]) | 107 call assert_match('.*/Xfinddir1/Xdir2/Xdir3/bar', l[0]) |
108 call assert_match('.*/Xdir1/bar', l[1]) | 108 call assert_match('.*/Xfinddir1/bar', l[1]) |
109 | 109 |
110 " Test combined downwards and upwards search from Xdir2/. | 110 " Test combined downwards and upwards search from Xdir2/. |
111 cd ../.. | 111 cd ../.. |
112 call assert_equal('Xdir3/bar', findfile('bar', '**;', 1)) | 112 call assert_equal('Xdir3/bar', findfile('bar', '**;', 1)) |
113 call assert_match('.*/Xdir1/bar', findfile('bar', '**;', 2)) | 113 call assert_match('.*/Xfinddir1/bar', findfile('bar', '**;', 2)) |
114 | 114 |
115 bwipe! | 115 bwipe! |
116 call chdir(save_dir) | 116 call chdir(save_dir) |
117 call CleanFiles() | 117 call CleanFiles() |
118 let &path = save_path | 118 let &path = save_path |
132 let save_path = &path | 132 let save_path = &path |
133 let save_shellslash = &shellslash | 133 let save_shellslash = &shellslash |
134 let save_dir = getcwd() | 134 let save_dir = getcwd() |
135 set path=,, | 135 set path=,, |
136 call CreateFiles() | 136 call CreateFiles() |
137 cd Xdir1 | 137 cd Xfinddir1 |
138 | 138 |
139 call assert_equal('Xdir2', finddir('Xdir2')) | 139 call assert_equal('Xdir2', finddir('Xdir2')) |
140 call assert_equal('', 'Xdir3'->finddir()) | 140 call assert_equal('', 'Xdir3'->finddir()) |
141 | 141 |
142 " Files should not be found (findfile() finds them). | 142 " Files should not be found (findfile() finds them). |
155 call assert_equal('Xdir2/Xdir3', finddir('Xdir3', '**1')) | 155 call assert_equal('Xdir2/Xdir3', finddir('Xdir3', '**1')) |
156 call assert_equal('', finddir('Xdir3', '**0')) | 156 call assert_equal('', finddir('Xdir3', '**0')) |
157 | 157 |
158 " Test upwards dir search. | 158 " Test upwards dir search. |
159 cd Xdir2/Xdir3 | 159 cd Xdir2/Xdir3 |
160 call assert_match('.*/Xdir1', finddir('Xdir1', ';')) | 160 call assert_match('.*/Xfinddir1', finddir('Xfinddir1', ';')) |
161 | 161 |
162 " Test upwards search with stop-directory. | 162 " Test upwards search with stop-directory. |
163 call assert_match('.*/Xdir1', finddir('Xdir1', ';' . save_dir . '/')) | 163 call assert_match('.*/Xfinddir1', finddir('Xfinddir1', ';' . save_dir . '/')) |
164 call assert_equal('', finddir('Xdir1', ';' . save_dir . '/Xdir1/')) | 164 call assert_equal('', finddir('Xfinddir1', ';' . save_dir . '/Xfinddir1/')) |
165 | 165 |
166 " Test combined downwards and upwards dir search from Xdir2/. | 166 " Test combined downwards and upwards dir search from Xdir2/. |
167 cd .. | 167 cd .. |
168 call assert_match('.*/Xdir1', finddir('Xdir1', '**;', 1)) | 168 call assert_match('.*/Xfinddir1', finddir('Xfinddir1', '**;', 1)) |
169 call assert_equal('Xdir3/Xdir2', finddir('Xdir2', '**;', 1)) | 169 call assert_equal('Xdir3/Xdir2', finddir('Xdir2', '**;', 1)) |
170 call assert_match('.*/Xdir1/Xdir2', finddir('Xdir2', '**;', 2)) | 170 call assert_match('.*/Xfinddir1/Xdir2', finddir('Xdir2', '**;', 2)) |
171 call assert_equal('Xdir3', finddir('Xdir3', '**;', 1)) | 171 call assert_equal('Xdir3', finddir('Xdir3', '**;', 1)) |
172 | 172 |
173 call chdir(save_dir) | 173 call chdir(save_dir) |
174 call CleanFiles() | 174 call CleanFiles() |
175 let &path = save_path | 175 let &path = save_path |
189 new | 189 new |
190 let save_path = &path | 190 let save_path = &path |
191 let save_dir = getcwd() | 191 let save_dir = getcwd() |
192 set path=.,./**/* | 192 set path=.,./**/* |
193 call CreateFiles() | 193 call CreateFiles() |
194 cd Xdir1 | 194 cd Xfinddir1 |
195 | 195 |
196 " Test for :find | 196 " Test for :find |
197 find foo | 197 find foo |
198 call assert_equal('foo', expand('%:.')) | 198 call assert_equal('foo', expand('%:.')) |
199 2find foo | 199 2find foo |