Skip to content

Commit 101ad14

Browse files
piyushjaiswal98Piyush Jaiswal
andauthored
[lldb-dap] Improving lldbdap_testcase.py error diagnosability (llvm#155352)
Improved response Message handling in lldbdap_testcase.py to handle various formats. Allows for more descriptive error messaging (Provides useful info even when error details are malformed) --------- Co-authored-by: Piyush Jaiswal <[email protected]>
1 parent dfd3833 commit 101ad14

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,25 @@ def disassemble(self, threadId=None, frameIndex=None):
450450

451451
return disassembled_instructions, disassembled_instructions[memoryReference]
452452

453+
def _build_error_message(self, base_message, response):
454+
"""Build a detailed error message from a DAP response.
455+
Extracts error information from various possible locations in the response structure.
456+
"""
457+
error_msg = base_message
458+
if response:
459+
if "message" in response:
460+
error_msg += " (%s)" % response["message"]
461+
elif "body" in response and "error" in response["body"]:
462+
if "format" in response["body"]["error"]:
463+
error_msg += " (%s)" % response["body"]["error"]["format"]
464+
else:
465+
error_msg += " (error in body)"
466+
else:
467+
error_msg += " (no error details available)"
468+
else:
469+
error_msg += " (no response)"
470+
return error_msg
471+
453472
def attach(
454473
self,
455474
*,
@@ -477,9 +496,8 @@ def cleanup():
477496
if expectFailure:
478497
return response
479498
if not (response and response["success"]):
480-
self.assertTrue(
481-
response["success"], "attach failed (%s)" % (response["message"])
482-
)
499+
error_msg = self._build_error_message("attach failed", response)
500+
self.assertTrue(response and response["success"], error_msg)
483501

484502
def launch(
485503
self,
@@ -508,10 +526,8 @@ def cleanup():
508526
if expectFailure:
509527
return response
510528
if not (response and response["success"]):
511-
self.assertTrue(
512-
response["success"],
513-
"launch failed (%s)" % (response["body"]["error"]["format"]),
514-
)
529+
error_msg = self._build_error_message("launch failed", response)
530+
self.assertTrue(response and response["success"], error_msg)
515531

516532
def build_and_launch(
517533
self,

0 commit comments

Comments
 (0)