To: vim_dev@googlegroups.com Subject: Patch 8.0.0196 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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 -- Bram@Moolenaar.net -- 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 ///