aboutsummaryrefslogtreecommitdiff
path: root/test/unit
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-10-16 00:07:32 +0300
committerZyX <kp-pav@yandex.ru>2017-10-16 00:07:32 +0300
commit1a3635304b80b48625bcd9d48f4f38778b42e4af (patch)
treec20a21c26e04c5ac615414760efc8bd0d49ee691 /test/unit
parent2cb95bd9378d3c45f2eea527683546825e16f7d3 (diff)
downloadrneovim-1a3635304b80b48625bcd9d48f4f38778b42e4af.tar.gz
rneovim-1a3635304b80b48625bcd9d48f4f38778b42e4af.tar.bz2
rneovim-1a3635304b80b48625bcd9d48f4f38778b42e4af.zip
charset: Avoid overflow in vim_str2nr
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/viml/expressions/lexer_spec.lua3
-rw-r--r--test/unit/viml/expressions/parser_spec.lua10
2 files changed, 11 insertions, 2 deletions
diff --git a/test/unit/viml/expressions/lexer_spec.lua b/test/unit/viml/expressions/lexer_spec.lua
index 674b1b37db..5910468017 100644
--- a/test/unit/viml/expressions/lexer_spec.lua
+++ b/test/unit/viml/expressions/lexer_spec.lua
@@ -292,6 +292,9 @@ describe('Expressions lexer', function()
simple_test({'0b102'}, 'Number', 4, {data={is_float=false, base=2, val=2}, str='0b10'})
simple_test({'10F'}, 'Number', 2, {data={is_float=false, base=10, val=10}, str='10'})
simple_test({'0x0123456789ABCDEFG'}, 'Number', 18, {data={is_float=false, base=16, val=81985529216486895}, str='0x0123456789ABCDEF'})
+ simple_test({{data='00', size=2}}, 'Number', 2, {data={is_float=false, base=8, val=0}, str='00'})
+ simple_test({{data='009', size=2}}, 'Number', 2, {data={is_float=false, base=8, val=0}, str='00'})
+ simple_test({{data='01', size=1}}, 'Number', 1, {data={is_float=false, base=10, val=0}, str='0'})
end
local function regular_scope_tests()
diff --git a/test/unit/viml/expressions/parser_spec.lua b/test/unit/viml/expressions/parser_spec.lua
index 22263af8e2..36af875bd2 100644
--- a/test/unit/viml/expressions/parser_spec.lua
+++ b/test/unit/viml/expressions/parser_spec.lua
@@ -6867,13 +6867,19 @@ describe('Expressions parser', function()
},
}, {
})
- check_parsing('0', 0, {
- -- 0
+ check_parsing({data='01', size=1}, 0, {
ast = {
'Integer(val=0):0:0:0',
},
}, {
hl('Number', '0'),
})
+ check_parsing({data='001', size=2}, 0, {
+ ast = {
+ 'Integer(val=0):0:0:00',
+ },
+ }, {
+ hl('Number', '00'),
+ })
end)
end)