diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-08-26 15:34:52 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-08-26 15:34:52 +0100 |
commit | 93f72cc119c796f1ccb75468ef9e446cbfb41e9b (patch) | |
tree | b44ad78f8b0034ab66d71dc142715ede2f05f27c /src | |
parent | a9b5b85068b2fcb1c01ea20524e227bcad579ceb (diff) |
patch 9.0.0276: 'buftype' values not sufficiently testedv9.0.0276
Problem: 'buftype' values not sufficiently tested.
Solution: Add and extend tests with 'buftype' values. (closes #10988)
Diffstat (limited to 'src')
-rw-r--r-- | src/testdir/test_autocmd.vim | 55 | ||||
-rw-r--r-- | src/testdir/test_bufline.vim | 20 | ||||
-rw-r--r-- | src/testdir/test_functions.vim | 30 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 76 insertions, 31 deletions
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim index 4b0928517a..189a2bc464 100644 --- a/src/testdir/test_autocmd.vim +++ b/src/testdir/test_autocmd.vim @@ -576,16 +576,26 @@ func Test_BufReadCmdHelpJump() au! BufReadCmd endfunc -" BufReadCmd is triggered for a "nofile" buffer +" BufReadCmd is triggered for a "nofile" buffer. Check all values. func Test_BufReadCmdNofile() - new somefile - set buftype=nofile - au BufReadCmd somefile call setline(1, 'triggered') - edit - call assert_equal('triggered', getline(1)) - - au! BufReadCmd - bwipe! + for val in ['nofile', + \ 'nowrite', + \ 'acwrite', + \ 'quickfix', + \ 'help', + \ 'terminal', + \ 'prompt', + \ 'popup', + \ ] + new somefile + exe 'set buftype=' .. val + au BufReadCmd somefile call setline(1, 'triggered') + edit + call assert_equal('triggered', getline(1)) + + au! BufReadCmd + bwipe! + endfor endfunc func Test_augroup_deleted() @@ -685,15 +695,24 @@ func Test_BufEnter() au! BufEnter " Editing a "nofile" buffer doesn't read the file but does trigger BufEnter - " for historic reasons. - new somefile - set buftype=nofile - au BufEnter somefile call setline(1, 'some text') - edit - call assert_equal('some text', getline(1)) - - bwipe! - au! BufEnter + " for historic reasons. Also test other 'buftype' values. + for val in ['nofile', + \ 'nowrite', + \ 'acwrite', + \ 'quickfix', + \ 'help', + \ 'terminal', + \ 'prompt', + \ 'popup', + \ ] + new somefile + exe 'set buftype=' .. val + au BufEnter somefile call setline(1, 'some text') + edit + call assert_equal('some text', getline(1)) + bwipe! + au! BufEnter + endfor endfunc " Closing a window might cause an endless loop diff --git a/src/testdir/test_bufline.vim b/src/testdir/test_bufline.vim index 5a062166de..caf6aa7d30 100644 --- a/src/testdir/test_bufline.vim +++ b/src/testdir/test_bufline.vim @@ -255,4 +255,24 @@ func Test_deletebufline_select_mode() bwipe! endfunc +func Test_setbufline_startup_nofile() + let before =<< trim [CODE] + set shortmess+=F + file Xresult + set buftype=nofile + call setbufline('', 1, 'success') + [CODE] + let after =<< trim [CODE] + set buftype= + write + quit + [CODE] + + if !RunVim(before, after, '--clean') + return + endif + call assert_equal(['success'], readfile('Xresult')) + call delete('Xresult') +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim index 03778f8ae0..d483b740f7 100644 --- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -2368,19 +2368,23 @@ func Test_bufadd_bufload() exe 'bwipe ' .. buf2 call assert_equal(0, bufexists(buf2)) - " when 'buftype' is "nofile" then bufload() does not read the file - bwipe! XotherName - let buf = bufadd('XotherName') - call setbufvar(buf, '&bt', 'nofile') - call bufload(buf) - call assert_equal([''], getbufline(buf, 1, '$')) - - " when 'buftype' is "acwrite" then bufload() DOES read the file - bwipe! XotherName - let buf = bufadd('XotherName') - call setbufvar(buf, '&bt', 'acwrite') - call bufload(buf) - call assert_equal(['some', 'text'], getbufline(buf, 1, '$')) + " When 'buftype' is "nofile" then bufload() does not read the file. + " Other values too. + for val in [['nofile', 0], + \ ['nowrite', 1], + \ ['acwrite', 1], + \ ['quickfix', 0], + \ ['help', 1], + \ ['terminal', 0], + \ ['prompt', 0], + \ ['popup', 0], + \ ] + bwipe! XotherName + let buf = bufadd('XotherName') + call setbufvar(buf, '&bt', val[0]) + call bufload(buf) + call assert_equal(val[1] ? ['some', 'text'] : [''], getbufline(buf, 1, '$'), val[0]) + endfor bwipe someName bwipe XotherName diff --git a/src/version.c b/src/version.c index e32f990bcb..a0a7210464 100644 --- a/src/version.c +++ b/src/version.c @@ -724,6 +724,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 276, +/**/ 275, /**/ 274, |