1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-22 15:39:03 +00:00

Fix broken JSON unit tests. Closes #2222

This commit is contained in:
nnposter
2021-01-08 04:14:21 +00:00
parent 67cccec38d
commit 2f78ac2eb5

View File

@@ -330,8 +330,16 @@ local TESTS = {
test = function(o) return not next(o) end test = function(o) return not next(o) end
}, },
{'', valid=false}, {'', valid=false},
{'null', valid=false}, -- error {
{'"abc"', valid=false}, -- error 'null',
generates = 'null',
is = "null"
},
{
'"abc"',
generates = '"abc"',
is = "string",
},
{'{a":1}', valid=false}, -- error {'{a":1}', valid=false}, -- error
{'{"a" bad :1}', valid=false}, -- error {'{"a" bad :1}', valid=false}, -- error
{ {
@@ -353,12 +361,12 @@ local TESTS = {
}, },
{ {
'[5e3]', '[5e3]',
generates = '[5000]', generates = '[5000.0]',
is = "array", is = "array",
}, },
{ {
'[5e+3]', '[5e+3]',
generates = '[5000]', generates = '[5000.0]',
is = "array", is = "array",
}, },
{ {
@@ -368,7 +376,7 @@ local TESTS = {
}, },
{ {
'[5.5e3]', '[5.5e3]',
generates = '[5500]', generates = '[5500.0]',
is = "array", is = "array",
}, },
{ {
@@ -388,12 +396,23 @@ local TESTS = {
generates = '["A"]', generates = '["A"]',
is = "array", is = "array",
}, -- Should become Lua {"A"} }, -- Should become Lua {"A"}
{'["\\uD800"]', valid=false}, -- error {
'["\\uD800"]',
valid=false,
test = function(s)
return s:find("Bad unicode escape.*missing low surrogate") ~= nil
end
}, -- error
{ {
'["\\uD834\\uDD1EX"]', '["\\uD834\\uDD1EX"]',
generates = '["\240\157\132\158X"]', generates = '["\240\157\132\158X"]',
is = "array", is = "array",
}, -- Should become Lua {"\240\157\132\158X"} }, -- Should become Lua {"\240\157\132\158X"}
{
'1684119503',
generate = '1684119503',
is = "number"
}
} }
test_suite = unittest.TestSuite:new() test_suite = unittest.TestSuite:new()
@@ -406,8 +425,9 @@ for _, test in ipairs(TESTS) do
local status, val = parse(test[1]) local status, val = parse(test[1])
if test.valid == false then if test.valid == false then
test_suite:add_test(is_false(status), "Syntax error status is false") test_suite:add_test(is_false(status), "Syntax error status is false")
if not test.test then
test_suite:add_test(equal(val, "syntax error"), "Syntax error") test_suite:add_test(equal(val, "syntax error"), "Syntax error")
break end
end end
if test.generates then if test.generates then
test_suite:add_test(equal(generate(val), test.generates), "Generate") test_suite:add_test(equal(generate(val), test.generates), "Generate")