Skip to content

Commit e62fc14

Browse files
committed
[lldb-dap] Add unit tests for GetStrings
1 parent d129790 commit e62fc14

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

lldb/unittests/DAP/JSONUtilsTest.cpp

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,3 +149,47 @@ TEST(JSONUtilsTest, CreateModule) {
149149
ASSERT_NE(object, nullptr);
150150
EXPECT_EQ(object->size(), 0UL);
151151
}
152+
153+
TEST(JSONUtilsTest, GetStrings_EmptyArray) {
154+
llvm::json::Object obj;
155+
obj.try_emplace("key", llvm::json::Array());
156+
auto result = GetStrings(&obj, "key");
157+
EXPECT_TRUE(result.empty());
158+
}
159+
160+
TEST(JSONUtilsTest, GetStrings_NullKey) {
161+
llvm::json::Object obj;
162+
auto result = GetStrings(&obj, "nonexistent_key");
163+
EXPECT_TRUE(result.empty());
164+
}
165+
166+
TEST(JSONUtilsTest, GetStrings_StringValues) {
167+
llvm::json::Object obj;
168+
llvm::json::Array arr{"value1", "value2", "value3"};
169+
obj.try_emplace("key", std::move(arr));
170+
auto result = GetStrings(&obj, "key");
171+
ASSERT_EQ(result.size(), 3UL);
172+
EXPECT_EQ(result[0], "value1");
173+
EXPECT_EQ(result[1], "value2");
174+
EXPECT_EQ(result[2], "value3");
175+
}
176+
177+
TEST(JSONUtilsTest, GetStrings_MixedValues) {
178+
llvm::json::Object obj;
179+
llvm::json::Array arr{"string", 42, true, nullptr};
180+
obj.try_emplace("key", std::move(arr));
181+
auto result = GetStrings(&obj, "key");
182+
ASSERT_EQ(result.size(), 3UL);
183+
EXPECT_EQ(result[0], "string");
184+
EXPECT_EQ(result[1], "42");
185+
EXPECT_EQ(result[2], "true");
186+
}
187+
188+
TEST(JSONUtilsTest, GetStrings_NestedArray) {
189+
llvm::json::Object obj;
190+
llvm::json::Array nested_array{"string", llvm::json::Array{"nested"}};
191+
obj.try_emplace("key", std::move(nested_array));
192+
auto result = GetStrings(&obj, "key");
193+
ASSERT_EQ(result.size(), 1UL);
194+
EXPECT_EQ(result[0], "string");
195+
}

0 commit comments

Comments
 (0)