diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-03-23 13:57:02 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-03-23 13:57:02 +0100 |
commit | b78286903300477bb8578a47b8170b4551e290c8 (patch) | |
tree | ded333d2ac3cfe663a8e44e9aa425bf75d0163e4 /src/testdir/test_lua.vim | |
parent | 832615be12bdb5d60b2850e2025592dc67217f37 (diff) | |
download | vim-git-b78286903300477bb8578a47b8170b4551e290c8.tar.gz |
patch 8.1.1043: Lua interface does not support Blobv8.1.1043
Problem: Lua interface does not support Blob.
Solution: Add support to Blob. (Ozaki Kiichi, closes #4151)
Diffstat (limited to 'src/testdir/test_lua.vim')
-rw-r--r-- | src/testdir/test_lua.vim | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/testdir/test_lua.vim b/src/testdir/test_lua.vim index ec28183b1..604cfedd3 100644 --- a/src/testdir/test_lua.vim +++ b/src/testdir/test_lua.vim @@ -50,6 +50,11 @@ func Test_eval() call assert_equal('dict', luaeval('vim.type(v)')) call assert_equal({'a':'b'}, luaeval('v')) + " lua.eval with a blob + lua v = vim.eval("0z00112233.deadbeef") + call assert_equal('blob', luaeval('vim.type(v)')) + call assert_equal(0z00112233.deadbeef, luaeval('v')) + call assert_fails('lua v = vim.eval(nil)', \ "[string \"vim chunk\"]:1: bad argument #1 to 'eval' (string expected, got nil)") call assert_fails('lua v = vim.eval(true)', @@ -428,6 +433,30 @@ func Test_dict_iter() lua str, d = nil endfunc +func Test_blob() + call assert_equal(0z, luaeval('vim.blob("")')) + call assert_equal(0z31326162, luaeval('vim.blob("12ab")')) + call assert_equal(0z00010203, luaeval('vim.blob("\x00\x01\x02\x03")')) + call assert_equal(0z8081FEFF, luaeval('vim.blob("\x80\x81\xfe\xff")')) + + lua b = vim.blob("\x00\x00\x00\x00") + call assert_equal(0z00000000, luaeval('b')) + call assert_equal(4.0, luaeval('#b')) + lua b[0], b[1], b[2], b[3] = 1, 32, 256, 0xff + call assert_equal(0z012000ff, luaeval('b')) + lua b[4] = string.byte("z", 1) + call assert_equal(0z012000ff.7a, luaeval('b')) + call assert_equal(5.0, luaeval('#b')) + call assert_fails('lua b[#b+1] = 0x80', '[string "vim chunk"]:1: index out of range') + lua b:add("12ab") + call assert_equal(0z012000ff.7a313261.62, luaeval('b')) + call assert_equal(9.0, luaeval('#b')) + call assert_fails('lua b:add(nil)', '[string "vim chunk"]:1: string expected, got nil') + call assert_fails('lua b:add(true)', '[string "vim chunk"]:1: string expected, got boolean') + call assert_fails('lua b:add({})', '[string "vim chunk"]:1: string expected, got table') + lua b = nil +endfunc + func Test_funcref() function I(x) return a:x |