summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/Support
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2019-11-11 18:25:01 +0100
committerSam McCall <sam.mccall@gmail.com>2019-11-11 18:25:28 +0100
commit4162875c3b2a2326c8f40b6cba98308d819f4d49 (patch)
tree310175a17665a6f77e75115475b75f867707c3fd /llvm/unittests/Support
parentb6cd799e29a9a5cef4d1d722f267e3b59ef6aaca (diff)
downloadbcm5719-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.cpp37
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)) {
OpenPOWER on IntegriCloud