[Lldb-commits] [lldb] [lldb-dap] DataBreakpointInfoArguments make frameId optional. (PR #162845)
Ebuka Ezike via lldb-commits
lldb-commits at lists.llvm.org
Fri Oct 10 06:59:35 PDT 2025
https://github.com/da-viper created https://github.com/llvm/llvm-project/pull/162845
Add unittest for `DataBreakpointInfoArguments`
>From 3f41749c9efe5bd65ec3d6cdf536bce14cdae65b Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <yerimyah1 at gmail.com>
Date: Fri, 10 Oct 2025 14:58:02 +0100
Subject: [PATCH] [lldb-dap] DataBreakpointInfoArguments make frameId optional.
Add unittest for `DataBreakpointInfoArguments`
---
.../lldb-dap/Protocol/ProtocolRequests.cpp | 2 +-
lldb/unittests/DAP/ProtocolTypesTest.cpp | 25 +++++++++++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp b/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
index b455112cd37d9..b9393356b4e01 100644
--- a/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
+++ b/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
@@ -461,7 +461,7 @@ bool fromJSON(const json::Value &Params, DataBreakpointInfoArguments &DBIA,
json::Path P) {
json::ObjectMapper O(Params, P);
return O && O.map("variablesReference", DBIA.variablesReference) &&
- O.map("name", DBIA.name) && O.map("frameId", DBIA.frameId) &&
+ O.map("name", DBIA.name) && O.mapOptional("frameId", DBIA.frameId) &&
O.map("bytes", DBIA.bytes) && O.map("asAddress", DBIA.asAddress) &&
O.map("mode", DBIA.mode);
}
diff --git a/lldb/unittests/DAP/ProtocolTypesTest.cpp b/lldb/unittests/DAP/ProtocolTypesTest.cpp
index 0989a5becc8fe..44e96e1643d30 100644
--- a/lldb/unittests/DAP/ProtocolTypesTest.cpp
+++ b/lldb/unittests/DAP/ProtocolTypesTest.cpp
@@ -1101,3 +1101,28 @@ TEST(ProtocolTypesTest, MemoryEventBody) {
})";
EXPECT_EQ(json, pp(body));
}
+
+TEST(ProtocolTypesTest, DataBreakpointInfoArguments) {
+ llvm::Expected<DataBreakpointInfoArguments> expected =
+ parse<DataBreakpointInfoArguments>(R"({
+ "name": "data",
+ "variablesReference": 8,
+ "frameId": 9,
+ "bytes": 10,
+ "asAddress": false,
+ "mode": "source"
+ })");
+ ASSERT_THAT_EXPECTED(expected, llvm::Succeeded());
+ EXPECT_EQ(expected->name, "data");
+ EXPECT_EQ(expected->variablesReference, 8);
+ EXPECT_EQ(expected->frameId, 9u);
+ EXPECT_EQ(expected->bytes, 10);
+ EXPECT_EQ(expected->asAddress, false);
+ EXPECT_EQ(expected->mode, "source");
+
+ // Check required keys.
+ EXPECT_THAT_EXPECTED(parse<DataBreakpointInfoArguments>(R"({})"),
+ FailedWithMessage("missing value at (root).name"));
+ EXPECT_THAT_EXPECTED(parse<DataBreakpointInfoArguments>(R"({"name":"data"})"),
+ llvm::Succeeded());
+}
\ No newline at end of file
More information about the lldb-commits
mailing list