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 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits