diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-07-01 13:24:58 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-07-01 13:24:58 +0000 |
commit | 1b306c26ade71504511d2fa75b03dfaee77f9620 (patch) | |
tree | 2c4c77af2ba9632c24ebf216b9a39989d74f5725 /unittests/Utility/StructuredDataTest.cpp | |
parent | fdea456ad833fbab0d3a296a58250950f11a498c (diff) |
Notes
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()); +} |