Patch 8.0.0196 (after 8.0.0194)
Problem: The test for :profile is slow and does not work on MS-Windows.
Solution: Use the "-es" argument. (Dominique Pelle) Swap single and double
quotes for system()
Files: src/testdir/test_profile.vim
*** ../vim-8.0.0195/src/testdir/test_profile.vim 2017-01-15
21:12:44.604730821 +0100
--- src/testdir/test_profile.vim 2017-01-16 22:35:52.559857823 +0100
***************
*** 4,19 ****
endif
func Test_profile_func()
- if !has('unix')
- return
- endif
let lines = [
\ "func! Foo1()",
\ "endfunc",
\ "func! Foo2()",
! \ " let count = 100",
! \ " while count > 0",
! \ " let count = count - 1",
\ " endwhile",
\ "endfunc",
\ "func! Foo3()",
--- 4,16 ----
endif
func Test_profile_func()
let lines = [
\ "func! Foo1()",
\ "endfunc",
\ "func! Foo2()",
! \ " let l:count = 100",
! \ " while l:count > 0",
! \ " let l:count = l:count - 1",
\ " endwhile",
\ "endfunc",
\ "func! Foo3()",
***************
*** 35,81 ****
\ ]
call writefile(lines, 'Xprofile_func.vim')
! let a = system(v:progpath
! \ . " -u NONE -i NONE --noplugin"
! \ . " -c 'profile start Xprofile_func.log'"
! \ . " -c 'profile func Foo*'"
! \ . " -c 'so Xprofile_func.vim'"
! \ . " -c 'qall!'")
! let lines = readfile('Xprofile_func.log')
!
! call assert_equal(28, len(lines))
! call assert_equal('FUNCTION Foo1()', lines[0])
! call assert_equal('Called 2 times', lines[1])
! call assert_equal('FUNCTION Foo2()', lines[7])
! call assert_equal('Called 1 time', lines[8])
" - Foo1() is called 3 times but should be reported as called twice
" since one call is in between "profile pause" .. "profile continue".
! " - Foo2() should come before Foo1() since Foo1() does much more work.\
" - Foo3() is not reported because function is deleted.
" - Unlike Foo3(), Foo2() should not be deleted since there is a check
" for v:profiling.
" - Bar() is not reported since it does not match "profile func Foo*".
! call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[18])
! call assert_equal('count total (s) self (s) function', lines[19])
! call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo2()$', lines[20])
! call assert_match('^\s*2\s\+\d\+\.\d\+\s\+Foo1()$', lines[21])
! call assert_equal('', lines[22])
! call assert_equal('FUNCTIONS SORTED ON SELF TIME', lines[23])
! call assert_equal('count total (s) self (s) function', lines[24])
! call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo2()$', lines[25])
! call assert_match('^\s*2\s\+\d\+\.\d\+\s\+Foo1()$', lines[26])
! call assert_equal('', lines[27])
call delete('Xprofile_func.vim')
call delete('Xprofile_func.log')
endfunc
func Test_profile_file()
- if !has('unix')
- return
- endif
let lines = [
\ 'func! Foo()',
\ 'endfunc',
--- 32,90 ----
\ ]
call writefile(lines, 'Xprofile_func.vim')
! call system(v:progpath
! \ . ' -es -u NONE -U NONE -i NONE --noplugin'
! \ . ' -c "profile start Xprofile_func.log"'
! \ . ' -c "profile func Foo*"'
! \ . ' -c "so Xprofile_func.vim"'
! \ . ' -c "qall!"')
! call assert_equal(0, v:shell_error)
! let lines = readfile('Xprofile_func.log')
" - Foo1() is called 3 times but should be reported as called twice
" since one call is in between "profile pause" .. "profile continue".
! " - Foo2() should come before Foo1() since Foo1() does much more work.
" - Foo3() is not reported because function is deleted.
" - Unlike Foo3(), Foo2() should not be deleted since there is a check
" for v:profiling.
" - Bar() is not reported since it does not match "profile func Foo*".
! call assert_equal(28, len(lines))
!
! call assert_equal('FUNCTION Foo1()', lines[0])
! call assert_equal('Called 2 times', 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_equal('', lines[6])
! call assert_equal('FUNCTION Foo2()', lines[7])
! call assert_equal('Called 1 time', lines[8])
! call assert_match('^Total time:\s\+\d\+\.\d\+$', lines[9])
! call assert_match('^ Self time:\s\+\d\+\.\d\+$', lines[10])
! call assert_equal('', lines[11])
! call assert_equal('count total (s) self (s)', lines[12])
! call assert_match('^\s*1\s\+.*\slet l:count = 100$', lines[13])
! call assert_match('^\s*101\s\+.*\swhile l:count > 0$', lines[14])
! call assert_match('^\s*100\s\+.*\s let l:count = l:count - 1$', lines[15])
! call assert_match('^\s*100\s\+.*\sendwhile$', lines[16])
! call assert_equal('', lines[17])
! call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[18])
! call assert_equal('count total (s) self (s) function', lines[19])
! call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo2()$', lines[20])
! call assert_match('^\s*2\s\+\d\+\.\d\+\s\+Foo1()$', lines[21])
! call assert_equal('', lines[22])
! call assert_equal('FUNCTIONS SORTED ON SELF TIME', lines[23])
! call assert_equal('count total (s) self (s) function', lines[24])
! call assert_match('^\s*1\s\+\d\+\.\d\+\s\+Foo2()$', lines[25])
! call assert_match('^\s*2\s\+\d\+\.\d\+\s\+Foo1()$', lines[26])
! call assert_equal('', lines[27])
call delete('Xprofile_func.vim')
call delete('Xprofile_func.log')
endfunc
func Test_profile_file()
let lines = [
\ 'func! Foo()',
\ 'endfunc',
***************
*** 87,99 ****
\ ]
call writefile(lines, 'Xprofile_file.vim')
! let a = system(v:progpath
! \ . " -u NONE -i NONE --noplugin"
! \ . " -c 'profile start Xprofile_file.log'"
! \ . " -c 'profile file Xprofile_file.vim'"
! \ . " -c 'so Xprofile_file.vim'"
! \ . " -c 'so Xprofile_file.vim'"
! \ . " -c 'qall!'")
let lines = readfile('Xprofile_file.log')
--- 96,109 ----
\ ]
call writefile(lines, 'Xprofile_file.vim')
! call system(v:progpath
! \ . ' -es -u NONE -U NONE -i NONE --noplugin'
! \ . ' -c "profile start Xprofile_file.log"'
! \ . ' -c "profile file Xprofile_file.vim"'
! \ . ' -c "so Xprofile_file.vim"'
! \ . ' -c "so Xprofile_file.vim"'
! \ . ' -c "qall!"')
! call assert_equal(0, v:shell_error)
let lines = readfile('Xprofile_file.log')
*** ../vim-8.0.0195/src/version.c 2017-01-16 20:53:31.154599637 +0100
--- src/version.c 2017-01-16 22:23:35.266650762 +0100
***************
*** 766,767 ****
--- 766,769 ----
{ /* Add new patch number below this line */
+ /**/
+ 196,
/**/
--
Facepalm statement #7: "Last week I almost got pregnant!"
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.