add regression test #2824

parent 1c030ccc
...@@ -166,16 +166,16 @@ class sax_no_exception : public nlohmann::detail::json_sax_dom_parser<json> ...@@ -166,16 +166,16 @@ class sax_no_exception : public nlohmann::detail::json_sax_dom_parser<json>
public: public:
explicit sax_no_exception(json& j) : nlohmann::detail::json_sax_dom_parser<json>(j, false) {} 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) static bool parse_error(std::size_t /*position*/, const std::string& /*last_token*/, const json::exception& ex)
{ {
error_string = ex.what(); error_string = new std::string(ex.what());
return false; return false;
} }
static std::string error_string; static std::string* error_string;
}; };
std::string sax_no_exception::error_string = ""; std::string* sax_no_exception::error_string = nullptr;
TEST_CASE("regression tests 2") TEST_CASE("regression tests 2")
...@@ -648,7 +648,8 @@ TEST_CASE("regression tests 2") ...@@ -648,7 +648,8 @@ TEST_CASE("regression tests 2")
sax_no_exception sax(j); sax_no_exception sax(j);
CHECK (!json::sax_parse("xyz", &sax)); 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'"); 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'");
delete sax_no_exception::error_string;
} }
SECTION("issue #2825 - Properly constrain the basic_json conversion operator") SECTION("issue #2825 - Properly constrain the basic_json conversion operator")
......
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