[Lldb-commits] [lldb] [lldb-dap] Improving lldbdap_testcase.py error diagnosability (PR #155352)
Piyush Jaiswal via lldb-commits
lldb-commits at lists.llvm.org
Tue Aug 26 11:48:33 PDT 2025
https://github.com/piyushjaiswal98 updated https://github.com/llvm/llvm-project/pull/155352
>From 80ee7d1200ad32e4e3eb46ce5a6cd1ce0eb9a1ce Mon Sep 17 00:00:00 2001
From: Piyush Jaiswal <piyushjais at meta.com>
Date: Mon, 25 Aug 2025 21:17:17 -0700
Subject: [PATCH 1/2] Improving lldbdap_testcase.py error diagnosability
---
.../test/tools/lldb-dap/lldbdap_testcase.py | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
index c23b2e73fb45e..b0e3df47de14a 100644
--- a/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
+++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
@@ -477,9 +477,21 @@ def cleanup():
if expectFailure:
return response
if not (response and response["success"]):
- self.assertTrue(
- response["success"], "attach failed (%s)" % (response["message"])
- )
+ error_msg = "attach failed"
+ if response:
+ if "message" in response:
+ error_msg += " (%s)" % response["message"]
+ elif "body" in response and "error" in response["body"]:
+ if "format" in response["body"]["error"]:
+ error_msg += " (%s)" % response["body"]["error"]["format"]
+ else:
+ error_msg += " (error in body)"
+ else:
+ error_msg += " (no error details available)"
+ else:
+ error_msg += " (no response)"
+ self.assertTrue(response and response["success"], error_msg)
+
def launch(
self,
>From 8c6d902a8a5f9f16b7caaca6c5df491fc02af804 Mon Sep 17 00:00:00 2001
From: Piyush Jaiswal <piyushjais at meta.com>
Date: Tue, 26 Aug 2025 11:30:55 -0700
Subject: [PATCH 2/2] consolidating into a helper method and addressing other
places
---
.../test/tools/lldb-dap/lldbdap_testcase.py | 40 ++++++++++---------
1 file changed, 22 insertions(+), 18 deletions(-)
diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
index b0e3df47de14a..b28a78792c70f 100644
--- a/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
+++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
@@ -450,6 +450,25 @@ def disassemble(self, threadId=None, frameIndex=None):
return disassembled_instructions, disassembled_instructions[memoryReference]
+ def _build_error_message(self, base_message, response):
+ """Build a detailed error message from a DAP response.
+ Extracts error information from various possible locations in the response structure.
+ """
+ error_msg = base_message
+ if response:
+ if "message" in response:
+ error_msg += " (%s)" % response["message"]
+ elif "body" in response and "error" in response["body"]:
+ if "format" in response["body"]["error"]:
+ error_msg += " (%s)" % response["body"]["error"]["format"]
+ else:
+ error_msg += " (error in body)"
+ else:
+ error_msg += " (no error details available)"
+ else:
+ error_msg += " (no response)"
+ return error_msg
+
def attach(
self,
*,
@@ -477,22 +496,9 @@ def cleanup():
if expectFailure:
return response
if not (response and response["success"]):
- error_msg = "attach failed"
- if response:
- if "message" in response:
- error_msg += " (%s)" % response["message"]
- elif "body" in response and "error" in response["body"]:
- if "format" in response["body"]["error"]:
- error_msg += " (%s)" % response["body"]["error"]["format"]
- else:
- error_msg += " (error in body)"
- else:
- error_msg += " (no error details available)"
- else:
- error_msg += " (no response)"
+ error_msg = self._build_error_message("attach failed", response)
self.assertTrue(response and response["success"], error_msg)
-
def launch(
self,
program=None,
@@ -520,10 +526,8 @@ def cleanup():
if expectFailure:
return response
if not (response and response["success"]):
- self.assertTrue(
- response["success"],
- "launch failed (%s)" % (response["body"]["error"]["format"]),
- )
+ error_msg = self._build_error_message("launch failed", response)
+ self.assertTrue(response and response["success"], error_msg)
def build_and_launch(
self,
More information about the lldb-commits
mailing list