Patch 8.1.0852
Problem:    findfile() and finddir() are not properly tested.
Solution:   Extend the test and add more. (Dominique Pelle, closes #3880)
Files:      src/testdir/test_findfile.vim


*** ../vim-8.1.0851/src/testdir/test_findfile.vim       2017-02-23 
18:20:26.000000000 +0100
--- src/testdir/test_findfile.vim       2019-01-30 22:11:09.378956665 +0100
***************
*** 1,25 ****
! " Test for findfile()
! "
  func Test_findfile()
!   new
!   let cwd=getcwd()
!   cd ..
  
!   " Tests may be run from a shadow directory, so an extra cd needs to be done 
to
!   " get above src/
!   if fnamemodify(getcwd(), ':t') != 'src'
!     cd ../.. 
!   else 
!     cd .. 
!   endif
!   set ssl
  
!   call assert_equal('src/testdir/test_findfile.vim', 
findfile('test_findfile.vim','src/test*'))
!   exe "cd" cwd
    cd ..
!   call assert_equal('testdir/test_findfile.vim', 
findfile('test_findfile.vim','test*'))
!   call assert_equal('testdir/test_findfile.vim', 
findfile('test_findfile.vim','testdir'))
  
!   exe "cd" cwd
!   q!
  endfunc
--- 1,169 ----
! " Test findfile() and finddir()
! 
! let s:files = [ 'Xdir1/foo',
!       \         'Xdir1/bar',
!       \         'Xdir1/Xdir2/foo',
!       \         'Xdir1/Xdir2/foobar',
!       \         'Xdir1/Xdir2/Xdir3/bar',
!       \         'Xdir1/Xdir2/Xdir3/barfoo' ]
! 
! func CreateFiles()
!   call mkdir('Xdir1/Xdir2/Xdir3/Xdir2', 'p')
!   for f in s:files
!     call writefile([], f)
!   endfor
! endfunc
! 
! func CleanFiles()
!   " Safer to delete each file even if it's more verbose
!   " than doing a recursive delete('Xdir1', 'rf').
!   for f in s:files
!     call delete(f)
!   endfor
! 
!   call delete('Xdir1/Xdir2/Xdir3/Xdir2', 'd')
!   call delete('Xdir1/Xdir2/Xdir3', 'd')
!   call delete('Xdir1/Xdir2', 'd')
!   call delete('Xdir1', 'd')
! endfunc
! 
! " Test findfile({name} [, {path} [, {count}]])
  func Test_findfile()
!   let save_path = &path
!   let save_shellslash = &shellslash
!   let save_dir = getcwd()
!   set shellslash
!   call CreateFiles()
!   cd Xdir1
!   e Xdir2/foo
! 
!   " With ,, in path, findfile() searches in current directory.
!   set path=,,
!   call assert_equal('foo', findfile('foo'))
!   call assert_equal('bar', findfile('bar'))
!   call assert_equal('',    findfile('foobar'))
! 
!   " Directories should not be found (finddir() finds them).
!   call assert_equal('', findfile('Xdir2'))
! 
!   " With . in 'path', findfile() searches relatively to current file.
!   set path=.
!   call assert_equal('Xdir2/foo',    findfile('foo'))
!   call assert_equal('',             findfile('bar'))
!   call assert_equal('Xdir2/foobar', findfile('foobar'))
! 
!   " Empty {path} 2nd argument is the same as no 2nd argument.
!   call assert_equal('Xdir2/foo', findfile('foo', ''))
!   call assert_equal('',          findfile('bar', ''))
! 
!   " Test with *
!   call assert_equal('Xdir2/foo',       findfile('foo', '*'))
!   call assert_equal('',                findfile('bar', '*'))
!   call assert_equal('Xdir2/Xdir3/bar', findfile('bar', '*/*'))
!   call assert_equal('Xdir2/Xdir3/bar', findfile('bar', 'Xdir2/*'))
!   call assert_equal('Xdir2/Xdir3/bar', findfile('bar', 'Xdir*/Xdir3'))
!   call assert_equal('Xdir2/Xdir3/bar', findfile('bar', '*2/*3'))
! 
!   " Test with **
!   call assert_equal('bar',             findfile('bar', '**'))
!   call assert_equal('Xdir2/Xdir3/bar', findfile('bar', '**/Xdir3'))
!   call assert_equal('Xdir2/Xdir3/bar', findfile('bar', 'Xdir2/**'))
! 
!   call assert_equal('Xdir2/Xdir3/barfoo', findfile('barfoo', '**2'))
!   call assert_equal('',                   findfile('barfoo', '**1'))
!   call assert_equal('Xdir2/foobar',       findfile('foobar', '**1'))
! 
!   " Test with {count} 3rd argument.
!   call assert_equal('bar',                      findfile('bar', '**', 0))
!   call assert_equal('bar',                      findfile('bar', '**', 1))
!   call assert_equal('Xdir2/Xdir3/bar',          findfile('bar', '**', 2))
!   call assert_equal('',                         findfile('bar', '**', 3))
!   call assert_equal(['bar', 'Xdir2/Xdir3/bar'], findfile('bar', '**', -1))
! 
!   " Test upwards search.
!   cd Xdir2/Xdir3
!   call assert_equal('bar',                findfile('bar', ';'))
!   call assert_match('.*/Xdir1/Xdir2/foo', findfile('foo', ';'))
!   call assert_match('.*/Xdir1/Xdir2/foo', findfile('foo', ';', 1))
!   call assert_match('.*/Xdir1/foo',       findfile('foo', ';', 2))
!   call assert_match('.*/Xdir1/foo',       findfile('foo', ';', 2))
!   call assert_match('.*/Xdir1/Xdir2/foo', findfile('foo', 'Xdir2;', 1))
!   call assert_equal('',                   findfile('foo', 'Xdir2;', 2))
! 
!   " List l should have at least 2 values (possibly more if foo file
!   " happens to be found upwards above Xdir1).
!   let l = findfile('foo', ';', -1)
!   call assert_match('.*/Xdir1/Xdir2/foo', l[0])
!   call assert_match('.*/Xdir1/foo',       l[1])
! 
!   " Test upwards search with stop-directory.
!   cd Xdir2
!   let l = findfile('bar', ';' . save_dir . '/Xdir1/Xdir2/', -1)
!   call assert_equal(1, len(l))
!   call assert_match('.*/Xdir1/Xdir2/Xdir3/bar', l[0])
! 
!   let l = findfile('bar', ';' . save_dir . '/Xdir1/', -1)
!   call assert_equal(2, len(l))
!   call assert_match('.*/Xdir1/Xdir2/Xdir3/bar', l[0])
!   call assert_match('.*/Xdir1/bar',             l[1])
! 
!   " Test combined downwards and upwards search from Xdir2/.
!   cd ../..
!   call assert_equal('Xdir3/bar',    findfile('bar', '**;', 1))
!   call assert_match('.*/Xdir1/bar', findfile('bar', '**;', 2))
! 
!   bwipe!
!   exe 'cd  ' . save_dir
!   call CleanFiles()
!   let &path = save_path
!   let &shellslash = save_shellslash
! endfunc
! 
! " Test finddir({name} [, {path} [, {count}]])
! func Test_finddir()
!   let save_path = &path
!   let save_shellslash = &shellslash
!   let save_dir = getcwd()
!   set path=,,
!   call CreateFiles()
!   cd Xdir1
! 
!   call assert_equal('Xdir2', finddir('Xdir2'))
!   call assert_equal('',      finddir('Xdir3'))
! 
!   " Files should not be found (findfile() finds them).
!   call assert_equal('', finddir('foo'))
! 
!   call assert_equal('Xdir2',       finddir('Xdir2', '**'))
!   call assert_equal('Xdir2/Xdir3', finddir('Xdir3', '**'))
! 
!   call assert_equal('Xdir2',               finddir('Xdir2', '**', 1))
!   call assert_equal('Xdir2/Xdir3/Xdir2',   finddir('Xdir2', '**', 2))
!   call assert_equal(['Xdir2',
!         \            'Xdir2/Xdir3/Xdir2'], finddir('Xdir2', '**', -1))
! 
!   call assert_equal('Xdir2',       finddir('Xdir2', '**1'))
!   call assert_equal('Xdir2',       finddir('Xdir2', '**0'))
!   call assert_equal('Xdir2/Xdir3', finddir('Xdir3', '**1'))
!   call assert_equal('',            finddir('Xdir3', '**0'))
! 
!   " Test upwards dir search.
!   cd Xdir2/Xdir3
!   call assert_match('.*/Xdir1', finddir('Xdir1', ';'))
  
!   " Test upwards search with stop-directory.
!   call assert_match('.*/Xdir1', finddir('Xdir1', ';' . save_dir . '/'))
!   call assert_equal('',         finddir('Xdir1', ';' . save_dir . '/Xdir1/'))
  
!   " Test combined downwards and upwards dir search from Xdir2/.
    cd ..
!   call assert_match('.*/Xdir1',       finddir('Xdir1', '**;', 1))
!   call assert_equal('Xdir3/Xdir2',    finddir('Xdir2', '**;', 1))
!   call assert_match('.*/Xdir1/Xdir2', finddir('Xdir2', '**;', 2))
!   call assert_equal('Xdir3',          finddir('Xdir3', '**;', 1))
  
!   exe 'cd  ' . save_dir
!   call CleanFiles()
!   let &path = save_path
!   let &shellslash = save_shellslash
  endfunc
*** ../vim-8.1.0851/src/version.c       2019-01-30 22:01:36.982854408 +0100
--- src/version.c       2019-01-30 22:12:44.338305213 +0100
***************
*** 785,786 ****
--- 785,788 ----
  {   /* Add new patch number below this line */
+ /**/
+     852,
  /**/

-- 
FATHER:    You only killed the bride's father - that's all -
LAUNCELOT: Oh dear, I didn't really mean to...
FATHER:    Didn't mean to?  You put your sword right through his head!
LAUNCELOT: Gosh - Is he all right?
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// 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.

Raspunde prin e-mail lui