diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-10-19 21:04:37 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-10-19 21:04:37 +0200 |
commit | 67435d9983965c5c77fc74f0559779ce4554dacb (patch) | |
tree | ff45ed1b00544acfd9c6b1aac58eceff561e70bf /src/testdir/test_profile.vim | |
parent | fafcf0dd59fd9c4ef743bb333ae40d1d322b6079 (diff) | |
download | vim-git-67435d9983965c5c77fc74f0559779ce4554dacb.tar.gz |
patch 8.0.1207: profiling skips the first and last script linev8.0.1207
Problem: Profiling skips the first and last script line.
Solution: Check for BOM after setting script ID. (Lemonboy, closes #2103,
closes #2112) Add a test. List the trailing script lines.
Diffstat (limited to 'src/testdir/test_profile.vim')
-rw-r--r-- | src/testdir/test_profile.vim | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/src/testdir/test_profile.vim b/src/testdir/test_profile.vim index f0ef923f3..ab39bcb64 100644 --- a/src/testdir/test_profile.vim +++ b/src/testdir/test_profile.vim @@ -115,7 +115,7 @@ func Test_profile_file() call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[3]) call assert_equal('', lines[4]) call assert_equal('count total (s) self (s)', lines[5]) - call assert_equal(' func! Foo()', lines[6]) + call assert_match(' 2 0.\d\+ func! Foo()', lines[6]) call assert_equal(' endfunc', lines[7]) " Loop iterates 10 times. Since script runs twice, body executes 20 times. " First line of loop executes one more time than body to detect end of loop. @@ -132,6 +132,42 @@ func Test_profile_file() call delete('Xprofile_file.log') endfunc +func Test_profile_file_with_cont() + let lines = [ + \ 'echo "hello', + \ ' \ world"', + \ 'echo "foo ', + \ ' \bar"', + \ ] + + call writefile(lines, 'Xprofile_file.vim') + call system(v:progpath + \ . ' -es --clean' + \ . ' -c "profile start Xprofile_file.log"' + \ . ' -c "profile file Xprofile_file.vim"' + \ . ' -c "so Xprofile_file.vim"' + \ . ' -c "qall!"') + call assert_equal(0, v:shell_error) + + let lines = readfile('Xprofile_file.log') + call assert_equal(11, len(lines)) + + call assert_match('^SCRIPT .*Xprofile_file.vim$', lines[0]) + call assert_equal('Sourced 1 time', lines[1]) + call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[2]) + call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[3]) + call assert_equal('', lines[4]) + call assert_equal('count total (s) self (s)', lines[5]) + call assert_match(' 1 0.\d\+ echo "hello', lines[6]) + call assert_equal(' \ world"', lines[7]) + call assert_match(' 1 0.\d\+ echo "foo ', lines[8]) + call assert_equal(' \bar"', lines[9]) + call assert_equal('', lines[10]) + + call delete('Xprofile_file.vim') + call delete('Xprofile_file.log') +endfunc + func Test_profile_completion() call feedkeys(":profile \<C-A>\<C-B>\"\<CR>", 'tx') call assert_equal('"profile continue file func pause start', @:) |