[Lldb-commits] [lldb] [lldb-dap][test] Fix DAP disassemble test (PR #142129)
Ebuka Ezike via lldb-commits
lldb-commits at lists.llvm.org
Fri May 30 04:53:47 PDT 2025
https://github.com/da-viper created https://github.com/llvm/llvm-project/pull/142129
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.
>From 4c0bd999e60b7082fb30916c5f20d7ab064e76fe Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <yerimyah1 at gmail.com>
Date: Fri, 30 May 2025 12:49:22 +0100
Subject: [PATCH] [lldb-dap][test] Fix DAP disassemble test
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.
---
.../disassemble/TestDAP_disassemble.py | 36 +++++++++++--------
1 file changed, 22 insertions(+), 14 deletions(-)
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()
More information about the lldb-commits
mailing list