Patch 8.1.0131
Problem:    :profdel is not tested.
Solution:   Add a test. (Dominique Pelle, closes #3123)
Files:      src/testdir/test_profile.vim


*** ../vim-8.1.0130/src/testdir/test_profile.vim        2017-12-05 
16:42:08.000000000 +0100
--- src/testdir/test_profile.vim        2018-06-30 21:16:50.974593817 +0200
***************
*** 5,10 ****
--- 5,12 ----
  
  func Test_profile_func()
    let lines = [
+     \ 'profile start Xprofile_func.log',
+     \ 'profile func Foo*"',
      \ "func! Foo1()",
      \ "endfunc",
      \ "func! Foo2()",
***************
*** 33,41 ****
  
    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)
--- 35,41 ----
  
    call writefile(lines, 'Xprofile_func.vim')
    call system(v:progpath
!     \ . ' -es --clean'
      \ . ' -c "so Xprofile_func.vim"'
      \ . ' -c "qall!"')
    call assert_equal(0, v:shell_error)
***************
*** 97,103 ****
  
    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"'
--- 97,103 ----
  
    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"'
***************
*** 152,168 ****
    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')
--- 152,168 ----
    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')
***************
*** 221,224 ****
--- 221,294 ----
  
    call delete('Xprofile_file.vim')
    call delete('Xprofile_file.log')
+ endfunc
+ 
+ func Test_profdel_func()
+   let lines = [
+     \  'profile start Xprofile_file.log',
+     \  'func! Foo1()',
+     \  'endfunc',
+     \  'func! Foo2()',
+     \  'endfunc',
+     \  'func! Foo3()',
+     \  'endfunc',
+     \  '',
+     \  'profile func Foo1',
+     \  'profile func Foo2',
+     \  'call Foo1()',
+     \  'call Foo2()',
+     \  '',
+     \  'profile func Foo3',
+     \  'profdel func Foo2',
+     \  'profdel func Foo3',
+     \  'call Foo1()',
+     \  'call Foo2()',
+     \  'call Foo3()' ]
+   call writefile(lines, 'Xprofile_file.vim')
+   call system(v:progpath . ' -es --clean -c "so Xprofile_file.vim" -c q')
+   call assert_equal(0, v:shell_error)
+ 
+   let lines = readfile('Xprofile_file.log')
+   call assert_equal(24, len(lines))
+ 
+   " Check that:
+   " - Foo1() is called twice (profdel not invoked)
+   " - Foo2() is called once (profdel invoked after it was called)
+   " - Foo3() is not called (profdel invoked before it was called)
+   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])
+   call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[14])
+   call assert_equal('FUNCTIONS SORTED ON SELF TIME',  lines[19])
+ 
+   call delete('Xprofile_file.vim')
+   call delete('Xprofile_file.log')
+ endfunc
+ 
+ func Test_profdel_star()
+   " Foo() is invoked once before and once after 'profdel *'.
+   " So profiling should report it only once.
+   let lines = [
+     \  'profile start Xprofile_file.log',
+     \  'func! Foo()',
+     \  'endfunc',
+     \  'profile func Foo',
+     \  'call Foo()',
+     \  'profdel *',
+     \  'call Foo()' ]
+   call writefile(lines, 'Xprofile_file.vim')
+   call system(v:progpath . ' -es --clean -c "so Xprofile_file.vim" -c q')
+   call assert_equal(0, v:shell_error)
+ 
+   let lines = readfile('Xprofile_file.log')
+   call assert_equal(15, len(lines))
+ 
+   call assert_equal('FUNCTION  Foo()',                lines[0])
+   call assert_equal('Called 1 time',                  lines[1])
+   call assert_equal('FUNCTIONS SORTED ON TOTAL TIME', lines[7])
+   call assert_equal('FUNCTIONS SORTED ON SELF TIME',  lines[11])
+ 
+   call delete('Xprofile_file.vim')
+   call delete('Xprofile_file.log')
  endfunc
*** ../vim-8.1.0130/src/version.c       2018-06-30 18:27:59.901025116 +0200
--- src/version.c       2018-06-30 21:16:22.754692467 +0200
***************
*** 791,792 ****
--- 791,794 ----
  {   /* Add new patch number below this line */
+ /**/
+     131,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
154. You fondle your mouse.

 /// Bram Moolenaar -- b...@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    ///

-- 
-- 
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 vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui