mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
vim-patch:9.0.1791: No tests for the termdebug plugin
Problem: No tests for the termdebug plugin
Solution: Add some simple tests for the termdebug plugin
closes: vim/vim#12927
58f39d89a8
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
parent
ed464ba487
commit
8d3dbf2746
2
.github/scripts/install_deps.sh
vendored
2
.github/scripts/install_deps.sh
vendored
@ -30,7 +30,7 @@ if [[ $os == Linux ]]; then
|
||||
fi
|
||||
|
||||
if [[ -n $TEST ]]; then
|
||||
sudo apt-get install -y locales-all cpanminus attr libattr1-dev
|
||||
sudo apt-get install -y locales-all cpanminus attr libattr1-dev gdb
|
||||
fi
|
||||
elif [[ $os == Darwin ]]; then
|
||||
brew update --quiet
|
||||
|
@ -58,6 +58,11 @@ func Ntest_setmouse(row, col)
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" roughly equivalent to term_wait() in Vim
|
||||
func Nterm_wait(buf, time = 10)
|
||||
execute $'sleep {a:time}m'
|
||||
endfunc
|
||||
|
||||
" Prevent Nvim log from writing to stderr.
|
||||
let $NVIM_LOG_FILE = exists($NVIM_LOG_FILE) ? $NVIM_LOG_FILE : 'Xnvim.log'
|
||||
|
||||
|
91
test/old/testdir/test_termdebug.vim
Normal file
91
test/old/testdir/test_termdebug.vim
Normal file
@ -0,0 +1,91 @@
|
||||
" Test for the termdebug plugin
|
||||
|
||||
source check.vim
|
||||
|
||||
CheckUnix
|
||||
" CheckFeature terminal
|
||||
CheckExecutable gdb
|
||||
CheckExecutable gcc
|
||||
|
||||
let g:GDB = exepath('gdb')
|
||||
if g:GDB->empty()
|
||||
throw 'Skpped: gdb is not found in $PATH'
|
||||
endif
|
||||
|
||||
let g:GCC = exepath('gcc')
|
||||
if g:GCC->empty()
|
||||
throw 'Skpped: gcc is not found in $PATH'
|
||||
endif
|
||||
|
||||
packadd termdebug
|
||||
|
||||
func Test_termdebug_basic()
|
||||
let lines =<< trim END
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int isprime(int n)
|
||||
{
|
||||
if (n <= 1)
|
||||
return 0;
|
||||
|
||||
for (int i = 2; i <= n / 2; i++)
|
||||
if (n % i == 0)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int n = 7;
|
||||
|
||||
printf("%d is %s prime\n", n, isprime(n) ? "a" : "not a");
|
||||
|
||||
return 0;
|
||||
}
|
||||
END
|
||||
call writefile(lines, 'XTD_basic.c', 'D')
|
||||
call system($'{g:GCC} -g -o XTD_basic XTD_basic.c')
|
||||
|
||||
edit XTD_basic.c
|
||||
Termdebug ./XTD_basic
|
||||
call assert_equal(3, winnr('$'))
|
||||
let gdb_buf = winbufnr(1)
|
||||
wincmd b
|
||||
Break 9
|
||||
call Nterm_wait(gdb_buf)
|
||||
redraw!
|
||||
call assert_equal([
|
||||
\ {'lnum': 9, 'id': 1014, 'name': 'debugBreakpoint1.0',
|
||||
\ 'priority': 110, 'group': 'TermDebug'}],
|
||||
\ sign_getplaced('', #{group: 'TermDebug'})[0].signs)
|
||||
Run
|
||||
call Nterm_wait(gdb_buf, 200)
|
||||
redraw!
|
||||
call assert_equal([
|
||||
\ {'lnum': 9, 'id': 12, 'name': 'debugPC', 'priority': 110,
|
||||
\ 'group': 'TermDebug'},
|
||||
\ {'lnum': 9, 'id': 1014, 'name': 'debugBreakpoint1.0',
|
||||
\ 'priority': 110, 'group': 'TermDebug'}],
|
||||
\ sign_getplaced('', #{group: 'TermDebug'})[0].signs)
|
||||
Finish
|
||||
call Nterm_wait(gdb_buf)
|
||||
redraw!
|
||||
call assert_equal([
|
||||
\ {'lnum': 9, 'id': 1014, 'name': 'debugBreakpoint1.0',
|
||||
\ 'priority': 110, 'group': 'TermDebug'},
|
||||
\ {'lnum': 20, 'id': 12, 'name': 'debugPC',
|
||||
\ 'priority': 110, 'group': 'TermDebug'}],
|
||||
\ sign_getplaced('', #{group: 'TermDebug'})[0].signs)
|
||||
Continue
|
||||
wincmd t
|
||||
quit!
|
||||
redraw!
|
||||
call assert_equal([], sign_getplaced('', #{group: 'TermDebug'})[0].signs)
|
||||
|
||||
call delete('XTD_basic')
|
||||
%bw!
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
Loading…
Reference in New Issue
Block a user