diff options
author | Alexander Smirnov <alex@ydb.tech> | 2024-07-08 15:54:05 +0000 |
---|---|---|
committer | Alexander Smirnov <alex@ydb.tech> | 2024-07-08 15:54:05 +0000 |
commit | fc7be18c76af2e700641f3598c4856baeef1428e (patch) | |
tree | 11dbca45eb321c3a4dd08b12152acc6ef5dd3fa9 /library/cpp/json/ut/json_reader_ut.cpp | |
parent | ec0e7ed6da6fb317741fd8468602949a1362eca5 (diff) | |
parent | c92cb9d3a19331916f0c274d80e67f02a62caa9b (diff) | |
download | ydb-fc7be18c76af2e700641f3598c4856baeef1428e.tar.gz |
Merge branch 'rightlib' into mergelibs-240708-1553
Diffstat (limited to 'library/cpp/json/ut/json_reader_ut.cpp')
-rw-r--r-- | library/cpp/json/ut/json_reader_ut.cpp | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/library/cpp/json/ut/json_reader_ut.cpp b/library/cpp/json/ut/json_reader_ut.cpp index 115c85e1c7..07de6a7ac3 100644 --- a/library/cpp/json/ut/json_reader_ut.cpp +++ b/library/cpp/json/ut/json_reader_ut.cpp @@ -66,7 +66,7 @@ public: } }; -void GenerateDeepJson(TStringStream& stream, ui64 depth) { +void GenerateDeepJsonArray(TStringStream& stream, ui64 depth) { stream << "{\"key\":"; for (ui32 i = 0; i < depth - 1; ++i) { stream << "["; @@ -77,6 +77,16 @@ void GenerateDeepJson(TStringStream& stream, ui64 depth) { stream << "}"; } +void GenerateDeepJsonDict(TStringStream& stream, ui64 depth) { + for (ui64 i = 0; i < depth - 1; ++i) { + stream << "{\"key\":"; + } + stream << "{}"; + for (ui64 i = 0; i < depth - 1; ++i) { + stream << "}"; + } +} + Y_UNIT_TEST_SUITE(TJsonReaderTest) { Y_UNIT_TEST(JsonReformatTest) { TString data = "{\"null value\": null, \"intkey\": 10, \"double key\": 11.11, \"string key\": \"string\", \"array\": [1,2,3,\"TString\"], \"bool key\": true}"; @@ -414,7 +424,7 @@ Y_UNIT_TEST_SUITE(TJsonReaderTest) { constexpr ui32 brackets = static_cast<ui32>(1e5); TStringStream jsonStream; - GenerateDeepJson(jsonStream, brackets); + GenerateDeepJsonArray(jsonStream, brackets); TJsonReaderConfig config; config.UseIterativeParser = true; @@ -429,7 +439,25 @@ Y_UNIT_TEST_SUITE(TJsonReaderTest) { { TStringStream jsonStream; - GenerateDeepJson(jsonStream, depth); + GenerateDeepJsonArray(jsonStream, depth); + TJsonReaderConfig config; + config.MaxDepth = depth; + TJsonValue v; + UNIT_ASSERT(ReadJsonTree(&jsonStream, &config, &v)); + } + + { + TStringStream jsonStream; + GenerateDeepJsonArray(jsonStream, depth); + TJsonReaderConfig config; + config.MaxDepth = depth - 1; + TJsonValue v; + UNIT_ASSERT(!ReadJsonTree(&jsonStream, &config, &v)); + } + + { + TStringStream jsonStream; + GenerateDeepJsonDict(jsonStream, depth); TJsonReaderConfig config; config.MaxDepth = depth; TJsonValue v; @@ -438,7 +466,7 @@ Y_UNIT_TEST_SUITE(TJsonReaderTest) { { TStringStream jsonStream; - GenerateDeepJson(jsonStream, depth); + GenerateDeepJsonDict(jsonStream, depth); TJsonReaderConfig config; config.MaxDepth = depth - 1; TJsonValue v; |