Test for new thread creation

- don't clear the stack trace on continue - track running status
  properly (ish)
- mark threads (running) when the app is executing
- indicate the "current" thread with a different icon

TODO:
- allow user to specify current thread?
- track running status of threads individually?
- allow to pause/continue specific threads?
This commit is contained in:
Ben Jackson 2020-11-18 22:44:18 +00:00
commit e9e0e9e5b9
7 changed files with 495 additions and 110 deletions

View file

@ -8,17 +8,6 @@ function! ClearDown()
call vimspector#test#setup#ClearDown()
endfunction
function! s:assert_match_list( expected, actual ) abort
let ret = assert_equal( len( a:expected ), len( a:actual ) )
let len = min( [ len( a:expected ), len( a:actual ) ] )
let idx = 0
while idx < len
let ret += assert_match( a:expected[ idx ], a:actual[ idx ] )
let idx += 1
endwhile
return ret
endfunction
function! s:StartDebugging( ... )
if a:0 == 0
let config = #{
@ -222,7 +211,7 @@ function! Test_ExpandVariables()
call feedkeys( "\<CR>", 'xt' )
call WaitForAssert( {->
\ s:assert_match_list(
\ AssertMatchist(
\ [
\ '- Scope: Locals',
\ ' \*- t (Test): {...}',
@ -240,7 +229,7 @@ function! Test_ExpandVariables()
" Step - stays expanded
call vimspector#StepOver()
call WaitForAssert( {->
\ s:assert_match_list(
\ AssertMatchist(
\ [
\ '- Scope: Locals',
\ ' - t (Test): {...}',
@ -289,7 +278,7 @@ function! Test_ExpandVariables()
call setpos( '.', [ 0, 2, 1 ] )
call feedkeys( "\<CR>", 'xt' )
call WaitForAssert( {->
\ s:assert_match_list(
\ AssertMatchist(
\ [
\ '- Scope: Locals',
\ ' - t (Test): {...}',
@ -389,7 +378,7 @@ function! Test_ExpandWatch()
call feedkeys( "\<CR>", 'xt' )
call WaitForAssert( {->
\ s:assert_match_list(
\ AssertMatchist(
\ [
\ 'Watches: ----',
\ 'Expression: t',
@ -408,7 +397,7 @@ function! Test_ExpandWatch()
" Step - stays expanded
call vimspector#StepOver()
call WaitForAssert( {->
\ s:assert_match_list(
\ AssertMatchist(
\ [
\ 'Watches: ----',
\ 'Expression: t',
@ -460,7 +449,7 @@ function! Test_ExpandWatch()
call setpos( '.', [ 0, 3, 1 ] )
call feedkeys( "\<CR>", 'xt' )
call WaitForAssert( {->
\ s:assert_match_list(
\ AssertMatchist(
\ [
\ 'Watches: ----',
\ 'Expression: t',