Factor out some common functions in breakpoint tests
This commit is contained in:
parent
55c75fd08e
commit
14abf30518
1 changed files with 82 additions and 107 deletions
|
|
@ -51,6 +51,41 @@ function! SetUp_Test_Signs_Placed_Using_API_Are_Shown()
|
||||||
let g:vimspector_enable_mappings = 'VISUAL_STUDIO'
|
let g:vimspector_enable_mappings = 'VISUAL_STUDIO'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! AssertSignGroupSingletonAtLine( group,
|
||||||
|
\ line,
|
||||||
|
\ sign_name )
|
||||||
|
|
||||||
|
let signs = sign_getplaced( '%', {
|
||||||
|
\ 'group': a:group,
|
||||||
|
\ 'line': a:line,
|
||||||
|
\ } )
|
||||||
|
|
||||||
|
call assert_equal( 1, len( signs ) )
|
||||||
|
call assert_equal( 1, len( signs[ 0 ].signs ) )
|
||||||
|
call assert_equal( a:sign_name, signs[ 0 ].signs[ 0 ].name )
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! AssertSignGroupEmptyAtLine( group, line )
|
||||||
|
let signs = sign_getplaced( '%', {
|
||||||
|
\ 'group': 'VimspectorBP',
|
||||||
|
\ 'line': line( '.' )
|
||||||
|
\ } )
|
||||||
|
|
||||||
|
call assert_equal( 1, len( signs ) )
|
||||||
|
call assert_equal( 0, len( signs[ 0 ].signs ) )
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! AssertSignGroupEmpty( group )
|
||||||
|
let signs = sign_getplaced( '%', {
|
||||||
|
\ 'group': 'VimspectorBP'
|
||||||
|
\ } )
|
||||||
|
call assert_equal( 1, len( signs ) )
|
||||||
|
call assert_equal( 0, len( signs[ 0 ].signs ) )
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function! Test_Signs_Placed_Using_API_Are_Shown()
|
function! Test_Signs_Placed_Using_API_Are_Shown()
|
||||||
" We need a real file
|
" We need a real file
|
||||||
edit testdata/cpp/simple/simple.cpp
|
edit testdata/cpp/simple/simple.cpp
|
||||||
|
|
@ -60,43 +95,52 @@ function! Test_Signs_Placed_Using_API_Are_Shown()
|
||||||
call vimspector#ToggleBreakpoint()
|
call vimspector#ToggleBreakpoint()
|
||||||
|
|
||||||
call assert_true( exists( '*vimspector#ToggleBreakpoint' ) )
|
call assert_true( exists( '*vimspector#ToggleBreakpoint' ) )
|
||||||
|
call AssertSignGroupSingletonAtLine( 'VimspectorBP',
|
||||||
let signs = sign_getplaced( '%', {
|
\ line( '.' ),
|
||||||
\ 'group': 'VimspectorBP',
|
\ 'vimspectorBP' )
|
||||||
\ 'line': line( '.' )
|
|
||||||
\ } )
|
|
||||||
|
|
||||||
call assert_equal( 1, len( signs ) )
|
|
||||||
call assert_equal( 1, len( signs[ 0 ].signs ) )
|
|
||||||
call assert_equal( 'vimspectorBP', signs[ 0 ].signs[ 0 ].name )
|
|
||||||
|
|
||||||
" Disable breakpoint
|
" Disable breakpoint
|
||||||
call vimspector#ToggleBreakpoint()
|
call vimspector#ToggleBreakpoint()
|
||||||
|
call AssertSignGroupSingletonAtLine( 'VimspectorBP',
|
||||||
let signs = sign_getplaced( '%', {
|
\ line( '.' ),
|
||||||
\ 'group': 'VimspectorBP',
|
\ 'vimspectorBPDisabled' )
|
||||||
\ 'line': line( '.' )
|
|
||||||
\ } )
|
|
||||||
|
|
||||||
call assert_equal( 1, len( signs ) )
|
|
||||||
call assert_equal( 1, len( signs[ 0 ].signs ) )
|
|
||||||
call assert_equal( 'vimspectorBPDisabled', signs[ 0 ].signs[ 0 ].name )
|
|
||||||
|
|
||||||
" Remove breakpoint
|
" Remove breakpoint
|
||||||
call vimspector#ToggleBreakpoint()
|
call vimspector#ToggleBreakpoint()
|
||||||
|
|
||||||
let signs = sign_getplaced( '%', {
|
call AssertSignGroupEmptyAtLine( 'VimspectorBP', line( '.' ) )
|
||||||
\ 'group': 'VimspectorBP',
|
|
||||||
\ 'line': line( '.' )
|
|
||||||
\ } )
|
|
||||||
|
|
||||||
call assert_equal( 1, len( signs ) )
|
|
||||||
call assert_equal( 0, len( signs[ 0 ].signs ) )
|
|
||||||
|
|
||||||
call vimspector#ClearBreakpoints()
|
call vimspector#ClearBreakpoints()
|
||||||
|
call AssertSignGroupEmpty( 'VimspectorBP' )
|
||||||
|
|
||||||
%bwipeout!
|
%bwipeout!
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! AssertPCIsAtLineInBuffer( buffer, line )
|
||||||
|
let signs = sign_getplaced( a:buffer, {
|
||||||
|
\ 'group': 'VimspectorCode',
|
||||||
|
\ } )
|
||||||
|
|
||||||
|
call assert_equal( 1, len( signs ), 'Sign-buffers' )
|
||||||
|
call assert_equal( 2, len( signs[ 0 ].signs ), 'Signs in buffer' )
|
||||||
|
|
||||||
|
let pc_index = -1
|
||||||
|
let index = 0
|
||||||
|
while index < len( signs[ 0 ].signs )
|
||||||
|
let s = signs[ 0 ].signs[ index ]
|
||||||
|
if s.name ==# 'vimspectorPC'
|
||||||
|
if pc_index >= 0
|
||||||
|
call assert_report( 'Found too many PC signs!' )
|
||||||
|
endif
|
||||||
|
let pc_index = index
|
||||||
|
endif
|
||||||
|
let index = index + 1
|
||||||
|
endwhile
|
||||||
|
call assert_true( pc_index >= 0 )
|
||||||
|
call assert_equal( a:line, signs[ 0 ].signs[ pc_index ].lnum )
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! SetUp_Test_Use_Mappings_HUMAN()
|
function! SetUp_Test_Use_Mappings_HUMAN()
|
||||||
let g:vimspector_enable_mappings = 'HUMAN'
|
let g:vimspector_enable_mappings = 'HUMAN'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
@ -110,48 +154,25 @@ function! Test_Use_Mappings_HUMAN()
|
||||||
|
|
||||||
" Add the breakpoing
|
" Add the breakpoing
|
||||||
call feedkeys( "\<F9>", 'xt' )
|
call feedkeys( "\<F9>", 'xt' )
|
||||||
|
call AssertSignGroupSingletonAtLine( 'VimspectorBP',
|
||||||
let signs = sign_getplaced( '%', {
|
\ line( '.' ),
|
||||||
\ 'group': 'VimspectorBP',
|
\ 'vimspectorBP' )
|
||||||
\ 'line': line( '.' )
|
|
||||||
\ } )
|
|
||||||
|
|
||||||
call assert_equal( 1, len( signs ), 1 )
|
|
||||||
call assert_equal( 1, len( signs[ 0 ].signs ), 1 )
|
|
||||||
call assert_equal( 'vimspectorBP', signs[ 0 ].signs[ 0 ].name )
|
|
||||||
|
|
||||||
" Disable the breakpoint
|
" Disable the breakpoint
|
||||||
call feedkeys( "\<F9>", 'xt' )
|
call feedkeys( "\<F9>", 'xt' )
|
||||||
|
call AssertSignGroupSingletonAtLine( 'VimspectorBP',
|
||||||
let signs = sign_getplaced( '%', {
|
\ line( '.' ),
|
||||||
\ 'group': 'VimspectorBP',
|
\ 'vimspectorBPDisabled' )
|
||||||
\ 'line': line( '.' )
|
|
||||||
\ } )
|
|
||||||
call assert_equal( 1, len( signs ), 1 )
|
|
||||||
call assert_equal( 1, len( signs[ 0 ].signs ), 1 )
|
|
||||||
call assert_equal( 'vimspectorBPDisabled', signs[ 0 ].signs[ 0 ].name )
|
|
||||||
|
|
||||||
" Delete the breakpoint
|
" Delete the breakpoint
|
||||||
call feedkeys( "\<F9>", 'xt' )
|
call feedkeys( "\<F9>", 'xt' )
|
||||||
|
call AssertSignGroupEmptyAtLine( 'VimspectorBP', line( '.' ) )
|
||||||
let signs = sign_getplaced( '%', {
|
|
||||||
\ 'group': 'VimspectorBP',
|
|
||||||
\ 'line': line( '.' )
|
|
||||||
\ } )
|
|
||||||
call assert_equal( 1, len( signs ), 1 )
|
|
||||||
call assert_equal( 0, len( signs[ 0 ].signs ) )
|
|
||||||
|
|
||||||
" Add it again
|
" Add it again
|
||||||
call feedkeys( "\<F9>", 'xt' )
|
call feedkeys( "\<F9>", 'xt' )
|
||||||
|
call AssertSignGroupSingletonAtLine( 'VimspectorBP',
|
||||||
let signs = sign_getplaced( '%', {
|
\ line( '.' ),
|
||||||
\ 'group': 'VimspectorBP',
|
\ 'vimspectorBP' )
|
||||||
\ 'line': line( '.' )
|
|
||||||
\ } )
|
|
||||||
|
|
||||||
call assert_equal( 1, len( signs ), 1 )
|
|
||||||
call assert_equal( 1, len( signs[ 0 ].signs ), 1 )
|
|
||||||
call assert_equal( 'vimspectorBP', signs[ 0 ].signs[ 0 ].name )
|
|
||||||
|
|
||||||
" Here we go. Start Debugging
|
" Here we go. Start Debugging
|
||||||
call feedkeys( "\<F5>", 'xt' )
|
call feedkeys( "\<F5>", 'xt' )
|
||||||
|
|
@ -165,28 +186,7 @@ function! Test_Use_Mappings_HUMAN()
|
||||||
\ }, 10000 )
|
\ }, 10000 )
|
||||||
call assert_equal( 15, line( '.' ), 'Current line' )
|
call assert_equal( 15, line( '.' ), 'Current line' )
|
||||||
call assert_equal( 1, col( '.' ), 'Current column' )
|
call assert_equal( 1, col( '.' ), 'Current column' )
|
||||||
|
call AssertPCIsAtLineInBuffer( '%', 15 )
|
||||||
let signs = sign_getplaced( '%', {
|
|
||||||
\ 'group': 'VimspectorCode',
|
|
||||||
\ } )
|
|
||||||
|
|
||||||
call assert_equal( 1, len( signs ), 'Sign-buffers' )
|
|
||||||
call assert_equal( 2, len( signs[ 0 ].signs ), 'Signs in buffer' )
|
|
||||||
|
|
||||||
let pc_index = -1
|
|
||||||
let index = 0
|
|
||||||
while index < len( signs[ 0 ].signs )
|
|
||||||
let s = signs[ 0 ].signs[ index ]
|
|
||||||
if s.name ==# 'vimspectorPC'
|
|
||||||
if pc_index >= 0
|
|
||||||
call assert_report( 'Found too many PC signs!' )
|
|
||||||
endif
|
|
||||||
let pc_index = index
|
|
||||||
endif
|
|
||||||
let index = index + 1
|
|
||||||
endwhile
|
|
||||||
call assert_true( pc_index >= 0 )
|
|
||||||
call assert_equal( 15, signs[ 0 ].signs[ pc_index ].lnum )
|
|
||||||
|
|
||||||
" Step
|
" Step
|
||||||
call feedkeys( "\<F10>", 'xt' )
|
call feedkeys( "\<F10>", 'xt' )
|
||||||
|
|
@ -194,38 +194,13 @@ function! Test_Use_Mappings_HUMAN()
|
||||||
call WaitForAssert( {-> assert_equal( 16, line( '.' ), 'Current line' ) } )
|
call WaitForAssert( {-> assert_equal( 16, line( '.' ), 'Current line' ) } )
|
||||||
call assert_equal( 'simple.cpp', bufname( '%' ), 'Current buffer' )
|
call assert_equal( 'simple.cpp', bufname( '%' ), 'Current buffer' )
|
||||||
call assert_equal( 1, col( '.' ), 'Current column' )
|
call assert_equal( 1, col( '.' ), 'Current column' )
|
||||||
|
call AssertPCIsAtLineInBuffer( '%', 16 )
|
||||||
let signs = sign_getplaced( '%', {
|
|
||||||
\ 'group': 'VimspectorCode',
|
|
||||||
\ } )
|
|
||||||
|
|
||||||
call assert_equal( 1, len( signs ), 'Sign-buffers' )
|
|
||||||
call assert_equal( 2, len( signs[ 0 ].signs ), 'Signs in buffer' )
|
|
||||||
|
|
||||||
let pc_index = -1
|
|
||||||
let index = 0
|
|
||||||
while index < len( signs[ 0 ].signs )
|
|
||||||
let s = signs[ 0 ].signs[ index ]
|
|
||||||
if s.name ==# 'vimspectorPC'
|
|
||||||
if pc_index >= 0
|
|
||||||
call assert_report( 'Found too many PC signs!' )
|
|
||||||
endif
|
|
||||||
let pc_index = index
|
|
||||||
endif
|
|
||||||
let index = index + 1
|
|
||||||
endwhile
|
|
||||||
call assert_true( pc_index >= 0 )
|
|
||||||
call assert_equal( 16, signs[ 0 ].signs[ pc_index ].lnum )
|
|
||||||
|
|
||||||
call vimspector#Reset()
|
call vimspector#Reset()
|
||||||
|
|
||||||
call vimspector#ClearBreakpoints()
|
call vimspector#ClearBreakpoints()
|
||||||
|
|
||||||
let signs = sign_getplaced( '%', {
|
call AssertSignGroupEmpty( 'VimspectorBP' )
|
||||||
\ 'group': 'VimspectorBP'
|
|
||||||
\ } )
|
|
||||||
call assert_equal( 1, len( signs ), 1 )
|
|
||||||
call assert_equal( 0, len( signs[ 0 ].signs ) )
|
|
||||||
|
|
||||||
lcd -
|
lcd -
|
||||||
%bwipeout!
|
%bwipeout!
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue