55import re
66
77import lldbdap_testcase
8- import dap_server
9- from lldbsuite .test import lldbutil
10- from lldbsuite .test .decorators import *
11- from lldbsuite .test .lldbtest import *
8+ from lldbsuite .test .decorators import skipIfWindows
9+ from lldbsuite .test .lldbtest import line_number
1210
1311
1412class TestDAP_evaluate (lldbdap_testcase .DAPTestCaseBase ):
@@ -45,20 +43,32 @@ def run_test_evaluate_expressions(
4543 enableAutoVariableSummaries = enableAutoVariableSummaries ,
4644 )
4745 source = "main.cpp"
48- self .set_source_breakpoints (
49- source ,
50- [
51- line_number (source , "// breakpoint 1" ),
52- line_number (source , "// breakpoint 2" ),
53- line_number (source , "// breakpoint 3" ),
54- line_number (source , "// breakpoint 4" ),
55- line_number (source , "// breakpoint 5" ),
56- line_number (source , "// breakpoint 6" ),
57- line_number (source , "// breakpoint 7" ),
58- line_number (source , "// breakpoint 8" ),
59- ],
46+ breakpoint_lines = [
47+ line_number (source , "// breakpoint 1" ),
48+ line_number (source , "// breakpoint 2" ),
49+ line_number (source , "// breakpoint 3" ),
50+ line_number (source , "// breakpoint 4" ),
51+ line_number (source , "// breakpoint 5" ),
52+ line_number (source , "// breakpoint 6" ),
53+ line_number (source , "// breakpoint 7" ),
54+ line_number (source , "// breakpoint 8" ),
55+ ]
56+ breakpoint_ids = self .set_source_breakpoints (source , breakpoint_lines )
57+
58+ self .assertEqual (
59+ len (breakpoint_ids ),
60+ len (breakpoint_lines ),
61+ "Did not resolve all the breakpoints." ,
6062 )
61- self .continue_to_next_stop ()
63+ breakpoint_1 = breakpoint_ids [0 ]
64+ breakpoint_2 = breakpoint_ids [1 ]
65+ breakpoint_3 = breakpoint_ids [2 ]
66+ breakpoint_4 = breakpoint_ids [3 ]
67+ breakpoint_5 = breakpoint_ids [4 ]
68+ breakpoint_6 = breakpoint_ids [5 ]
69+ breakpoint_7 = breakpoint_ids [6 ]
70+ breakpoint_8 = breakpoint_ids [7 ]
71+ self .continue_to_breakpoint (breakpoint_1 )
6272
6373 # Expressions at breakpoint 1, which is in main
6474 self .assertEvaluate ("var1" , "20" )
@@ -124,7 +134,7 @@ def run_test_evaluate_expressions(
124134 self .assertEvaluateFailure ("foo_var" )
125135
126136 # Expressions at breakpoint 2, which is an anonymous block
127- self .continue_to_next_stop ( )
137+ self .continue_to_breakpoint ( breakpoint_2 )
128138 self .assertEvaluate ("var1" , "20" )
129139 self .assertEvaluate ("var2" , "2" ) # different variable with the same name
130140 self .assertEvaluate ("static_int" , "42" )
@@ -162,7 +172,7 @@ def run_test_evaluate_expressions(
162172 self .assertEvaluateFailure ("foo_var" )
163173
164174 # Expressions at breakpoint 3, which is inside a_function
165- self .continue_to_next_stop ( )
175+ self .continue_to_breakpoint ( breakpoint_3 )
166176 self .assertEvaluate ("list" , "42" )
167177 self .assertEvaluate ("static_int" , "42" )
168178 self .assertEvaluate ("non_static_int" , "43" )
@@ -188,28 +198,30 @@ def run_test_evaluate_expressions(
188198 self .assertEvaluateFailure ("foo_var" )
189199
190200 # Now we check that values are updated after stepping
191- self .continue_to_next_stop ( )
201+ self .continue_to_breakpoint ( breakpoint_4 )
192202 self .assertEvaluate ("my_vec" , "size=2" )
193- self .continue_to_next_stop ( )
203+ self .continue_to_breakpoint ( breakpoint_5 )
194204 self .assertEvaluate ("my_vec" , "size=3" )
195205
196206 self .assertEvaluate ("my_map" , "size=2" )
197- self .continue_to_next_stop ( )
207+ self .continue_to_breakpoint ( breakpoint_6 )
198208 self .assertEvaluate ("my_map" , "size=3" )
199209
200210 self .assertEvaluate ("my_bool_vec" , "size=1" )
201- self .continue_to_next_stop ( )
211+ self .continue_to_breakpoint ( breakpoint_7 )
202212 self .assertEvaluate ("my_bool_vec" , "size=2" )
203213
214+ self .continue_to_breakpoint (breakpoint_8 )
204215 # Test memory read, especially with 'empty' repeat commands.
205216 if context == "repl" :
206- self .continue_to_next_stop ()
207217 self .assertEvaluate ("memory read -c 1 &my_ints" , ".* 05 .*\n " )
208218 self .assertEvaluate ("" , ".* 0a .*\n " )
209219 self .assertEvaluate ("" , ".* 0f .*\n " )
210220 self .assertEvaluate ("" , ".* 14 .*\n " )
211221 self .assertEvaluate ("" , ".* 19 .*\n " )
212222
223+ self .continue_to_exit ()
224+
213225 @skipIfWindows
214226 def test_generic_evaluate_expressions (self ):
215227 # Tests context-less expression evaluations
0 commit comments