aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-02-28 13:30:08 +0800
committerzeertzjq <zeertzjq@outlook.com>2023-02-28 13:42:04 +0800
commitc554e989786be30fa306efcd7e504ba7cb97cb3b (patch)
treefabcc96fcee95bc2643412ff7d473d2c240235bc /src/nvim/testdir
parentadfa55ba99febaa1eb5ebe1800ec5f94c4b4b664 (diff)
downloadrneovim-c554e989786be30fa306efcd7e504ba7cb97cb3b.tar.gz
rneovim-c554e989786be30fa306efcd7e504ba7cb97cb3b.tar.bz2
rneovim-c554e989786be30fa306efcd7e504ba7cb97cb3b.zip
vim-patch:8.2.2765: Vim9: not all blob operations work
Problem: Vim9: not all blob operations work. Solution: Run more tests also with Vim9 script and :def functions. Fix what doesn't work. https://github.com/vim/vim/commit/0e3ff1919603ee4c4a347fdf761dbdbdeb068015 Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'src/nvim/testdir')
-rw-r--r--src/nvim/testdir/test_blob.vim51
-rw-r--r--src/nvim/testdir/vim9.vim4
2 files changed, 43 insertions, 12 deletions
diff --git a/src/nvim/testdir/test_blob.vim b/src/nvim/testdir/test_blob.vim
index 6c3558e273..86e16b372b 100644
--- a/src/nvim/testdir/test_blob.vim
+++ b/src/nvim/testdir/test_blob.vim
@@ -76,16 +76,47 @@ func Test_blob_assign()
END
call CheckLegacyAndVim9Success(lines)
- " TODO: move to above once it works
- let b = 0zDEADBEEF
- call assert_fails('let b[2 : 3] = 0z112233', 'E972:')
- call assert_fails('let b[2 : 3] = 0z11', 'E972:')
- call assert_fails('let b[3 : 2] = 0z', 'E979:')
-
- call assert_fails('let b ..= 0z33', 'E734:')
- call assert_fails('let b ..= "xx"', 'E734:')
- call assert_fails('let b += "xx"', 'E734:')
- call assert_fails('let b[1 : 1] ..= 0z55', 'E734:')
+ let lines =<< trim END
+ VAR b = 0zDEADBEEF
+ LET b[2 : 3] = 0z112233
+ END
+ call CheckLegacyAndVim9Failure(lines, 'E972:')
+
+ let lines =<< trim END
+ VAR b = 0zDEADBEEF
+ LET b[2 : 3] = 0z11
+ END
+ call CheckLegacyAndVim9Failure(lines, 'E972:')
+
+ let lines =<< trim END
+ VAR b = 0zDEADBEEF
+ LET b[3 : 2] = 0z
+ END
+ call CheckLegacyAndVim9Failure(lines, 'E979:')
+
+ let lines =<< trim END
+ VAR b = 0zDEADBEEF
+ LET b ..= 0z33
+ END
+ call CheckLegacyAndVim9Failure(lines, ['E734:', 'E1019:', 'E734:'])
+
+ let lines =<< trim END
+ VAR b = 0zDEADBEEF
+ LET b ..= "xx"
+ END
+ call CheckLegacyAndVim9Failure(lines, ['E734:', 'E1019:', 'E734:'])
+
+ let lines =<< trim END
+ VAR b = 0zDEADBEEF
+ LET b += "xx"
+ END
+ call CheckLegacyAndVim9Failure(lines, ['E734:', 'E1012:', 'E734:'])
+
+ let lines =<< trim END
+ VAR b = 0zDEADBEEF
+ LET b[1 : 1] ..= 0z55
+ END
+ call CheckLegacyAndVim9Failure(lines, ['E734:', 'E1183:', 'E734:'])
endfunc
func Test_blob_get_range()
diff --git a/src/nvim/testdir/vim9.vim b/src/nvim/testdir/vim9.vim
index 3c0ff2b2dd..e1343d51f1 100644
--- a/src/nvim/testdir/vim9.vim
+++ b/src/nvim/testdir/vim9.vim
@@ -98,9 +98,9 @@ endfunc
" Use ' #"' for a comment
func CheckLegacyAndVim9Failure(lines, error)
if type(a:error) == type('string')
- let legacyError = error
+ let legacyError = a:error
else
- let legacyError = error[0]
+ let legacyError = a:error[0]
endif
let legacylines = a:lines->deepcopy()->map({_, v ->