aboutsummaryrefslogtreecommitdiff
path: root/test/functional/shada/errors_spec.lua
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2015-08-04 08:19:01 +0300
committerZyX <kp-pav@yandex.ru>2015-10-08 22:00:22 +0300
commit2244db67aa0dc1100dc5814c2bf070d76cf5f313 (patch)
tree3f7ca47d76aeac1d2c5e5b05eecebc0f90d98aeb /test/functional/shada/errors_spec.lua
parent5b3e668f3e03e6b0142be5afdc72cb6dadd58498 (diff)
downloadrneovim-2244db67aa0dc1100dc5814c2bf070d76cf5f313.tar.gz
rneovim-2244db67aa0dc1100dc5814c2bf070d76cf5f313.tar.bz2
rneovim-2244db67aa0dc1100dc5814c2bf070d76cf5f313.zip
shada: Do not allow empty keys
Diffstat (limited to 'test/functional/shada/errors_spec.lua')
-rw-r--r--test/functional/shada/errors_spec.lua18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/functional/shada/errors_spec.lua b/test/functional/shada/errors_spec.lua
index 4ae7847cc7..e3a1dcdbb9 100644
--- a/test/functional/shada/errors_spec.lua
+++ b/test/functional/shada/errors_spec.lua
@@ -124,6 +124,12 @@ describe('ShaDa error handling', function()
eq('Vim(rshada):E575: Error while reading ShaDa file: search pattern entry at position 0 has key which is not a string', exc_exec(sdrcmd()))
end)
+ -- sp entry is here because it causes an allocation.
+ it('fails on search pattern item with empty key', function()
+ wshada('\002\000\013\131\162sp\196\001a\162sX\192\160\000')
+ eq('Vim(rshada):E575: Error while reading ShaDa file: search pattern entry at position 0 has empty key', exc_exec(sdrcmd()))
+ end)
+
it('fails on search pattern item with NIL magic key value', function()
wshada('\002\000\009\130\162sX\192\162sm\192')
eq('Vim(rshada):E575: Error while reading ShaDa file: search pattern entry at position 0 has sm key value which is not a boolean', exc_exec(sdrcmd()))
@@ -192,6 +198,12 @@ describe('ShaDa error handling', function()
eq('Vim(rshada):E575: Error while reading ShaDa file: mark entry at position 0 has key which is not a string', exc_exec(sdrcmd()))
end)
+ -- f entry is here because it causes an allocation.
+ it('fails on ' .. v.name .. ' item with empty key', function()
+ wshada(v.mpack .. '\000\012\131\161f\196\001/\162mX\192\160\000')
+ eq('Vim(rshada):E575: Error while reading ShaDa file: mark entry at position 0 has empty key', exc_exec(sdrcmd()))
+ end)
+
it('fails on ' .. v.name .. ' item without f key', function()
wshada(v.mpack .. '\000\008\130\162mX\192\161l\001')
eq('Vim(rshada):E575: Error while reading ShaDa file: mark entry at position 0 is missing file name', exc_exec(sdrcmd()))
@@ -244,6 +256,12 @@ describe('ShaDa error handling', function()
eq('Vim(rshada):E575: Error while reading ShaDa file: register entry at position 0 has key which is not a string', exc_exec(sdrcmd()))
end)
+ -- rc entry is here because it causes an allocation
+ it('fails on register item with BIN key', function()
+ wshada('\005\000\014\131\162rc\145\196\001a\162rX\192\160\000')
+ eq('Vim(rshada):E575: Error while reading ShaDa file: register entry at position 0 has empty key', exc_exec(sdrcmd()))
+ end)
+
it('fails on register item with NIL rt key value', function()
wshada('\005\000\009\130\162rX\192\162rt\192')
eq('Vim(rshada):E575: Error while reading ShaDa file: register entry at position 0 has rt key value which is not an unsigned integer', exc_exec(sdrcmd()))