]> granicus.if.org Git - vim/commitdiff
patch 8.1.2310: no proper test for directory changes in quickfix v8.1.2310
authorBram Moolenaar <Bram@vim.org>
Sat, 16 Nov 2019 20:04:57 +0000 (21:04 +0100)
committerBram Moolenaar <Bram@vim.org>
Sat, 16 Nov 2019 20:04:57 +0000 (21:04 +0100)
Problem:    No proper test for directory changes in quickfix.
Solution:   Add a test that uses multiple directories. (Yegappan Lakshmanan,
            closes #5230)

src/testdir/test_quickfix.vim
src/version.c

index f3f391cf658771c6cafd2afb4150aa10971a3c8e..a3061336f8543fa2c5dd9a175f7ea14ed8f9542a 100644 (file)
@@ -4393,4 +4393,46 @@ func Test_qfcmd_abort()
   augroup END
 endfunc
 
+" Test for using a file in one of the parent directories.
+func Test_search_in_dirstack()
+  call mkdir('Xtestdir/a/b/c', 'p')
+  let save_cwd = getcwd()
+  call writefile(["X1_L1", "X1_L2"], 'Xtestdir/Xfile1')
+  call writefile(["X2_L1", "X2_L2"], 'Xtestdir/a/Xfile2')
+  call writefile(["X3_L1", "X3_L2"], 'Xtestdir/a/b/Xfile3')
+  call writefile(["X4_L1", "X4_L2"], 'Xtestdir/a/b/c/Xfile4')
+
+  let lines = "Entering dir Xtestdir\n" .
+             \ "Entering dir a\n" .
+             \ "Entering dir b\n" .
+             \ "Xfile2:2:X2_L2\n" .
+             \ "Leaving dir a\n" .
+             \ "Xfile1:2:X1_L2\n" .
+             \ "Xfile3:1:X3_L1\n" .
+             \ "Entering dir c\n" .
+             \ "Xfile4:2:X4_L2\n" .
+             \ "Leaving dir c\n" .
+             \ "Leaving dir Xtestdir\n"
+  set efm=%DEntering\ dir\ %f,%XLeaving\ dir\ %f,%f:%l:%m
+  cexpr lines
+  call assert_equal(11, getqflist({'size' : 0}).size)
+  call assert_equal(4, getqflist({'idx' : 0}).idx)
+  call assert_equal('X2_L2', getline('.'))
+  cnext
+  call assert_equal(6, getqflist({'idx' : 0}).idx)
+  call assert_equal('X1_L2', getline('.'))
+  cnext
+  call assert_equal(7, getqflist({'idx' : 0}).idx)
+  call assert_equal(1, line('$'))
+  call assert_equal('', getline(1))
+  cnext
+  call assert_equal(9, getqflist({'idx' : 0}).idx)
+  call assert_equal(1, line('$'))
+  call assert_equal('', getline(1))
+
+  set efm&
+  exe 'cd ' . save_cwd
+  call delete('Xtestdir', 'rf')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
index 5030d7bceb51ad47263064d1ba012827c2295378..35dc4e263032f972039c75d9ed016e4a25d86910 100644 (file)
@@ -741,6 +741,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2310,
 /**/
     2309,
 /**/