* ✅ add regression test for #3810 Signed-off-by: Niels Lohmann <mail@nlohmann.me> * ✅ add regression test for #3810 Signed-off-by: Niels Lohmann <mail@nlohmann.me> * ✅ add regression test for #3810 Signed-off-by: Niels Lohmann <mail@nlohmann.me> * ✅ add regression test for #3810 Signed-off-by: Niels Lohmann <mail@nlohmann.me> * ✅ add regression test for #3810 Signed-off-by: Niels Lohmann <mail@nlohmann.me> --------- Signed-off-by: Niels Lohmann <mail@nlohmann.me>
This commit is contained in:
parent
a43350c4e5
commit
0b6881a95f
@ -377,6 +377,19 @@ inline for_3333::for_3333(const json& j)
|
|||||||
: for_3333(j.value("x", 0), j.value("y", 0))
|
: for_3333(j.value("x", 0), j.value("y", 0))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
// for #3810
|
||||||
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
struct Example_3810
|
||||||
|
{
|
||||||
|
int bla{};
|
||||||
|
|
||||||
|
Example_3810() = default;
|
||||||
|
};
|
||||||
|
|
||||||
|
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Example_3810, bla);
|
||||||
|
|
||||||
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")
|
||||||
@ -1004,6 +1017,26 @@ TEST_CASE("regression tests 2")
|
|||||||
CHECK(p.x == 1);
|
CHECK(p.x == 1);
|
||||||
CHECK(p.y == 2);
|
CHECK(p.y == 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("issue #3810 - ordered_json doesn't support construction from C array of custom type")
|
||||||
|
{
|
||||||
|
Example_3810 states[45]; // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)
|
||||||
|
|
||||||
|
// fix "not used" warning
|
||||||
|
states[0].bla = 1;
|
||||||
|
|
||||||
|
const auto* const expected = R"([{"bla":1},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0},{"bla":0}])";
|
||||||
|
|
||||||
|
// This works:
|
||||||
|
nlohmann::json j;
|
||||||
|
j["test"] = states;
|
||||||
|
CHECK(j["test"].dump() == expected);
|
||||||
|
|
||||||
|
// This doesn't compile:
|
||||||
|
nlohmann::ordered_json oj;
|
||||||
|
oj["test"] = states;
|
||||||
|
CHECK(oj["test"].dump() == expected);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DOCTEST_CLANG_SUPPRESS_WARNING_POP
|
DOCTEST_CLANG_SUPPRESS_WARNING_POP
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user