0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

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: #12927

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
Yegappan Lakshmanan 2023-08-27 11:14:44 +02:00 committed by Christian Brabandt
parent 8fbd9449e7
commit 58f39d89a8
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
3 changed files with 94 additions and 0 deletions

View File

@ -92,6 +92,7 @@ jobs:
if ${{ matrix.features == 'huge' }}; then
PKGS+=( \
autoconf \
gdb \
lcov \
libcanberra-dev \
libperl-dev \

View File

@ -290,6 +290,7 @@ NEW_TESTS = \
test_taglist \
test_tcl \
test_termcodes \
test_termdebug \
test_termencoding \
test_terminal \
test_terminal2 \
@ -523,6 +524,7 @@ NEW_TESTS_RES = \
test_taglist.res \
test_tcl.res \
test_termcodes.res \
test_termdebug.res \
test_termencoding.res \
test_terminal.res \
test_terminal2.res \

View 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 term_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 term_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 term_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