Don't leak buffers when creating output view

This commit is contained in:
Ben Jackson 2020-09-01 15:01:24 +01:00
commit f538102d33
2 changed files with 121 additions and 0 deletions

View file

@ -49,3 +49,103 @@ function! Test_Step_With_Different_Tabpage()
%bwipeout!
endfunction
function! Test_All_Buffers_Deleted_NoHidden()
set nohidden
lcd testdata/cpp/simple
edit simple.cpp
let opts = #{ buflisted: v:true }
let buffers_before = getbufinfo( opts )
call setpos( '.', [ 0, 15, 1 ] )
call vimspector#ToggleBreakpoint()
call vimspector#Launch()
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( 'simple.cpp', 15, 1 )
call vimspector#test#signs#AssertPCIsAtLineInBuffer(
\ 'simple.cpp',
\ 15 )
call vimspector#Reset()
call vimspector#test#setup#WaitForReset()
let buffers_after = getbufinfo( opts )
call assert_equal( len( buffers_before ), len( buffers_after ) )
set hidden&
lcd -
call vimspector#test#setup#Reset()
%bwipe!
endfunction
function! Test_All_Buffers_Deleted_Hidden()
set hidden
lcd testdata/cpp/simple
edit simple.cpp
let opts = #{ buflisted: v:true }
let buffers_before = getbufinfo( opts )
call setpos( '.', [ 0, 15, 1 ] )
call vimspector#ToggleBreakpoint()
call vimspector#Launch()
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( 'simple.cpp', 15, 1 )
call vimspector#test#signs#AssertPCIsAtLineInBuffer(
\ 'simple.cpp',
\ 15 )
call vimspector#Reset()
call vimspector#test#setup#WaitForReset()
let buffers_after = getbufinfo( opts )
call assert_equal( len( buffers_before ), len( buffers_after ) )
set hidden&
lcd -
call vimspector#test#setup#Reset()
%bwipe!
endfunction
function! Test_All_Buffers_Deleted_ToggleLog()
set hidden
let buffers_before = getbufinfo( #{ buflisted: 1 } )
VimspectorToggleLog
VimspectorToggleLog
let buffers_after = getbufinfo( #{ buflisted: 1 } )
call assert_equal( len( buffers_before ), len( buffers_after ) )
call vimspector#test#setup#Reset()
set hidden&
%bwipe!
endfunction
let g:vimspector_test_install_done = 0
function! Test_All_Buffers_Deleted_Installer()
set hidden
let buffers_before = getbufinfo( #{ buflisted: 1 } )
augroup Test_All_Buffers_Deleted_Installer
au!
au User VimspectorInstallSuccess let g:vimspector_test_install_done = 1
au User VimspectorInstallFailed let g:vimspector_test_install_done = 1
augroup END
VimspectorUpdate
" The test timeout will take care of this taking too long
call WaitForAssert(
\ { -> assert_equal( 1, g:vimspector_test_install_done ) },
\ 120000 )
let buffers_after = getbufinfo( #{ buflisted: 1 } )
call assert_equal( len( buffers_before ), len( buffers_after ) )
call vimspector#test#setup#Reset()
set hidden&
au! Test_All_Buffers_Deleted_Installer
%bwipe!
endfunction