https://github.com/da-viper updated 
https://github.com/llvm/llvm-project/pull/142129

>From 4c0bd999e60b7082fb30916c5f20d7ab064e76fe Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <yerimy...@gmail.com>
Date: Fri, 30 May 2025 12:49:22 +0100
Subject: [PATCH 1/2] [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()

>From c98ec8b5a87664d83802f502ae35596a35b48492 Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <yerimy...@gmail.com>
Date: Mon, 2 Jun 2025 09:41:23 +0100
Subject: [PATCH 2/2] [lldb-dap] add review changes

---
 .../lldb-dap/disassemble/TestDAP_disassemble.py   | 15 ++++++++++++---
 lldb/test/API/tools/lldb-dap/disassemble/main.c   |  4 +---
 2 files changed, 13 insertions(+), 6 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 da7a337de5ea6..0562f20335a23 100644
--- a/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
+++ b/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
@@ -16,18 +16,27 @@ def test_disassemble(self):
         program = self.getBuildArtifact("a.out")
         self.build_and_launch(program)
         source = "main.c"
-        self.set_source_breakpoints(source, [line_number(source, "// 
breakpoint 1")])
+        bp_line_no = line_number(source, "// breakpoint 1")
+        self.set_source_breakpoints(source, [bp_line_no])
         self.continue_to_next_stop()
 
         insts_with_bp, pc_with_bp_assembly = self.disassemble(frameIndex=0)
+        self.assertIn("location", pc_with_bp_assembly, "Source location 
missing.")
+        self.assertEqual(
+            pc_with_bp_assembly["line"], bp_line_no, "Expects the same line 
number"
+        )
         no_bp = self.set_source_breakpoints(source, [])
-        self.assertEqual(len(no_bp), 0, "expect no breakpoints.")
+        self.assertEqual(len(no_bp), 0, "Expects no breakpoints.")
         self.assertIn(
             "instruction", pc_with_bp_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.assertIn("location", pc_no_bp_assembly, "Source location 
missing.")
+        self.assertEqual(
+            pc_with_bp_assembly["line"], bp_line_no, "Expects the same line 
number"
+        )
+        # the disassembly instructions should be the same with breakpoint and 
no breakpoint;
         self.assertDictEqual(
             insts_with_bp,
             insts_no_bp,
diff --git a/lldb/test/API/tools/lldb-dap/disassemble/main.c 
b/lldb/test/API/tools/lldb-dap/disassemble/main.c
index 9da119ef70262..b4927db10e949 100644
--- a/lldb/test/API/tools/lldb-dap/disassemble/main.c
+++ b/lldb/test/API/tools/lldb-dap/disassemble/main.c
@@ -6,9 +6,7 @@ int compare_ints(const void *a, const void *b) {
   int arg1 = *(const int *)a;
   int arg2 = *(const int *)b;
 
-  // breakpoint 1
-
-  if (arg1 < arg2)
+  if (arg1 < arg2) // breakpoint 1
     return -1;
   if (arg1 > arg2)
     return 1;

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

Reply via email to