✅ add regression test for #3215
This commit is contained in:
parent
825d3230d1
commit
21a554f219
@ -227,6 +227,16 @@ inline void from_json(const nlohmann::json& j, FooBar& fb)
|
|||||||
j.at("value").get_to(fb.foo.value);
|
j.at("value").get_to(fb.foo.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
// for #3215
|
||||||
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
std::string f_3215()
|
||||||
|
{
|
||||||
|
throw std::runtime_error("12");
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE("regression tests 2")
|
TEST_CASE("regression tests 2")
|
||||||
{
|
{
|
||||||
SECTION("issue #1001 - Fix memory leak during parser callback")
|
SECTION("issue #1001 - Fix memory leak during parser callback")
|
||||||
@ -763,6 +773,27 @@ TEST_CASE("regression tests 2")
|
|||||||
|
|
||||||
CHECK(j.dump() == "[1,4]");
|
CHECK(j.dump() == "[1,4]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("issue #3215 - Exception thrown during initialization causes a memory leak")
|
||||||
|
{
|
||||||
|
std::string s;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// std::map<std::string, std::string> j // no leak
|
||||||
|
nlohmann::json j // leak
|
||||||
|
{
|
||||||
|
{"smth", f_3215()}, // exception thrown here
|
||||||
|
{"smth", "smth"}
|
||||||
|
};
|
||||||
|
s = "initialized";
|
||||||
|
}
|
||||||
|
catch (std::runtime_error& e)
|
||||||
|
{
|
||||||
|
s = e.what();
|
||||||
|
}
|
||||||
|
|
||||||
|
CHECK(s == "12");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DOCTEST_CLANG_SUPPRESS_WARNING_POP
|
DOCTEST_CLANG_SUPPRESS_WARNING_POP
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user