/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
library/cpp/yson/node/node_io_ut.cpp
53 строки
1 KB
ionagamed
library/yson: Add NodeFromJsonStringIterative
06 дек 2023, 12:19
06 дек 2023, 12:19
4fbc565
Код
Авторство
О чём код?
#include "node_io.h" #include <library/cpp/testing/unittest/registar.h> #include <util/stream/mem.h> using namespace NYson; namespace { void GenerateDeepJson(TStringStream& stream, ui64 depth) { stream << "{\"key\":"; for (ui32 i = 0; i < depth - 1; ++i) { stream << "["; } for (ui32 i = 0; i < depth - 1; ++i) { stream << "]"; } stream << "}"; } } Y_UNIT_TEST_SUITE(TestNodeFromJsonStringIterativeTest) { Y_UNIT_TEST(NoCrashOn1e5Brackets) { constexpr ui32 brackets = static_cast<ui32>(1e5); TStringStream jsonStream; GenerateDeepJson(jsonStream, brackets); UNIT_ASSERT_EXCEPTION( NYT::NodeFromJsonStringIterative(jsonStream.Str()), std::exception); } Y_UNIT_TEST(NoCrashOn1025Brackets) { constexpr ui32 brackets = 1025; TStringStream jsonStream; GenerateDeepJson(jsonStream, brackets); UNIT_ASSERT_EXCEPTION( NYT::NodeFromJsonStringIterative(jsonStream.Str()), std::exception); } Y_UNIT_TEST(NoErrorOn1024Brackets) { constexpr ui32 brackets = 1024; TStringStream jsonStream; GenerateDeepJson(jsonStream, brackets); UNIT_ASSERT_NO_EXCEPTION(NYT::NodeFromJsonStringIterative(jsonStream.Str())); } }