Author: Piyush Jaiswal
Date: 2025-08-26T17:55:29-07:00
New Revision: 101ad14f535461236ba0a656554d884d6d0b25a0

URL: 
https://github.com/llvm/llvm-project/commit/101ad14f535461236ba0a656554d884d6d0b25a0
DIFF: 
https://github.com/llvm/llvm-project/commit/101ad14f535461236ba0a656554d884d6d0b25a0.diff

LOG: [lldb-dap] Improving lldbdap_testcase.py error diagnosability (#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 <piyushj...@meta.com>

Added: 
    

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

Removed: 
    


################################################################################
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..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,9 +496,8 @@ def cleanup():
         if expectFailure:
             return response
         if not (response and response["success"]):
-            self.assertTrue(
-                response["success"], "attach failed (%s)" % 
(response["message"])
-            )
+            error_msg = self._build_error_message("attach failed", response)
+            self.assertTrue(response and response["success"], error_msg)
 
     def launch(
         self,
@@ -508,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,


        
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to