commit 2167dc2f43915029dc216124beb0debcddd59e4e from: Sergey Bronnikov via: Sergey Bronnikov date: Wed Apr 05 06:50:38 2023 UTC tests: add msgpack test commit - 343103f27f4b93edad554204e0ac8a765f6da0cd commit + 2167dc2f43915029dc216124beb0debcddd59e4e blob - /dev/null blob + 30e6d1e1e38f59482865b7ea1467e6bdd435dea5 (mode 644) --- /dev/null +++ tests/tarantool_msgpack.lua @@ -0,0 +1,46 @@ +--[[ +https://github.com/tarantool/tarantool/issues/5184 +https://github.com/tarantool/tarantool/issues/4724 +https://github.com/tarantool/tarantool/issues/3900 +https://github.com/tarantool/tarantool/issues/5014 "\xd4\x02\x00" +https://github.com/tarantool/tarantool/issues/5016 "\xd4\xfe\x00" +https://github.com/tarantool/tarantool/issues/5017 "\xd4\x0f\x00" +https://github.com/tarantool/tarantool/issues/206 + +https://www.tarantool.io/ru/doc/latest/reference/reference_lua/msgpack/ +]] + +local msgpack = require("msgpack") +local luzer = require("luzer") + +local function TestOneInput(buf) + local ok, res = pcall(msgpack.decode, buf) + if ok == true then + ok, res = pcall(msgpack.encode, res) + if ok == false and + string.find(res, "Too high nest level") then + return -1 + end + assert(ok == true) + assert(res ~= nil) + end +end + +if arg[1] then + local testcase = io.open(arg[1]):read("*all") + TestOneInput(testcase) + os.exit() +end + +local script_path = debug.getinfo(1).source:match("@?(.*/)") + +local args = { + print_pcs = 1, + corpus = script_path .. "tarantool-corpus/msgpack_decode", + dict = script_path .. "tarantool-corpus/msgpack_decode.dict", + max_len = 4096, + artifact_prefix = "msgpack_decode_", + max_total_time = 60, + print_final_stats = 1, +} +luzer.Fuzz(TestOneInput, nil, args)