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