1
0
forked from aniani/vim

patch 8.2.1021: Ruby interface not tested enough

Problem:    Ruby interface not tested enough.
Solution:   Add a couple more tests. (Dominique Pellé, closes #6301)
This commit is contained in:
Bram Moolenaar 2020-06-20 16:00:25 +02:00
parent b326edf5b3
commit a190548e91
2 changed files with 23 additions and 0 deletions

View File

@ -26,6 +26,18 @@ func Test_rubydo()
%bwipe!
endfunc
func Test_rubydo_dollar_underscore()
new
call setline(1, ['one', 'two', 'three', 'four'])
2,3rubydo $_ = '[' + $_ + ']'
call assert_equal(['one', '[two]', '[three]', 'four'], getline(1, '$'))
bwipe!
call assert_fails('rubydo $_ = 0', 'E265:')
call assert_fails('rubydo (')
bwipe!
endfunc
func Test_rubyfile()
" Check :rubyfile does not SEGV with Ruby level exception but just fails
let tempfile = tempname() . '.rb'
@ -395,6 +407,15 @@ func Test_ruby_p()
call assert_equal(0, len(messages))
endfunc
func Test_rubyeval_error()
" On Linux or Windows the error matches:
" "syntax error, unexpected end-of-input"
" whereas on macOS in CI, the error message makes less sense:
" "SyntaxError: array length must be 2"
" Unclear why. The test does not check the error message.
call assert_fails('call rubyeval("(")')
endfunc
" Test for various heredoc syntax
func Test_ruby_heredoc()
ruby << END

View File

@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1021,
/**/
1020,
/**/