summaryrefslogtreecommitdiff
path: root/src/testdir/test_profile.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-10-19 21:04:37 +0200
committerBram Moolenaar <Bram@vim.org>2017-10-19 21:04:37 +0200
commit67435d9983965c5c77fc74f0559779ce4554dacb (patch)
treeff45ed1b00544acfd9c6b1aac58eceff561e70bf /src/testdir/test_profile.vim
parentfafcf0dd59fd9c4ef743bb333ae40d1d322b6079 (diff)
downloadvim-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.vim38
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', @:)