diff options
author | Sam McCall <sam.mccall@gmail.com> | 2019-11-11 18:25:01 +0100 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2019-11-11 18:25:28 +0100 |
commit | 4162875c3b2a2326c8f40b6cba98308d819f4d49 (patch) | |
tree | 310175a17665a6f77e75115475b75f867707c3fd /llvm/unittests/Support | |
parent | b6cd799e29a9a5cef4d1d722f267e3b59ef6aaca (diff) | |
download | bcm5719-llvm-4162875c3b2a2326c8f40b6cba98308d819f4d49.tar.gz bcm5719-llvm-4162875c3b2a2326c8f40b6cba98308d819f4d49.zip |
[Support] Add erase() to json::Object
Diffstat (limited to 'llvm/unittests/Support')
-rw-r--r-- | llvm/unittests/Support/JSONTest.cpp | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/llvm/unittests/Support/JSONTest.cpp b/llvm/unittests/Support/JSONTest.cpp index 14c11b1c4ed..93efcf2f6ad 100644 --- a/llvm/unittests/Support/JSONTest.cpp +++ b/llvm/unittests/Support/JSONTest.cpp @@ -71,7 +71,7 @@ TEST(JSONTest, CanonicalOutput) { } TEST(JSONTest, Escaping) { - std::string test = { + std::string Test = { 0, // Strings may contain nulls. '\b', '\f', // Have mnemonics, but we escape numerically. '\r', '\n', '\t', // Escaped with mnemonics. @@ -80,17 +80,17 @@ TEST(JSONTest, Escaping) { '\xce', '\x94', // Non-ASCII UTF-8 is not escaped. }; - std::string teststring = R"("\u0000\u0008\u000c\r\n\tS\"\\)" + std::string TestString = R"("\u0000\u0008\u000c\r\n\tS\"\\)" "\x7f\xCE\x94\""; - EXPECT_EQ(teststring, s(test)); + EXPECT_EQ(TestString, s(Test)); EXPECT_EQ(R"({"object keys are\nescaped":true})", s(Object{{"object keys are\nescaped", true}})); } TEST(JSONTest, PrettyPrinting) { - const char str[] = R"({ + const char Str[] = R"({ "empty_array": [], "empty_object": {}, "full_array": [ @@ -106,7 +106,7 @@ TEST(JSONTest, PrettyPrinting) { } })"; - EXPECT_EQ(str, sp(Object{ + EXPECT_EQ(Str, sp(Object{ {"empty_object", Object{}}, {"empty_array", {}}, {"full_array", {1, nullptr}}, @@ -120,6 +120,33 @@ TEST(JSONTest, PrettyPrinting) { })); } +TEST(JSONTest, Array) { + Array A{1, 2}; + A.emplace_back(3); + A.emplace(++A.begin(), 0); + A.push_back(4); + A.insert(++++A.begin(), 99); + + EXPECT_EQ(A.size(), 6u); + EXPECT_EQ(R"([1,0,99,2,3,4])", s(std::move(A))); +} + +TEST(JSONTest, Object) { + Object O{{"a", 1}, {"b", 2}, {"c", 3}}; + EXPECT_TRUE(O.try_emplace("d", 4).second); + EXPECT_FALSE(O.try_emplace("a", 4).second); + + auto D = O.find("d"); + EXPECT_FALSE(D == O.end()); + auto E = O.find("e"); + EXPECT_TRUE(E == O.end()); + + O.erase("b"); + O.erase(D); + EXPECT_EQ(O.size(), 2u); + EXPECT_EQ(R"({"a":1,"c":3})", s(std::move(O))); +} + TEST(JSONTest, Parse) { auto Compare = [](llvm::StringRef S, Value Expected) { if (auto E = parse(S)) { |