0
0
mirror of https://github.com/vim/vim.git synced 2025-11-16 23:24:03 -05:00

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 #10064)
This commit is contained in:
Yegappan Lakshmanan
2022-04-02 21:46:19 +01:00
committed by Bram Moolenaar
parent 5018a836c0
commit 0dac1ab579
7 changed files with 84 additions and 6 deletions

View File

@@ -430,4 +430,74 @@ func Test_buffer_maxmem()
set maxmem& maxmemtot&
endfunc
" Test for a allocation failure when adding a new buffer
func Test_buflist_alloc_failure()
%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