Author: Ebuka Ezike
Date: 2025-05-21T18:17:38+01:00
New Revision: d219a71849f9209b01ee9e71af83747ad44b2a18

URL: 
https://github.com/llvm/llvm-project/commit/d219a71849f9209b01ee9e71af83747ad44b2a18
DIFF: 
https://github.com/llvm/llvm-project/commit/d219a71849f9209b01ee9e71af83747ad44b2a18.diff

LOG: [lldb][lldb-dap][tests] Make sure evaluate test exists with no errors. 
(#140788)

Added: 
    

Modified: 
    lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
    lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py

Removed: 
    


################################################################################
diff  --git 
a/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py 
b/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
index 4028ae4a2525f..3d90715ca7248 100644
--- a/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
+++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
@@ -116,7 +116,7 @@ def verify_breakpoint_hit(self, breakpoint_ids, 
timeout=DEFAULT_TIMEOUT):
                 # location.
                 description = body["description"]
                 for breakpoint_id in breakpoint_ids:
-                    match_desc = "breakpoint %s." % (breakpoint_id)
+                    match_desc = f"breakpoint {breakpoint_id}."
                     if match_desc in description:
                         return
         self.assertTrue(False, f"breakpoint not hit, 
stopped_events={stopped_events}")
@@ -312,6 +312,9 @@ def continue_to_next_stop(self, timeout=DEFAULT_TIMEOUT):
         self.do_continue()
         return self.dap_server.wait_for_stopped(timeout)
 
+    def continue_to_breakpoint(self, breakpoint_id: str, 
timeout=DEFAULT_TIMEOUT):
+        self.continue_to_breakpoints((breakpoint_id), timeout)
+
     def continue_to_breakpoints(self, breakpoint_ids, timeout=DEFAULT_TIMEOUT):
         self.do_continue()
         self.verify_breakpoint_hit(breakpoint_ids, timeout)

diff  --git a/lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py 
b/lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py
index 2166e88151986..0d2774b281710 100644
--- a/lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py
+++ b/lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py
@@ -5,10 +5,8 @@
 import re
 
 import lldbdap_testcase
-import dap_server
-from lldbsuite.test import lldbutil
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import skipIfWindows
+from lldbsuite.test.lldbtest import line_number
 
 
 class TestDAP_evaluate(lldbdap_testcase.DAPTestCaseBase):
@@ -45,20 +43,32 @@ def run_test_evaluate_expressions(
             enableAutoVariableSummaries=enableAutoVariableSummaries,
         )
         source = "main.cpp"
-        self.set_source_breakpoints(
-            source,
-            [
-                line_number(source, "// breakpoint 1"),
-                line_number(source, "// breakpoint 2"),
-                line_number(source, "// breakpoint 3"),
-                line_number(source, "// breakpoint 4"),
-                line_number(source, "// breakpoint 5"),
-                line_number(source, "// breakpoint 6"),
-                line_number(source, "// breakpoint 7"),
-                line_number(source, "// breakpoint 8"),
-            ],
+        breakpoint_lines = [
+            line_number(source, "// breakpoint 1"),
+            line_number(source, "// breakpoint 2"),
+            line_number(source, "// breakpoint 3"),
+            line_number(source, "// breakpoint 4"),
+            line_number(source, "// breakpoint 5"),
+            line_number(source, "// breakpoint 6"),
+            line_number(source, "// breakpoint 7"),
+            line_number(source, "// breakpoint 8"),
+        ]
+        breakpoint_ids = self.set_source_breakpoints(source, breakpoint_lines)
+
+        self.assertEqual(
+            len(breakpoint_ids),
+            len(breakpoint_lines),
+            "Did not resolve all the breakpoints.",
         )
-        self.continue_to_next_stop()
+        breakpoint_1 = breakpoint_ids[0]
+        breakpoint_2 = breakpoint_ids[1]
+        breakpoint_3 = breakpoint_ids[2]
+        breakpoint_4 = breakpoint_ids[3]
+        breakpoint_5 = breakpoint_ids[4]
+        breakpoint_6 = breakpoint_ids[5]
+        breakpoint_7 = breakpoint_ids[6]
+        breakpoint_8 = breakpoint_ids[7]
+        self.continue_to_breakpoint(breakpoint_1)
 
         # Expressions at breakpoint 1, which is in main
         self.assertEvaluate("var1", "20")
@@ -124,7 +134,7 @@ def run_test_evaluate_expressions(
             self.assertEvaluateFailure("foo_var")
 
         # Expressions at breakpoint 2, which is an anonymous block
-        self.continue_to_next_stop()
+        self.continue_to_breakpoint(breakpoint_2)
         self.assertEvaluate("var1", "20")
         self.assertEvaluate("var2", "2")  # 
diff erent variable with the same name
         self.assertEvaluate("static_int", "42")
@@ -162,7 +172,7 @@ def run_test_evaluate_expressions(
             self.assertEvaluateFailure("foo_var")
 
         # Expressions at breakpoint 3, which is inside a_function
-        self.continue_to_next_stop()
+        self.continue_to_breakpoint(breakpoint_3)
         self.assertEvaluate("list", "42")
         self.assertEvaluate("static_int", "42")
         self.assertEvaluate("non_static_int", "43")
@@ -188,28 +198,30 @@ def run_test_evaluate_expressions(
             self.assertEvaluateFailure("foo_var")
 
         # Now we check that values are updated after stepping
-        self.continue_to_next_stop()
+        self.continue_to_breakpoint(breakpoint_4)
         self.assertEvaluate("my_vec", "size=2")
-        self.continue_to_next_stop()
+        self.continue_to_breakpoint(breakpoint_5)
         self.assertEvaluate("my_vec", "size=3")
 
         self.assertEvaluate("my_map", "size=2")
-        self.continue_to_next_stop()
+        self.continue_to_breakpoint(breakpoint_6)
         self.assertEvaluate("my_map", "size=3")
 
         self.assertEvaluate("my_bool_vec", "size=1")
-        self.continue_to_next_stop()
+        self.continue_to_breakpoint(breakpoint_7)
         self.assertEvaluate("my_bool_vec", "size=2")
 
+        self.continue_to_breakpoint(breakpoint_8)
         # Test memory read, especially with 'empty' repeat commands.
         if context == "repl":
-            self.continue_to_next_stop()
             self.assertEvaluate("memory read -c 1 &my_ints", ".* 05 .*\n")
             self.assertEvaluate("", ".* 0a .*\n")
             self.assertEvaluate("", ".* 0f .*\n")
             self.assertEvaluate("", ".* 14 .*\n")
             self.assertEvaluate("", ".* 19 .*\n")
 
+        self.continue_to_exit()
+
     @skipIfWindows
     def test_generic_evaluate_expressions(self):
         # Tests context-less expression evaluations


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

Reply via email to