aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/testdir/runtest.vim1
-rw-r--r--src/nvim/testdir/shared.vim22
-rw-r--r--src/nvim/testdir/test_popup.vim6
-rw-r--r--src/nvim/testdir/test_syntax.vim35
4 files changed, 57 insertions, 7 deletions
diff --git a/src/nvim/testdir/runtest.vim b/src/nvim/testdir/runtest.vim
index c8161b1f9b..e0c40181e4 100644
--- a/src/nvim/testdir/runtest.vim
+++ b/src/nvim/testdir/runtest.vim
@@ -269,7 +269,6 @@ let s:flaky_tests = [
\ 'Test_oneshot()',
\ 'Test_out_cb()',
\ 'Test_paused()',
- \ 'Test_popup_and_window_resize()',
\ 'Test_quoteplus()',
\ 'Test_quotestar()',
\ 'Test_reltime()',
diff --git a/src/nvim/testdir/shared.vim b/src/nvim/testdir/shared.vim
index 6cc2d06a36..ab0a4fd706 100644
--- a/src/nvim/testdir/shared.vim
+++ b/src/nvim/testdir/shared.vim
@@ -196,16 +196,26 @@ func s:feedkeys(timer)
call feedkeys('x', 'nt')
endfunc
+" Get $VIMPROG to run Vim executable.
+" The Makefile writes it as the first line in the "vimcmd" file.
+" Nvim: uses $NVIM_TEST_ARG0.
+func GetVimProg()
+ if empty($NVIM_TEST_ARG0)
+ " Assume the script was sourced instead of running "make".
+ return '../../../build/bin/nvim'
+ endif
+ return $NVIM_TEST_ARG0
+endfunc
+
" Get the command to run Vim, with -u NONE and --headless arguments.
" If there is an argument use it instead of "NONE".
-" Returns an empty string on error.
func GetVimCommand(...)
if a:0 == 0
let name = 'NONE'
else
let name = a:1
endif
- let cmd = v:progpath
+ let cmd = GetVimProg()
let cmd = substitute(cmd, '-u \f\+', '-u ' . name, '')
if cmd !~ '-u '. name
let cmd = cmd . ' -u ' . name
@@ -215,6 +225,14 @@ func GetVimCommand(...)
return cmd
endfunc
+" Get the command to run Vim, with --clean.
+func GetVimCommandClean()
+ let cmd = GetVimCommand()
+ let cmd = substitute(cmd, '-u NONE', '--clean', '')
+ let cmd = substitute(cmd, '--headless', '', '')
+ return cmd
+endfunc
+
" Run Vim, using the "vimcmd" file and "-u NORC".
" "before" is a list of Vim commands to be executed before loading plugins.
" "after" is a list of Vim commands to be executed after loading plugins.
diff --git a/src/nvim/testdir/test_popup.vim b/src/nvim/testdir/test_popup.vim
index 7d844e055c..0027a0a52e 100644
--- a/src/nvim/testdir/test_popup.vim
+++ b/src/nvim/testdir/test_popup.vim
@@ -669,10 +669,10 @@ func Test_popup_and_window_resize()
if h < 15
return
endif
- let g:buf = term_start([$NVIM_PRG, '--clean', '-c', 'set noswapfile'], {'term_rows': h / 3})
- call term_sendkeys(g:buf, (h / 3 - 1)."o\<esc>G")
- call term_sendkeys(g:buf, "i\<c-x>")
+ let g:buf = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile'], {'term_rows': h / 3})
+ call term_sendkeys(g:buf, (h / 3 - 1)."o\<esc>")
call term_wait(g:buf, 200)
+ call term_sendkeys(g:buf, "Gi\<c-x>")
call term_sendkeys(g:buf, "\<c-v>")
call term_wait(g:buf, 100)
" popup first entry "!" must be at the top
diff --git a/src/nvim/testdir/test_syntax.vim b/src/nvim/testdir/test_syntax.vim
index a3de879b2a..f75c295a1e 100644
--- a/src/nvim/testdir/test_syntax.vim
+++ b/src/nvim/testdir/test_syntax.vim
@@ -470,7 +470,7 @@ func Test_bg_detection()
hi Normal ctermbg=NONE
endfunc
-fun Test_synstack_synIDtrans()
+func Test_synstack_synIDtrans()
new
setfiletype c
syntax on
@@ -494,6 +494,39 @@ fun Test_synstack_synIDtrans()
bw!
endfunc
+" Check highlighting for a small piece of C code with a screen dump.
+func Test_syntax_c()
+ if !has('terminal')
+ return
+ endif
+ call writefile([
+ \ '/* comment line at the top */',
+ \ ' int',
+ \ 'main(int argc, char **argv)// another comment',
+ \ '{',
+ \ '#if 0',
+ \ ' int not_used;',
+ \ '#else',
+ \ ' int used;',
+ \ '#endif',
+ \ ' printf("Just an example piece of C code\n");',
+ \ ' return 0x0ff;',
+ \ '}',
+ \ ' static void',
+ \ 'myFunction(const double count, struct nothing, long there) {',
+ \ ' // 123: nothing to read here',
+ \ ' for (int i = 0; i < count; ++i) {',
+ \ ' break;',
+ \ ' }',
+ \ '}',
+ \ ], 'Xtest.c')
+ let buf = RunVimInTerminal('Xtest.c', {})
+ call VerifyScreenDump(buf, 'Test_syntax_c_01')
+ call StopVimInTerminal(buf)
+
+ call delete('Xtest.c')
+endfun
+
" Using \z() in a region with NFA failing should not crash.
func Test_syn_wrong_z_one()
new