aboutsummaryrefslogtreecommitdiff
path: root/test/unit/eval/typval_spec.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2017-07-03 23:33:08 +0200
committerGitHub <noreply@github.com>2017-07-03 23:33:08 +0200
commit008b604bacbbeeaf0e04f94b1d331b11ebec631a (patch)
tree45a004c00c61f0bbe84cbf291093b6dffcf0bfb1 /test/unit/eval/typval_spec.lua
parente333957a1a9ae64b7daa36e08fd1df583114d4ba (diff)
parent35898cff5d1d6dc60e0d7b87bfe106539453b031 (diff)
downloadrneovim-008b604bacbbeeaf0e04f94b1d331b11ebec631a.tar.gz
rneovim-008b604bacbbeeaf0e04f94b1d331b11ebec631a.tar.bz2
rneovim-008b604bacbbeeaf0e04f94b1d331b11ebec631a.zip
Merge #6947 from ZyX-I/consistent-get_keymap
Diffstat (limited to 'test/unit/eval/typval_spec.lua')
-rw-r--r--test/unit/eval/typval_spec.lua36
1 files changed, 34 insertions, 2 deletions
diff --git a/test/unit/eval/typval_spec.lua b/test/unit/eval/typval_spec.lua
index 5d543f914f..bec74f05fc 100644
--- a/test/unit/eval/typval_spec.lua
+++ b/test/unit/eval/typval_spec.lua
@@ -1948,8 +1948,8 @@ describe('typval.c', function()
eq(OK, lib.tv_dict_add_str(d, 'testt', 3, 'TEST'))
local dis = dict_items(d)
alloc_log:check({
+ a.str(dis.tes.di_tv.vval.v_string, 'TEST'),
a.di(dis.tes, 'tes'),
- a.str(dis.tes.di_tv.vval.v_string, 'TEST')
})
eq({test=10, tes='TEST'}, dct2tbl(d))
eq(FAIL, check_emsg(function() return lib.tv_dict_add_str(d, 'testt', 3, 'TEST') end,
@@ -1963,6 +1963,38 @@ describe('typval.c', function()
alloc_log:check({})
end)
end)
+ describe('allocated_str()', function()
+ itp('works', function()
+ local d = dict({test=10})
+ eq({test=10}, dct2tbl(d))
+ alloc_log:clear()
+ local s1 = lib.xstrdup('TEST')
+ local s2 = lib.xstrdup('TEST')
+ local s3 = lib.xstrdup('TEST')
+ alloc_log:check({
+ a.str(s1, 'TEST'),
+ a.str(s2, 'TEST'),
+ a.str(s3, 'TEST'),
+ })
+ eq(OK, lib.tv_dict_add_allocated_str(d, 'testt', 3, s1))
+ local dis = dict_items(d)
+ alloc_log:check({
+ a.di(dis.tes, 'tes'),
+ })
+ eq({test=10, tes='TEST'}, dct2tbl(d))
+ eq(FAIL, check_emsg(function() return lib.tv_dict_add_allocated_str(d, 'testt', 3, s2) end,
+ 'E685: Internal error: hash_add()'))
+ alloc_log:clear()
+ lib.emsg_skip = lib.emsg_skip + 1
+ eq(FAIL, check_emsg(function() return lib.tv_dict_add_allocated_str(d, 'testt', 3, s3) end,
+ nil))
+ lib.emsg_skip = lib.emsg_skip - 1
+ alloc_log:clear_tmp_allocs()
+ alloc_log:check({
+ a.freed(s3),
+ })
+ end)
+ end)
end)
describe('clear()', function()
itp('works', function()
@@ -1975,7 +2007,7 @@ describe('typval.c', function()
local dis = dict_items(d)
local di = dis.TES
local di_s = di.di_tv.vval.v_string
- alloc_log:check({a.di(di), a.str(di_s)})
+ alloc_log:check({a.str(di_s), a.di(di)})
eq({TES='tEsT'}, dct2tbl(d))
lib.tv_dict_clear(d)
alloc_log:check({a.freed(di_s), a.freed(di)})