aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-10-05 23:57:37 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-10-06 17:45:18 -0400
commit3ad6fb804f0f382fac8f9810c3862b2c500e9c24 (patch)
treeece2806c8b82c7b24210da83dbb55d24bcc397ee
parent7b8935398587992da3233bcd7edd79013889fea4 (diff)
downloadrneovim-3ad6fb804f0f382fac8f9810c3862b2c500e9c24.tar.gz
rneovim-3ad6fb804f0f382fac8f9810c3862b2c500e9c24.tar.bz2
rneovim-3ad6fb804f0f382fac8f9810c3862b2c500e9c24.zip
vim-patch:8.1.2310: no proper test for directory changes in quickfix
Problem: No proper test for directory changes in quickfix. Solution: Add a test that uses multiple directories. (Yegappan Lakshmanan, closes vim/vim#5230) https://github.com/vim/vim/commit/d8a8c4ca089eaaf7934c0f2b3be676df5a4c0248
-rw-r--r--src/nvim/testdir/test_quickfix.vim42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_quickfix.vim b/src/nvim/testdir/test_quickfix.vim
index fab5cb320f..dcebbe690f 100644
--- a/src/nvim/testdir/test_quickfix.vim
+++ b/src/nvim/testdir/test_quickfix.vim
@@ -4049,4 +4049,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