mirror of https://github.com/nlohmann/json.git
✅ add regression test #2824
parent
a563338039
commit
1c030cccf1
|
@ -157,6 +157,26 @@ struct adl_serializer<NonDefaultConstructible>
|
|||
};
|
||||
} // namespace nlohmann
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
// for #2824
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
class sax_no_exception : public nlohmann::detail::json_sax_dom_parser<json>
|
||||
{
|
||||
public:
|
||||
explicit sax_no_exception(json& j) : nlohmann::detail::json_sax_dom_parser<json>(j, false) {}
|
||||
|
||||
static bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex)
|
||||
{
|
||||
error_string = ex.what();
|
||||
return false;
|
||||
}
|
||||
|
||||
static std::string error_string;
|
||||
};
|
||||
|
||||
std::string sax_no_exception::error_string = "";
|
||||
|
||||
|
||||
TEST_CASE("regression tests 2")
|
||||
{
|
||||
|
@ -622,6 +642,15 @@ TEST_CASE("regression tests 2")
|
|||
}
|
||||
}
|
||||
|
||||
SECTION("issue #2824 - encoding of json::exception::what()")
|
||||
{
|
||||
json j;
|
||||
sax_no_exception sax(j);
|
||||
|
||||
CHECK (!json::sax_parse("xyz", &sax));
|
||||
CHECK(sax_no_exception::error_string == "[json.exception.parse_error.101] parse error at line 1, column 1: syntax error while parsing value - invalid literal; last read: 'x'");
|
||||
}
|
||||
|
||||
SECTION("issue #2825 - Properly constrain the basic_json conversion operator")
|
||||
{
|
||||
static_assert(std::is_copy_assignable<nlohmann::ordered_json>::value, "");
|
||||
|
|
Loading…
Reference in New Issue