[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