5
5
import re
6
6
7
7
import 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
12
10
13
11
14
12
class TestDAP_evaluate (lldbdap_testcase .DAPTestCaseBase ):
@@ -45,20 +43,32 @@ def run_test_evaluate_expressions(
45
43
enableAutoVariableSummaries = enableAutoVariableSummaries ,
46
44
)
47
45
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." ,
60
62
)
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 )
62
72
63
73
# Expressions at breakpoint 1, which is in main
64
74
self .assertEvaluate ("var1" , "20" )
@@ -124,7 +134,7 @@ def run_test_evaluate_expressions(
124
134
self .assertEvaluateFailure ("foo_var" )
125
135
126
136
# Expressions at breakpoint 2, which is an anonymous block
127
- self .continue_to_next_stop ( )
137
+ self .continue_to_breakpoint ( breakpoint_2 )
128
138
self .assertEvaluate ("var1" , "20" )
129
139
self .assertEvaluate ("var2" , "2" ) # different variable with the same name
130
140
self .assertEvaluate ("static_int" , "42" )
@@ -162,7 +172,7 @@ def run_test_evaluate_expressions(
162
172
self .assertEvaluateFailure ("foo_var" )
163
173
164
174
# Expressions at breakpoint 3, which is inside a_function
165
- self .continue_to_next_stop ( )
175
+ self .continue_to_breakpoint ( breakpoint_3 )
166
176
self .assertEvaluate ("list" , "42" )
167
177
self .assertEvaluate ("static_int" , "42" )
168
178
self .assertEvaluate ("non_static_int" , "43" )
@@ -188,28 +198,30 @@ def run_test_evaluate_expressions(
188
198
self .assertEvaluateFailure ("foo_var" )
189
199
190
200
# Now we check that values are updated after stepping
191
- self .continue_to_next_stop ( )
201
+ self .continue_to_breakpoint ( breakpoint_4 )
192
202
self .assertEvaluate ("my_vec" , "size=2" )
193
- self .continue_to_next_stop ( )
203
+ self .continue_to_breakpoint ( breakpoint_5 )
194
204
self .assertEvaluate ("my_vec" , "size=3" )
195
205
196
206
self .assertEvaluate ("my_map" , "size=2" )
197
- self .continue_to_next_stop ( )
207
+ self .continue_to_breakpoint ( breakpoint_6 )
198
208
self .assertEvaluate ("my_map" , "size=3" )
199
209
200
210
self .assertEvaluate ("my_bool_vec" , "size=1" )
201
- self .continue_to_next_stop ( )
211
+ self .continue_to_breakpoint ( breakpoint_7 )
202
212
self .assertEvaluate ("my_bool_vec" , "size=2" )
203
213
214
+ self .continue_to_breakpoint (breakpoint_8 )
204
215
# Test memory read, especially with 'empty' repeat commands.
205
216
if context == "repl" :
206
- self .continue_to_next_stop ()
207
217
self .assertEvaluate ("memory read -c 1 &my_ints" , ".* 05 .*\n " )
208
218
self .assertEvaluate ("" , ".* 0a .*\n " )
209
219
self .assertEvaluate ("" , ".* 0f .*\n " )
210
220
self .assertEvaluate ("" , ".* 14 .*\n " )
211
221
self .assertEvaluate ("" , ".* 19 .*\n " )
212
222
223
+ self .continue_to_exit ()
224
+
213
225
@skipIfWindows
214
226
def test_generic_evaluate_expressions (self ):
215
227
# Tests context-less expression evaluations
0 commit comments