🚑 fixing fuzzers to work with new exceptions

parent fc9b528e
...@@ -44,23 +44,19 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) ...@@ -44,23 +44,19 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
// deserializations must match // deserializations must match
assert(j1 == j2); assert(j1 == j2);
} }
catch (const std::invalid_argument&) catch (const json::parse_error&)
{ {
// parsing a CBOR serialization must not fail // parsing a CBOR serialization must not fail
assert(false); assert(false);
} }
} }
catch (const std::invalid_argument&) catch (const json::parse_error&)
{ {
// parse errors are ok, because input may be random bytes // parse errors are ok, because input may be random bytes
} }
catch (const std::out_of_range&) catch (const json::type_error&)
{ {
// parse errors are ok, because input may be random bytes // type errors can occur during parsing, too
}
catch (const std::domain_error&)
{
// parse errors are ok, because input may be random bytes
} }
// return 0 - non-zero return values are reserved for future use // return 0 - non-zero return values are reserved for future use
......
...@@ -44,23 +44,19 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) ...@@ -44,23 +44,19 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
// deserializations must match // deserializations must match
assert(j1 == j2); assert(j1 == j2);
} }
catch (const std::invalid_argument&) catch (const json::parse_error&)
{ {
// parsing a MessagePack serialization must not fail // parsing a MessagePack serialization must not fail
assert(false); assert(false);
} }
} }
catch (const std::invalid_argument&) catch (const json::parse_error&)
{ {
// parse errors are ok, because input may be random bytes // parse errors are ok, because input may be random bytes
} }
catch (const std::out_of_range&) catch (const json::type_error&)
{ {
// parse errors are ok, because input may be random bytes // type errors can occur during parsing, too
}
catch (const std::domain_error&)
{
// parse errors are ok, because input may be random bytes
} }
// return 0 - non-zero return values are reserved for future use // return 0 - non-zero return values are reserved for future use
......
...@@ -1358,8 +1358,6 @@ TEST_CASE("CBOR regressions", "[!throws]") ...@@ -1358,8 +1358,6 @@ TEST_CASE("CBOR regressions", "[!throws]")
{ {
// exotic edge case // exotic edge case
CHECK_THROWS_AS(json::check_length(0xffffffffffffffffull, 0xfffffffffffffff0ull, 0xff), json::parse_error); CHECK_THROWS_AS(json::check_length(0xffffffffffffffffull, 0xfffffffffffffff0ull, 0xff), json::parse_error);
CHECK_THROWS_WITH(json::check_length(0xffffffffffffffffull, 0xfffffffffffffff0ull, 0xff),
"[json.exception.parse_error.110] parse error at 256: cannot read 18446744073709551600 bytes from vector");
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment