[Lldb-commits] [lldb] [lldb-dap][test] Fix DAP disassemble test (PR #142129)

via lldb-commits lldb-commits at lists.llvm.org
Fri May 30 04:54:22 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-lldb

Author: Ebuka Ezike (da-viper)

<details>
<summary>Changes</summary>

compare the instructions before and after setting breakpoint to make sure they are the same. 
Do not use the source location as it is not guaranteed to exist.

---
Full diff: https://github.com/llvm/llvm-project/pull/142129.diff


1 Files Affected:

- (modified) lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py (+22-14) 


``````````diff
diff --git a/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py b/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
index a8b51864d118b..da7a337de5ea6 100644
--- a/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
+++ b/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
@@ -2,13 +2,9 @@
 Test lldb-dap disassemble request
 """
 
-
-import dap_server
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import skipIfWindows
+from lldbsuite.test.lldbtest import line_number
 import lldbdap_testcase
-import os
 
 
 class TestDAP_disassemble(lldbdap_testcase.DAPTestCaseBase):
@@ -23,15 +19,23 @@ def test_disassemble(self):
         self.set_source_breakpoints(source, [line_number(source, "// breakpoint 1")])
         self.continue_to_next_stop()
 
-        _, pc_assembly = self.disassemble(frameIndex=0)
-        self.assertIn("location", pc_assembly, "Source location missing.")
-        self.assertIn("instruction", pc_assembly, "Assembly instruction missing.")
+        insts_with_bp, pc_with_bp_assembly = self.disassemble(frameIndex=0)
+        no_bp = self.set_source_breakpoints(source, [])
+        self.assertEqual(len(no_bp), 0, "expect no breakpoints.")
+        self.assertIn(
+            "instruction", pc_with_bp_assembly, "Assembly instruction missing."
+        )
 
-        # The calling frame (qsort) is coming from a system library, as a result
-        # we should not have a source location.
-        _, qsort_assembly = self.disassemble(frameIndex=1)
-        self.assertNotIn("location", qsort_assembly, "Source location not expected.")
-        self.assertIn("instruction", pc_assembly, "Assembly instruction missing.")
+        # the disassembly instructions should be the same even if there is a breakpoint;
+        insts_no_bp, pc_no_bp_assembly = self.disassemble(frameIndex=0)
+        self.assertDictEqual(
+            insts_with_bp,
+            insts_no_bp,
+            "Expects instructions are the same after removing breakpoints.",
+        )
+        self.assertIn("instruction", pc_no_bp_assembly, "Assembly instruction missing.")
+
+        self.continue_to_exit()
 
     @skipIfWindows
     def test_disassemble_backwards(self):
@@ -74,3 +78,7 @@ def test_disassemble_backwards(self):
             backwards_instructions,
             f"requested instruction should be preceeded by {backwards_instructions} instructions. Actual index: {frame_instruction_index}",
         )
+
+        # clear breakpoints
+        self.set_source_breakpoints(source, [])
+        self.continue_to_exit()

``````````

</details>


https://github.com/llvm/llvm-project/pull/142129


More information about the lldb-commits mailing list