Merge pull request #21 from puremourning/test-clear-breakpoints

Test clear breakpoints
This commit is contained in:
mergify[bot] 2019-05-16 20:10:30 +00:00 committed by GitHub
commit 4a42ccb802
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 77 additions and 32 deletions

View file

@ -205,11 +205,11 @@ class DebugSession( object ):
def _Reset( self ):
if self._uiTab:
vim.current.tabpage = self._uiTab
self._stackTraceView.Reset()
self._variablesView.Reset()
self._outputView.Reset()
self._codeView.Reset()
vim.current.tabpage = self._uiTab
vim.command( 'tabclose!' )
self._uiTab = None

View file

@ -1,8 +0,0 @@
#!/usr/bin/env bash
RUN_VIM="vim --noplugin --clean --not-a-term -Nu vimrc"
RUN_TEST="${RUN_VIM} -S run_test.vim"
pushd tests > /dev/null
exec $RUN_VIM "$@"

View file

@ -1,8 +1,21 @@
#!/usr/bin/env bash
RUN_VIM="vim --noplugin --clean --not-a-term"
RUN_VIM="vim --clean --not-a-term"
RUN_TEST="${RUN_VIM} -S run_test.vim"
if [ -z "$VIMSPECTOR_MIMODE" ]; then
if which -s lldb; then
export VIMSPECTOR_MIMODE=lldb
elif which -s gdb; then
export VIMSPECTOR_MIMODE=gdb
else
echo "Couldn't guess VIMSPECTOR_MIMODE. Need lldb or gdb in path"
exit 1
fi
fi
echo "Testing with VIMSPECTOR_MIMODE=$VIMSPECTOR_MIMODE"
echo "%SETUP - Building test programs..."
set -e
pushd tests/testdata/cpp/simple
@ -17,12 +30,21 @@ echo "Running Vimspector Vim tests"
RESULT=0
for t in *.test.vim; do
TESTS="$@"
if [ -z "$TESTS" ]; then
TESTS=*.test.vim
fi
for t in ${TESTS}; do
echo ""
echo "%RUN: $t"
rm -f messages debuglog
if ${RUN_TEST} $t --cmd 'au SwapExists * let v:swapchoice = "e"'; then
# split on : into fileName and testName
IFS=: read -s t T <<< "$t"
if ${RUN_TEST} --cmd 'au SwapExists * let v:swapchoice = "e"' $t $T; then
echo "%PASS: $t PASSED"
else
cat messages

8
support/test/run_test_vim Executable file
View file

@ -0,0 +1,8 @@
#!/usr/bin/env bash
exec vim \
--clean \
--not-a-term \
--cmd "let g:vimspector_enable_mappings='HUMAN'" \
-Nu $(dirname $0)/../../tests/vimrc \
"$@"

View file

