changeset 20939:b7b074a8d737 v8.2.1021

patch 8.2.1021: Ruby interface not tested enough Commit: https://github.com/vim/vim/commit/a190548e9165bbae75144a3e47f01d7708b29073 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jun 20 16:00:25 2020 +0200 patch 8.2.1021: Ruby interface not tested enough Problem: Ruby interface not tested enough. Solution: Add a couple more tests. (Dominique Pell?, closes https://github.com/vim/vim/issues/6301)
author Bram Moolenaar <Bram@vim.org>
date Sat, 20 Jun 2020 16:15:04 +0200
parents e14681ebc6e3
children 88ce5327f213
files src/testdir/test_ruby.vim src/version.c
diffstat 2 files changed, 23 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_ruby.vim
+++ b/src/testdir/test_ruby.vim
@@ -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
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1021,
+/**/
     1020,
 /**/
     1019,