Skip to content

Commit 26278ec

Browse files
da-viperJDevlieghere
authored andcommitted
[lldb-dap] DataBreakpointInfoArguments make frameId optional. (llvm#162845)
Add unittest for `DataBreakpointInfoArguments` (cherry picked from commit 92f1af3)
1 parent 50269cd commit 26278ec

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ bool fromJSON(const json::Value &Params, DataBreakpointInfoArguments &DBIA,
461461
json::Path P) {
462462
json::ObjectMapper O(Params, P);
463463
return O && O.map("variablesReference", DBIA.variablesReference) &&
464-
O.map("name", DBIA.name) && O.map("frameId", DBIA.frameId) &&
464+
O.map("name", DBIA.name) && O.mapOptional("frameId", DBIA.frameId) &&
465465
O.map("bytes", DBIA.bytes) && O.map("asAddress", DBIA.asAddress) &&
466466
O.map("mode", DBIA.mode);
467467
}

lldb/unittests/DAP/ProtocolTypesTest.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1101,3 +1101,28 @@ TEST(ProtocolTypesTest, MemoryEventBody) {
11011101
})";
11021102
EXPECT_EQ(json, pp(body));
11031103
}
1104+
1105+
TEST(ProtocolTypesTest, DataBreakpointInfoArguments) {
1106+
llvm::Expected<DataBreakpointInfoArguments> expected =
1107+
parse<DataBreakpointInfoArguments>(R"({
1108+
"name": "data",
1109+
"variablesReference": 8,
1110+
"frameId": 9,
1111+
"bytes": 10,
1112+
"asAddress": false,
1113+
"mode": "source"
1114+
})");
1115+
ASSERT_THAT_EXPECTED(expected, llvm::Succeeded());
1116+
EXPECT_EQ(expected->name, "data");
1117+
EXPECT_EQ(expected->variablesReference, 8);
1118+
EXPECT_EQ(expected->frameId, 9u);
1119+
EXPECT_EQ(expected->bytes, 10);
1120+
EXPECT_EQ(expected->asAddress, false);
1121+
EXPECT_EQ(expected->mode, "source");
1122+
1123+
// Check required keys.
1124+
EXPECT_THAT_EXPECTED(parse<DataBreakpointInfoArguments>(R"({})"),
1125+
FailedWithMessage("missing value at (root).name"));
1126+
EXPECT_THAT_EXPECTED(parse<DataBreakpointInfoArguments>(R"({"name":"data"})"),
1127+
llvm::Succeeded());
1128+
}

0 commit comments

Comments
 (0)