@ -54,14 +54,14 @@ endfunction
function! Test_Signs_Placed_Using_API_Are_Shown()
" We need a real file
edit testdata/cpp/simple/simple.cpp
call feedkeys( "/printf\<CR>", 'x' )
call feedkeys( "/printf\<CR>", 'xt' )
" Set breakpoint
call vimspector#ToggleBreakpoint()
call assert_true( exists( '*vimspector#ToggleBreakpoint' ) )
let signs = sign_getplaced( '.', {
let signs = sign_getplaced( '%', {
\ 'group': 'VimspectorBP',
\ 'line': line( '.' )
\ } )
@ -73,7 +73,7 @@ function! Test_Signs_Placed_Using_API_Are_Shown()
" Disable breakpoint
call vimspector#ToggleBreakpoint()
let signs = sign_getplaced( '.', {
let signs = sign_getplaced( '%', {
\ 'group': 'VimspectorBP',
\ 'line': line( '.' )
\ } )
@ -85,7 +85,7 @@ function! Test_Signs_Placed_Using_API_Are_Shown()
" Remove breakpoint
call vimspector#ToggleBreakpoint()
let signs = sign_getplaced( '.', {
let signs = sign_getplaced( '%', {
\ 'group': 'VimspectorBP',
\ 'line': line( '.' )
\ } )
@ -94,7 +94,7 @@ function! Test_Signs_Placed_Using_API_Are_Shown()
call assert_equal( 0, len( signs[ 0 ].signs ) )
call vimspector#ClearBreakpoints()
bwipeout!
%bwipeout!
endfunction
function! SetUp_Test_Use_Mappings_HUMAN()
@ -109,9 +109,9 @@ function! Test_Use_Mappings_HUMAN()
call assert_equal( 15, line( '.' ) )
" Add the breakpoing
call feedkeys( "\<F9>", 'x' )
call feedkeys( "\<F9>", 'xt' )
let signs = sign_getplaced( '.', {
let signs = sign_getplaced( '%', {
\ 'group': 'VimspectorBP',
\ 'line': line( '.' )
\ } )
@ -121,9 +121,9 @@ function! Test_Use_Mappings_HUMAN()
call assert_equal( 'vimspectorBP', signs[ 0 ].signs[ 0 ].name )
" Disable the breakpoint
call feedkeys( "\<F9>", 'x' )
call feedkeys( "\<F9>", 'xt' )
let signs = sign_getplaced( '.', {
let signs = sign_getplaced( '%', {
\ 'group': 'VimspectorBP',
\ 'line': line( '.' )
\ } )
@ -132,9 +132,9 @@ function! Test_Use_Mappings_HUMAN()
call assert_equal( 'vimspectorBPDisabled', signs[ 0 ].signs[ 0 ].name )
" Delete the breakpoint
call feedkeys( "\<F9>", 'x' )
call feedkeys( "\<F9>", 'xt' )
let signs = sign_getplaced( '.', {
let signs = sign_getplaced( '%', {
\ 'group': 'VimspectorBP',
\ 'line': line( '.' )
\ } )
@ -142,9 +142,9 @@ function! Test_Use_Mappings_HUMAN()
call assert_equal( 0, len( signs[ 0 ].signs ) )
" Add it again
call feedkeys( "\<F9>", 'x' )
call feedkeys( "\<F9>", 'xt' )
let signs = sign_getplaced( '.', {
let signs = sign_getplaced( '%', {
\ 'group': 'VimspectorBP',
\ 'line': line( '.' )
\ } )
@ -154,12 +154,22 @@ function! Test_Use_Mappings_HUMAN()
call assert_equal( 'vimspectorBP', signs[ 0 ].signs[ 0 ].name )
" Here we go. Start Debugging
call feedkeys( "\<F5>", 'x' )
call feedkeys( "\<F5>", 'xt' )
call assert_equal( 2, len( gettabinfo() ) )
let cur_tabnr = tabpagenr()
call assert_equal( 5, len( gettabinfo( cur_tabnr )[ 0 ].windows ) )
call vimspector#Reset()
call vimspector#ClearBreakpoints()
let signs = sign_getplaced( '%', {
\ 'group': 'VimspectorBP'
\ } )
call assert_equal( 1, len( signs ), 1 )
call assert_equal( 0, len( signs[ 0 ].signs ) )
lcd -
bwipeout!
%bwipeout!
endfunction

View file

@ -83,6 +83,8 @@ func RunTheTest(test)
\ . ': '
\ . v:exception
\ . ' @ '
\ . g:testpath
\ . ':'
\ . v:throwpoint)
endtry
endif
@ -97,6 +99,8 @@ func RunTheTest(test)
\ . ': '
\ . v:exception
\ . ' @ '
\ . g:testpath
\ . ':'
\ . v:throwpoint)
endtry
endif
@ -111,6 +115,7 @@ func RunTheTest(test)
else
try
let s:test = a:test
let s:testid = g:testpath . ':' . a:test
au VimLeavePre * call EarlyExit(s:test)
exe 'call ' . a:test
au! VimLeavePre
@ -126,6 +131,8 @@ func RunTheTest(test)
\ . ': '
\ . v:exception
\ . ' @ '
\ . g:testpath
\ . ':'
\ . v:throwpoint)
endtry
endif
@ -143,6 +150,8 @@ func RunTheTest(test)
\ . ': '
\ . v:exception
\ . ' @ '
\ . g:testpath
\ . ':'
\ . v:throwpoint)
endtry
endif
@ -156,6 +165,8 @@ func RunTheTest(test)
\ . ': '
\ . v:exception
\ . ' @ '
\ . g:testpath
\ . ':'
\ . v:throwpoint)
endtry
endif
@ -187,7 +198,7 @@ endfunc
func AfterTheTest()
if len(v:errors) > 0
let s:fail += 1
call add(s:errors, 'Found errors in ' . s:test . ':')
call add(s:errors, 'Found errors in ' . s:testid . ':')
call extend(s:errors, v:errors)
let v:errors = []
endif
@ -219,7 +230,7 @@ func FinishTesting()
" Append errors to test.log
split test.log
call append(line('$'), '')
call append(line('$'), 'From ' . g:testname . ':')
call append(line('$'), 'From ' . g:testpath . ':')
call append(line('$'), s:errors)
write
endif
@ -244,7 +255,7 @@ func FinishTesting()
" Append messages to the file "messages"
split messages
call append(line('$'), '')
call append(line('$'), 'From ' . g:testname . ':')
call append(line('$'), 'From ' . g:testpath . ':')
call append(line('$'), s:messages)
write
@ -258,6 +269,7 @@ endfunc
" Source the test script. First grab the file name, in case the script
" navigates away. g:testname can be used by the tests.
let g:testname = expand('%')
let g:testpath = expand('%:p')
let s:done = 0
let s:fail = 0
let s:errors = []
@ -307,7 +319,7 @@ for s:test in sort(s:tests)
\ && (index(s:flaky_tests, s:test) >= 0
\ || v:errors[0] =~ s:flaky_errors_re)
while 1
call add(s:messages, 'Found errors in ' . s:test . ':')
call add(s:messages, 'Found errors in ' . s:testid . ':')
call extend(s:messages, v:errors)
call add(total_errors, 'Run ' . run_nr . ':')

View file

@ -1,4 +1,5 @@
let g:vimspector_test_plugin_path = expand( '<sfile>:h:h' )
let g:vimspector_test_plugin_path = expand( '<sfile>:p:h:h' )
set mouse=a
let &rtp = &rtp . ',' . g:vimspector_test_plugin_path