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