From 65af4241996021b2067d2adc97cc2c83c616cbb6 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 28 Feb 2023 20:59:59 +0800 Subject: vim-patch:8.2.4668: buffer allocation failures insufficiently tested Problem: Buffer allocation failures insufficiently tested. Solution: Add tests for memory allocation failures. (Yegappan Lakshmanan, closes vim/vim#10064) https://github.com/vim/vim/commit/0dac1ab5791819ee9a496273eea38f69a217ac45 Co-authored-by: Yegappan Lakshmanan --- src/nvim/testdir/test_buffer.vim | 71 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) (limited to 'src/nvim/testdir/test_buffer.vim') diff --git a/src/nvim/testdir/test_buffer.vim b/src/nvim/testdir/test_buffer.vim index 9220cc17b9..90e97ae167 100644 --- a/src/nvim/testdir/test_buffer.vim +++ b/src/nvim/testdir/test_buffer.vim @@ -451,4 +451,75 @@ func Test_buffer_maxmem() " set maxmem& maxmemtot& endfunc +" Test for a allocation failure when adding a new buffer +func Test_buflist_alloc_failure() + CheckFunction test_alloc_fail + %bw! + + edit Xfile1 + call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call assert_fails('edit Xfile2', 'E342:') + + " test for bufadd() + call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call assert_fails('call bufadd("Xbuffer")', 'E342:') + + " test for setting the arglist + edit Xfile2 + call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call assert_fails('next Xfile3', 'E342:') + + " test for setting the alternate buffer name when writing a file + call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call assert_fails('write Xother', 'E342:') + call delete('Xother') + + " test for creating a buffer using bufnr() + call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call assert_fails("call bufnr('Xnewbuf', v:true)", 'E342:') + + " test for renaming buffer using :file + call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call assert_fails('file Xnewfile', 'E342:') + + " test for creating a buffer for a popup window + call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call assert_fails('call popup_create("mypop", {})', 'E342:') + + if has('terminal') + " test for creating a buffer for a terminal window + call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call assert_fails('call term_start(&shell)', 'E342:') + %bw! + endif + + " test for loading a new buffer after wiping out all the buffers + edit Xfile4 + call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call assert_fails('%bw!', 'E342:') + + " test for :checktime loading the buffer + call writefile(['one'], 'Xfile5') + if has('unix') + edit Xfile5 + " sleep for some time to make sure the timestamp is different + sleep 200m + call writefile(['two'], 'Xfile5') + set autoread + call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call assert_fails('checktime', 'E342:') + set autoread& + bw! + endif + + " test for :vimgrep loading a dummy buffer + call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call assert_fails('vimgrep two Xfile5', 'E342:') + call delete('Xfile5') + + " test for quickfix command loading a buffer + call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call assert_fails('cexpr "Xfile6:10:Line10"', 'E342:') +endfunc + " vim: shiftwidth=2 sts=2 expandtab -- cgit From 1e513fd112767e57f2b39dfaa395c83cb4f6a9f7 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 28 Feb 2023 21:01:36 +0800 Subject: vim-patch:8.2.4670: memory allocation failures for new tab page not tested Problem: Memory allocation failures for new tab page not tested. Solution: Add tests with failing memory allocation. (Yegappan Lakshmanan, closes vim/vim#10067) https://github.com/vim/vim/commit/72bb47e38f6805050ed6d969f17591bed71f83d4 Co-authored-by: Yegappan Lakshmanan --- src/nvim/testdir/test_buffer.vim | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'src/nvim/testdir/test_buffer.vim') diff --git a/src/nvim/testdir/test_buffer.vim b/src/nvim/testdir/test_buffer.vim index 90e97ae167..98eba83f73 100644 --- a/src/nvim/testdir/test_buffer.vim +++ b/src/nvim/testdir/test_buffer.vim @@ -451,51 +451,51 @@ func Test_buffer_maxmem() " set maxmem& maxmemtot& endfunc -" Test for a allocation failure when adding a new buffer +" Test for buffer allocation failure func Test_buflist_alloc_failure() CheckFunction test_alloc_fail %bw! edit Xfile1 - call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('edit Xfile2', 'E342:') " test for bufadd() - call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('call bufadd("Xbuffer")', 'E342:') " test for setting the arglist edit Xfile2 - call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('next Xfile3', 'E342:') " test for setting the alternate buffer name when writing a file - call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('write Xother', 'E342:') call delete('Xother') " test for creating a buffer using bufnr() - call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails("call bufnr('Xnewbuf', v:true)", 'E342:') " test for renaming buffer using :file - call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('file Xnewfile', 'E342:') " test for creating a buffer for a popup window - call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('call popup_create("mypop", {})', 'E342:') if has('terminal') " test for creating a buffer for a terminal window - call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('call term_start(&shell)', 'E342:') %bw! endif " test for loading a new buffer after wiping out all the buffers edit Xfile4 - call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('%bw!', 'E342:') " test for :checktime loading the buffer @@ -506,19 +506,19 @@ func Test_buflist_alloc_failure() sleep 200m call writefile(['two'], 'Xfile5') set autoread - call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('checktime', 'E342:') set autoread& bw! endif " test for :vimgrep loading a dummy buffer - call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('vimgrep two Xfile5', 'E342:') call delete('Xfile5') " test for quickfix command loading a buffer - call test_alloc_fail(GetAllocId('buflistnew_bvars'), 0, 0) + call test_alloc_fail(GetAllocId('newbuf_bvars'), 0, 0) call assert_fails('cexpr "Xfile6:10:Line10"', 'E342:') endfunc -- cgit