2022-07-20 13:38:07 +03:00
|
|
|
// __ _____ _____ _____
|
|
|
|
|
// __| | __| | | | JSON for Modern C++ (supporting code)
|
2022-08-12 16:04:06 +03:00
|
|
|
// | | |__ | | | | | | version 3.11.2
|
2022-07-20 13:38:07 +03:00
|
|
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|
|
|
|
//
|
2023-11-26 17:51:19 +03:00
|
|
|
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
2022-07-20 13:38:07 +03:00
|
|
|
// SPDX-License-Identifier: MIT
|
2019-11-09 21:12:39 +03:00
|
|
|
|
|
|
|
|
#include "doctest_compatibility.h"
|
|
|
|
|
|
|
|
|
|
#include <nlohmann/json.hpp>
|
|
|
|
|
using nlohmann::json;
|
|
|
|
|
|
|
|
|
|
#include <algorithm>
|
|
|
|
|
|
|
|
|
|
TEST_CASE("tests on very large JSONs")
|
|
|
|
|
{
|
|
|
|
|
SECTION("issue #1419 - Segmentation fault (stack overflow) due to unbounded recursion")
|
|
|
|
|
{
|
|
|
|
|
const auto depth = 5000000;
|
|
|
|
|
|
2021-10-29 22:27:34 +03:00
|
|
|
std::string s(static_cast<std::size_t>(2 * depth), '[');
|
2019-11-09 21:12:39 +03:00
|
|
|
std::fill(s.begin() + depth, s.end(), ']');
|
|
|
|
|
|
2019-12-16 11:52:41 +03:00
|
|
|
json _;
|
|
|
|
|
CHECK_NOTHROW(_ = nlohmann::json::parse(s));
|
2019-11-09 21:12:39 +03:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|