forked from aniani/vim
patch 8.1.1043: Lua interface does not support Blob
Problem: Lua interface does not support Blob. Solution: Add support to Blob. (Ozaki Kiichi, closes #4151)
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user