diff options
author | Christian Brabandt <cb@256bit.org> | 2024-07-24 21:37:39 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-07-24 21:41:55 +0200 |
commit | 2979cfc2627d76a9c09cad46a1647dcd4aa73f5f (patch) | |
tree | 1fc04a1e62c7190d86c894029e8d8d1dc445a737 | |
parent | ddbb6fe2d0344e93436c5602b7a06169f49a9b52 (diff) |
patch 9.1.0613: tests: termdebug test may fail and leave file aroundv9.1.0613
Problem: tests: termdebug test may fail and leave temp file around
(Dominique Pellé)
Solution: only run balloon_show() if the function exists, validate
termdebug is running using the g: termdebug_is_running var,
use defer to delete temporary files
fixes: #15334
Signed-off-by: Christian Brabandt <cb@256bit.org>
-rw-r--r-- | runtime/pack/dist/opt/termdebug/plugin/termdebug.vim | 8 | ||||
-rw-r--r-- | src/testdir/test_termdebug.vim | 10 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 18 insertions, 2 deletions
diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim index ee77008492..04f82bd504 100644 --- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim +++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim @@ -1535,6 +1535,12 @@ def CleanupExpr(passed_expr: string): string return expr enddef +def Balloon_show(expr: string) + if has("+balloon_eval") || has("+balloon_eval_term") + balloon_show(expr) + endif +enddef + def HandleEvaluate(msg: string) var value = msg ->substitute('.*value="\(.*\)"', '\1', '') @@ -1555,7 +1561,7 @@ def HandleEvaluate(msg: string) else evalFromBalloonExprResult ..= $' = {value}' endif - balloon_show(evalFromBalloonExprResult) + Balloon_show(evalFromBalloonExprResult) else echomsg $'"{evalexpr}": {value}' endif diff --git a/src/testdir/test_termdebug.vim b/src/testdir/test_termdebug.vim index fe5ed89dc2..b5c12aefe1 100644 --- a/src/testdir/test_termdebug.vim +++ b/src/testdir/test_termdebug.vim @@ -63,6 +63,7 @@ func Test_termdebug_basic() edit XTD_basic.c Termdebug ./XTD_basic + call WaitForAssert({-> assert_true(get(g:, "termdebug_is_running", v:false))}) call WaitForAssert({-> assert_equal(3, winnr('$'))}) let gdb_buf = winbufnr(1) wincmd b @@ -164,6 +165,7 @@ func Test_termdebug_basic() let g:termdebug_config = {} let g:termdebug_config['use_prompt'] = use_prompt TermdebugCommand ./XTD_basic arg args + call WaitForAssert({-> assert_true(get(g:, "termdebug_is_running", v:false))}) call WaitForAssert({-> assert_equal(3, winnr('$'))}) wincmd t quit! @@ -186,6 +188,7 @@ func Test_termdebug_tbreak() execute 'edit ' .. src_name execute 'Termdebug ./' .. bin_name + call WaitForAssert({-> assert_true(get(g:, "termdebug_is_running", v:false))}) call WaitForAssert({-> assert_equal(3, winnr('$'))}) let gdb_buf = winbufnr(1) wincmd b @@ -246,6 +249,7 @@ func Test_termdebug_mapping() call assert_true(maparg('-', 'n', 0, 1)->empty()) call assert_true(maparg('+', 'n', 0, 1)->empty()) Termdebug + call WaitForAssert({-> assert_true(get(g:, "termdebug_is_running", v:false))}) call WaitForAssert({-> assert_equal(3, winnr('$'))}) wincmd b call assert_false(maparg('K', 'n', 0, 1)->empty()) @@ -268,6 +272,7 @@ func Test_termdebug_mapping() nnoremap - :echom "-"<cr> nnoremap + :echom "+"<cr> Termdebug + call WaitForAssert({-> assert_true(get(g:, "termdebug_is_running", v:false))}) call WaitForAssert({-> assert_equal(3, winnr('$'))}) wincmd b call assert_false(maparg('K', 'n', 0, 1)->empty()) @@ -305,6 +310,7 @@ func Test_termdebug_mapping() " Start termdebug from foo buffer foo Termdebug + call WaitForAssert({-> assert_true(get(g:, "termdebug_is_running", v:false))}) call WaitForAssert({-> assert_equal(3, winnr('$'))}) wincmd b call assert_true(maparg('K', 'n', 0, 1).buffer) @@ -368,6 +374,7 @@ function Test_termdebug_save_restore_variables() let g:termdebug_config['map_K'] = v:true Termdebug + call WaitForAssert({-> assert_true(get(g:, "termdebug_is_running", v:false))}) call WaitForAssert({-> assert_equal(3, winnr('$'))}) call WaitForAssert({-> assert_match(&mousemodel, 'popup_setpos')}) wincmd t @@ -398,7 +405,7 @@ function Test_termdebug_sanity_check() let s:error_message = "You have a file/folder named '" .. s:filename .. "'" " Write dummy file with bad name - call writefile(['This', 'is', 'a', 'test'], s:filename) + call writefile(['This', 'is', 'a', 'test'], s:filename, 'D') Termdebug call WaitForAssert({-> assert_true(execute('messages') =~ s:error_message)}) call WaitForAssert({-> assert_equal(1, winnr('$'))}) @@ -413,6 +420,7 @@ endfunction function Test_termdebug_double_termdebug_instances() let s:error_message = 'Terminal debugger already running, cannot run two' Termdebug + call WaitForAssert({-> assert_true(get(g:, "termdebug_is_running", v:false))}) call WaitForAssert({-> assert_equal(3, winnr('$'))}) Termdebug call WaitForAssert({-> assert_true(execute('messages') =~ s:error_message)}) diff --git a/src/version.c b/src/version.c index 7cef73c8ba..0583e272ba 100644 --- a/src/version.c +++ b/src/version.c @@ -705,6 +705,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 613, +/**/ 612, /**/ 611, |