diff options
Diffstat (limited to 'unittests/Utility/StructuredDataTest.cpp')
-rw-r--r-- | unittests/Utility/StructuredDataTest.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/unittests/Utility/StructuredDataTest.cpp b/unittests/Utility/StructuredDataTest.cpp new file mode 100644 index 000000000000..f346dd9e8322 --- /dev/null +++ b/unittests/Utility/StructuredDataTest.cpp @@ -0,0 +1,48 @@ +//===-- StructuredDataTest.cpp ----------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "gtest/gtest.h" + +#include "Helpers/TestUtilities.h" +#include "lldb/Utility/Status.h" +#include "lldb/Utility/StreamString.h" +#include "lldb/Utility/StructuredData.h" +#include "llvm/Support/Path.h" + +using namespace lldb; +using namespace lldb_private; + +TEST(StructuredDataTest, StringDump) { + std::pair<llvm::StringRef, llvm::StringRef> TestCases[] = { + {R"(asdfg)", R"("asdfg")"}, + {R"(as"df)", R"("as\"df")"}, + {R"(as\df)", R"("as\\df")"}, + }; + for (auto P : TestCases) { + StreamString S; + const bool pretty_print = false; + StructuredData::String(P.first).Dump(S, pretty_print); + EXPECT_EQ(P.second, S.GetString()); + } +} + +TEST(StructuredDataTest, ParseJSONFromFile) { + Status status; + auto object_sp = StructuredData::ParseJSONFromFile( + FileSpec("non-existing-file.json", false), status); + EXPECT_EQ(nullptr, object_sp); + + std::string input = GetInputFilePath("StructuredData-basic.json"); + object_sp = StructuredData::ParseJSONFromFile(FileSpec(input, false), status); + ASSERT_NE(nullptr, object_sp); + + StreamString S; + object_sp->Dump(S, false); + EXPECT_EQ("[1,2,3]", S.GetString()); +} |