//===-- 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 "TestingSupport/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 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()); }