Mercurial > vim
comparison src/testdir/test_profile.vim @ 14706:2c0f454fcdc9 v8.1.0365
patch 8.1.0365: function profile doesn't specify where it was defined
commit https://github.com/vim/vim/commit/4c7b08f6409349cf5324a26f7523c438590550ef
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Sep 10 22:03:40 2018 +0200
patch 8.1.0365: function profile doesn't specify where it was defined
Problem: Function profile doesn't specify where it was defined.
Solution: Show the script name and line number.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 10 Sep 2018 22:15:05 +0200 |
parents | 96878f6f5d4c |
children | 2dcaa860e3fc |
comparison
equal
deleted
inserted
replaced
14705:2e3693fee018 | 14706:2c0f454fcdc9 |
---|---|
47 " - Foo2() should come before Foo1() since Foo1() does much more work. | 47 " - Foo2() should come before Foo1() since Foo1() does much more work. |
48 " - Foo3() is not reported because function is deleted. | 48 " - Foo3() is not reported because function is deleted. |
49 " - Unlike Foo3(), Foo2() should not be deleted since there is a check | 49 " - Unlike Foo3(), Foo2() should not be deleted since there is a check |
50 " for v:profiling. | 50 " for v:profiling. |
51 " - Bar() is not reported since it does not match "profile func Foo*". | 51 " - Bar() is not reported since it does not match "profile func Foo*". |
52 call assert_equal(28, len(lines)) | 52 call assert_equal(30, len(lines)) |
53 | 53 |
54 call assert_equal('FUNCTION Foo1()', lines[0]) | 54 call assert_equal('FUNCTION Foo1()', lines[0]) |
55 call assert_equal('Called 2 times', lines[1]) | 55 call assert_match('Defined:.*Xprofile_func.vim', lines[1]) |
56 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[2]) | 56 call assert_equal('Called 2 times', lines[2]) |
57 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[3]) | 57 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[3]) |
58 call assert_equal('', lines[4]) | 58 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[4]) |
59 call assert_equal('count total (s) self (s)', lines[5]) | 59 call assert_equal('', lines[5]) |
60 call assert_equal('', lines[6]) | 60 call assert_equal('count total (s) self (s)', lines[6]) |
61 call assert_equal('FUNCTION Foo2()', lines[7]) | 61 call assert_equal('', lines[7]) |
62 call assert_equal('Called 1 time', lines[8]) | 62 call assert_equal('FUNCTION Foo2()', lines[8]) |
63 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[9]) | 63 call assert_equal('Called 1 time', lines[10]) |
64 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[10]) | 64 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[11]) |
65 call assert_equal('', lines[11]) | 65 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[12]) |
66 call assert_equal('count total (s) self (s)', lines[12]) | 66 call assert_equal('', lines[13]) |
67 call assert_match('^\s*1\s\+.*\slet l:count = 100$', lines[13]) | 67 call assert_equal('count total (s) self (s)', lines[14]) |
68 call assert_match('^\s*101\s\+.*\swhile l:count > 0$', lines[14]) | 68 call assert_match('^\s*1\s\+.*\slet l:count = 100$', lines[15]) |
69 call assert_match('^\s*100\s\+.*\s let l:count = l:count - 1$', lines[15]) | 69 call assert_match('^\s*101\s\+.*\swhile l:count > 0$', lines[16]) |
70 call assert_match('^\s*101\s\+.*\sendwhile$', lines[16]) | 70 call assert_match('^\s*100\s\+.*\s let l:count = l:count - 1$', lines[17]) |
71 call assert_equal('', lines[17]) | 71 call assert_match('^\s*101\s\+.*\sendwhile$', lines[18]) |
72 call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[18]) | 72 call assert_equal('', lines[19]) |
73 call assert_equal('count total (s) self (s) function', lines[19]) | 73 call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[20]) |
74 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo2()$', lines[20]) | 74 call assert_equal('count total (s) self (s) function', lines[21]) |
75 call assert_match('^\s*2\s\+\d\+\.\d\+\s\+Foo1()$', lines[21]) | 75 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo2()$', lines[22]) |
76 call assert_equal('', lines[22]) | 76 call assert_match('^\s*2\s\+\d\+\.\d\+\s\+Foo1()$', lines[23]) |
77 call assert_equal('FUNCTIONS SORTED ON SELF TIME', lines[23]) | 77 call assert_equal('', lines[24]) |
78 call assert_equal('count total (s) self (s) function', lines[24]) | 78 call assert_equal('FUNCTIONS SORTED ON SELF TIME', lines[25]) |
79 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo2()$', lines[25]) | 79 call assert_equal('count total (s) self (s) function', lines[26]) |
80 call assert_match('^\s*2\s\+\d\+\.\d\+\s\+Foo1()$', lines[26]) | 80 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo2()$', lines[27]) |
81 call assert_equal('', lines[27]) | 81 call assert_match('^\s*2\s\+\d\+\.\d\+\s\+Foo1()$', lines[28]) |
82 call assert_equal('', lines[29]) | |
82 | 83 |
83 call delete('Xprofile_func.vim') | 84 call delete('Xprofile_func.vim') |
84 call delete('Xprofile_func.log') | 85 call delete('Xprofile_func.log') |
85 endfunc | 86 endfunc |
86 | 87 |
130 let lines = readfile('Xprofile_func.log') | 131 let lines = readfile('Xprofile_func.log') |
131 | 132 |
132 " - Foo1() should pass 'if' block. | 133 " - Foo1() should pass 'if' block. |
133 " - Foo2() should pass 'elseif' block. | 134 " - Foo2() should pass 'elseif' block. |
134 " - Foo3() should pass 'else' block. | 135 " - Foo3() should pass 'else' block. |
135 call assert_equal(54, len(lines)) | 136 call assert_equal(57, len(lines)) |
136 | 137 |
137 call assert_equal('FUNCTION Foo1()', lines[0]) | 138 call assert_equal('FUNCTION Foo1()', lines[0]) |
138 call assert_equal('Called 1 time', lines[1]) | 139 call assert_match('Defined:.*Xprofile_func.vim', lines[1]) |
139 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[2]) | 140 call assert_equal('Called 1 time', lines[2]) |
140 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[3]) | 141 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[3]) |
141 call assert_equal('', lines[4]) | 142 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[4]) |
142 call assert_equal('count total (s) self (s)', lines[5]) | 143 call assert_equal('', lines[5]) |
143 call assert_match('^\s*1\s\+.*\sif 1$', lines[6]) | 144 call assert_equal('count total (s) self (s)', lines[6]) |
144 call assert_match('^\s*1\s\+.*\s let x = 0$', lines[7]) | 145 call assert_match('^\s*1\s\+.*\sif 1$', lines[7]) |
145 call assert_match( '^\s\+elseif 1$', lines[8]) | 146 call assert_match('^\s*1\s\+.*\s let x = 0$', lines[8]) |
146 call assert_match( '^\s\+let x = 1$', lines[9]) | 147 call assert_match( '^\s\+elseif 1$', lines[9]) |
147 call assert_match( '^\s\+else$', lines[10]) | 148 call assert_match( '^\s\+let x = 1$', lines[10]) |
148 call assert_match( '^\s\+let x = 2$', lines[11]) | 149 call assert_match( '^\s\+else$', lines[11]) |
149 call assert_match('^\s*1\s\+.*\sendif$', lines[12]) | 150 call assert_match( '^\s\+let x = 2$', lines[12]) |
150 call assert_equal('', lines[13]) | 151 call assert_match('^\s*1\s\+.*\sendif$', lines[13]) |
151 call assert_equal('FUNCTION Foo2()', lines[14]) | 152 call assert_equal('', lines[14]) |
152 call assert_equal('Called 1 time', lines[15]) | 153 call assert_equal('FUNCTION Foo2()', lines[15]) |
153 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[16]) | 154 call assert_equal('Called 1 time', lines[17]) |
154 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[17]) | 155 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[18]) |
155 call assert_equal('', lines[18]) | 156 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[19]) |
156 call assert_equal('count total (s) self (s)', lines[19]) | 157 call assert_equal('', lines[20]) |
157 call assert_match('^\s*1\s\+.*\sif 0$', lines[20]) | 158 call assert_equal('count total (s) self (s)', lines[21]) |
158 call assert_match( '^\s\+let x = 0$', lines[21]) | 159 call assert_match('^\s*1\s\+.*\sif 0$', lines[22]) |
159 call assert_match('^\s*1\s\+.*\selseif 1$', lines[22]) | 160 call assert_match( '^\s\+let x = 0$', lines[23]) |
160 call assert_match('^\s*1\s\+.*\s let x = 1$', lines[23]) | 161 call assert_match('^\s*1\s\+.*\selseif 1$', lines[24]) |
161 call assert_match( '^\s\+else$', lines[24]) | 162 call assert_match('^\s*1\s\+.*\s let x = 1$', lines[25]) |
162 call assert_match( '^\s\+let x = 2$', lines[25]) | 163 call assert_match( '^\s\+else$', lines[26]) |
163 call assert_match('^\s*1\s\+.*\sendif$', lines[26]) | 164 call assert_match( '^\s\+let x = 2$', lines[27]) |
164 call assert_equal('', lines[27]) | 165 call assert_match('^\s*1\s\+.*\sendif$', lines[28]) |
165 call assert_equal('FUNCTION Foo3()', lines[28]) | 166 call assert_equal('', lines[29]) |
166 call assert_equal('Called 1 time', lines[29]) | 167 call assert_equal('FUNCTION Foo3()', lines[30]) |
167 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[30]) | 168 call assert_equal('Called 1 time', lines[32]) |
168 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[31]) | 169 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[33]) |
169 call assert_equal('', lines[32]) | 170 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[34]) |
170 call assert_equal('count total (s) self (s)', lines[33]) | 171 call assert_equal('', lines[35]) |
171 call assert_match('^\s*1\s\+.*\sif 0$', lines[34]) | 172 call assert_equal('count total (s) self (s)', lines[36]) |
172 call assert_match( '^\s\+let x = 0$', lines[35]) | 173 call assert_match('^\s*1\s\+.*\sif 0$', lines[37]) |
173 call assert_match('^\s*1\s\+.*\selseif 0$', lines[36]) | 174 call assert_match( '^\s\+let x = 0$', lines[38]) |
174 call assert_match( '^\s\+let x = 1$', lines[37]) | 175 call assert_match('^\s*1\s\+.*\selseif 0$', lines[39]) |
175 call assert_match('^\s*1\s\+.*\selse$', lines[38]) | 176 call assert_match( '^\s\+let x = 1$', lines[40]) |
176 call assert_match('^\s*1\s\+.*\s let x = 2$', lines[39]) | 177 call assert_match('^\s*1\s\+.*\selse$', lines[41]) |
177 call assert_match('^\s*1\s\+.*\sendif$', lines[40]) | 178 call assert_match('^\s*1\s\+.*\s let x = 2$', lines[42]) |
178 call assert_equal('', lines[41]) | 179 call assert_match('^\s*1\s\+.*\sendif$', lines[43]) |
179 call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[42]) | 180 call assert_equal('', lines[44]) |
180 call assert_equal('count total (s) self (s) function', lines[43]) | 181 call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[45]) |
181 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[44]) | 182 call assert_equal('count total (s) self (s) function', lines[46]) |
182 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[45]) | 183 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[47]) |
183 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[46]) | 184 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[48]) |
184 call assert_equal('', lines[47]) | 185 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[49]) |
185 call assert_equal('FUNCTIONS SORTED ON SELF TIME', lines[48]) | 186 call assert_equal('', lines[50]) |
186 call assert_equal('count total (s) self (s) function', lines[49]) | 187 call assert_equal('FUNCTIONS SORTED ON SELF TIME', lines[51]) |
187 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[50]) | 188 call assert_equal('count total (s) self (s) function', lines[52]) |
188 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[51]) | 189 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[53]) |
189 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[52]) | 190 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[54]) |
190 call assert_equal('', lines[53]) | 191 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[55]) |
192 call assert_equal('', lines[56]) | |
191 | 193 |
192 call delete('Xprofile_func.vim') | 194 call delete('Xprofile_func.vim') |
193 call delete('Xprofile_func.log') | 195 call delete('Xprofile_func.log') |
194 endfunc | 196 endfunc |
195 | 197 |
242 let lines = readfile('Xprofile_func.log') | 244 let lines = readfile('Xprofile_func.log') |
243 | 245 |
244 " - Foo1() should pass 'try' 'finally' blocks. | 246 " - Foo1() should pass 'try' 'finally' blocks. |
245 " - Foo2() should pass 'catch' 'finally' blocks. | 247 " - Foo2() should pass 'catch' 'finally' blocks. |
246 " - Foo3() should not pass 'endtry'. | 248 " - Foo3() should not pass 'endtry'. |
247 call assert_equal(54, len(lines)) | 249 call assert_equal(57, len(lines)) |
248 | 250 |
249 call assert_equal('FUNCTION Foo1()', lines[0]) | 251 call assert_equal('FUNCTION Foo1()', lines[0]) |
250 call assert_equal('Called 1 time', lines[1]) | 252 call assert_match('Defined:.*Xprofile_func.vim', lines[1]) |
251 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[2]) | 253 call assert_equal('Called 1 time', lines[2]) |
252 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[3]) | 254 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[3]) |
253 call assert_equal('', lines[4]) | 255 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[4]) |
254 call assert_equal('count total (s) self (s)', lines[5]) | 256 call assert_equal('', lines[5]) |
255 call assert_match('^\s*1\s\+.*\stry$', lines[6]) | 257 call assert_equal('count total (s) self (s)', lines[6]) |
256 call assert_match('^\s*1\s\+.*\s let x = 0$', lines[7]) | 258 call assert_match('^\s*1\s\+.*\stry$', lines[7]) |
257 call assert_match( '^\s\+catch$', lines[8]) | 259 call assert_match('^\s*1\s\+.*\s let x = 0$', lines[8]) |
258 call assert_match( '^\s\+let x = 1$', lines[9]) | 260 call assert_match( '^\s\+catch$', lines[9]) |
259 call assert_match('^\s*1\s\+.*\sfinally$', lines[10]) | 261 call assert_match( '^\s\+let x = 1$', lines[10]) |
260 call assert_match('^\s*1\s\+.*\s let x = 2$', lines[11]) | 262 call assert_match('^\s*1\s\+.*\sfinally$', lines[11]) |
261 call assert_match('^\s*1\s\+.*\sendtry$', lines[12]) | 263 call assert_match('^\s*1\s\+.*\s let x = 2$', lines[12]) |
262 call assert_equal('', lines[13]) | 264 call assert_match('^\s*1\s\+.*\sendtry$', lines[13]) |
263 call assert_equal('FUNCTION Foo2()', lines[14]) | 265 call assert_equal('', lines[14]) |
264 call assert_equal('Called 1 time', lines[15]) | 266 call assert_equal('FUNCTION Foo2()', lines[15]) |
265 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[16]) | 267 call assert_equal('Called 1 time', lines[17]) |
266 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[17]) | 268 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[18]) |
267 call assert_equal('', lines[18]) | 269 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[19]) |
268 call assert_equal('count total (s) self (s)', lines[19]) | 270 call assert_equal('', lines[20]) |
269 call assert_match('^\s*1\s\+.*\stry$', lines[20]) | 271 call assert_equal('count total (s) self (s)', lines[21]) |
270 call assert_match('^\s*1\s\+.*\s throw 0$', lines[21]) | 272 call assert_match('^\s*1\s\+.*\stry$', lines[22]) |
271 call assert_match('^\s*1\s\+.*\scatch$', lines[22]) | 273 call assert_match('^\s*1\s\+.*\s throw 0$', lines[23]) |
272 call assert_match('^\s*1\s\+.*\s let x = 1$', lines[23]) | 274 call assert_match('^\s*1\s\+.*\scatch$', lines[24]) |
273 call assert_match('^\s*1\s\+.*\sfinally$', lines[24]) | 275 call assert_match('^\s*1\s\+.*\s let x = 1$', lines[25]) |
274 call assert_match('^\s*1\s\+.*\s let x = 2$', lines[25]) | 276 call assert_match('^\s*1\s\+.*\sfinally$', lines[26]) |
275 call assert_match('^\s*1\s\+.*\sendtry$', lines[26]) | 277 call assert_match('^\s*1\s\+.*\s let x = 2$', lines[27]) |
276 call assert_equal('', lines[27]) | 278 call assert_match('^\s*1\s\+.*\sendtry$', lines[28]) |
277 call assert_equal('FUNCTION Foo3()', lines[28]) | 279 call assert_equal('', lines[29]) |
278 call assert_equal('Called 1 time', lines[29]) | 280 call assert_equal('FUNCTION Foo3()', lines[30]) |
279 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[30]) | 281 call assert_equal('Called 1 time', lines[32]) |
280 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[31]) | 282 call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[33]) |
281 call assert_equal('', lines[32]) | 283 call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[34]) |
282 call assert_equal('count total (s) self (s)', lines[33]) | 284 call assert_equal('', lines[35]) |
283 call assert_match('^\s*1\s\+.*\stry$', lines[34]) | 285 call assert_equal('count total (s) self (s)', lines[36]) |
284 call assert_match('^\s*1\s\+.*\s throw 0$', lines[35]) | 286 call assert_match('^\s*1\s\+.*\stry$', lines[37]) |
285 call assert_match('^\s*1\s\+.*\scatch$', lines[36]) | 287 call assert_match('^\s*1\s\+.*\s throw 0$', lines[38]) |
286 call assert_match('^\s*1\s\+.*\s throw 1$', lines[37]) | 288 call assert_match('^\s*1\s\+.*\scatch$', lines[39]) |
287 call assert_match('^\s*1\s\+.*\sfinally$', lines[38]) | 289 call assert_match('^\s*1\s\+.*\s throw 1$', lines[40]) |
288 call assert_match('^\s*1\s\+.*\s let x = 2$', lines[39]) | 290 call assert_match('^\s*1\s\+.*\sfinally$', lines[41]) |
289 call assert_match( '^\s\+endtry$', lines[40]) | 291 call assert_match('^\s*1\s\+.*\s let x = 2$', lines[42]) |
290 call assert_equal('', lines[41]) | 292 call assert_match( '^\s\+endtry$', lines[43]) |
291 call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[42]) | 293 call assert_equal('', lines[44]) |
292 call assert_equal('count total (s) self (s) function', lines[43]) | 294 call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[45]) |
293 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[44]) | 295 call assert_equal('count total (s) self (s) function', lines[46]) |
294 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[45]) | 296 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[47]) |
295 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[46]) | 297 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[48]) |
296 call assert_equal('', lines[47]) | 298 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[49]) |
297 call assert_equal('FUNCTIONS SORTED ON SELF TIME', lines[48]) | 299 call assert_equal('', lines[50]) |
298 call assert_equal('count total (s) self (s) function', lines[49]) | 300 call assert_equal('FUNCTIONS SORTED ON SELF TIME', lines[51]) |
299 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[50]) | 301 call assert_equal('count total (s) self (s) function', lines[52]) |
300 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[51]) | 302 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[53]) |
301 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[52]) | 303 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[54]) |
302 call assert_equal('', lines[53]) | 304 call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo.()$', lines[55]) |
305 call assert_equal('', lines[56]) | |
303 | 306 |
304 call delete('Xprofile_func.vim') | 307 call delete('Xprofile_func.vim') |
305 call delete('Xprofile_func.log') | 308 call delete('Xprofile_func.log') |
306 endfunc | 309 endfunc |
307 | 310 |
468 call writefile(lines, 'Xprofile_file.vim') | 471 call writefile(lines, 'Xprofile_file.vim') |
469 call system(v:progpath . ' -es --clean -c "so Xprofile_file.vim" -c q') | 472 call system(v:progpath . ' -es --clean -c "so Xprofile_file.vim" -c q') |
470 call assert_equal(0, v:shell_error) | 473 call assert_equal(0, v:shell_error) |
471 | 474 |
472 let lines = readfile('Xprofile_file.log') | 475 let lines = readfile('Xprofile_file.log') |
473 call assert_equal(24, len(lines)) | 476 call assert_equal(26, len(lines)) |
474 | 477 |
475 " Check that: | 478 " Check that: |
476 " - Foo1() is called twice (profdel not invoked) | 479 " - Foo1() is called twice (profdel not invoked) |
477 " - Foo2() is called once (profdel invoked after it was called) | 480 " - Foo2() is called once (profdel invoked after it was called) |
478 " - Foo3() is not called (profdel invoked before it was called) | 481 " - Foo3() is not called (profdel invoked before it was called) |
479 call assert_equal('FUNCTION Foo1()', lines[0]) | 482 call assert_equal('FUNCTION Foo1()', lines[0]) |
480 call assert_equal('Called 2 times', lines[1]) | 483 call assert_match('Defined:.*Xprofile_file.vim', lines[1]) |
481 call assert_equal('FUNCTION Foo2()', lines[7]) | 484 call assert_equal('Called 2 times', lines[2]) |
482 call assert_equal('Called 1 time', lines[8]) | 485 call assert_equal('FUNCTION Foo2()', lines[8]) |
483 call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[14]) | 486 call assert_equal('Called 1 time', lines[10]) |
484 call assert_equal('FUNCTIONS SORTED ON SELF TIME', lines[19]) | 487 call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[16]) |
488 call assert_equal('FUNCTIONS SORTED ON SELF TIME', lines[21]) | |
485 | 489 |
486 call delete('Xprofile_file.vim') | 490 call delete('Xprofile_file.vim') |
487 call delete('Xprofile_file.log') | 491 call delete('Xprofile_file.log') |
488 endfunc | 492 endfunc |
489 | 493 |
501 call writefile(lines, 'Xprofile_file.vim') | 505 call writefile(lines, 'Xprofile_file.vim') |
502 call system(v:progpath . ' -es --clean -c "so Xprofile_file.vim" -c q') | 506 call system(v:progpath . ' -es --clean -c "so Xprofile_file.vim" -c q') |
503 call assert_equal(0, v:shell_error) | 507 call assert_equal(0, v:shell_error) |
504 | 508 |
505 let lines = readfile('Xprofile_file.log') | 509 let lines = readfile('Xprofile_file.log') |
506 call assert_equal(15, len(lines)) | 510 call assert_equal(16, len(lines)) |
507 | 511 |
508 call assert_equal('FUNCTION Foo()', lines[0]) | 512 call assert_equal('FUNCTION Foo()', lines[0]) |
509 call assert_equal('Called 1 time', lines[1]) | 513 call assert_match('Defined:.*Xprofile_file.vim', lines[1]) |
510 call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[7]) | 514 call assert_equal('Called 1 time', lines[2]) |
511 call assert_equal('FUNCTIONS SORTED ON SELF TIME', lines[11]) | 515 call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[8]) |
516 call assert_equal('FUNCTIONS SORTED ON SELF TIME', lines[12]) | |
512 | 517 |
513 call delete('Xprofile_file.vim') | 518 call delete('Xprofile_file.vim') |
514 call delete('Xprofile_file.log') | 519 call delete('Xprofile_file.log') |
515 endfunc | 520 endfunc |