[lldb-dap] Add feature to remember last non-empty expression. (#107485) · llvm/llvm-project@2011cbc (original) (raw)
`@@ -54,13 +54,22 @@ def run_test_evaluate_expressions(
`
54
54
`line_number(source, "// breakpoint 5"),
`
55
55
`line_number(source, "// breakpoint 6"),
`
56
56
`line_number(source, "// breakpoint 7"),
`
``
57
`+
line_number(source, "// breakpoint 8"),
`
57
58
` ],
`
58
59
` )
`
59
60
`self.continue_to_next_stop()
`
60
61
``
61
62
`# Expressions at breakpoint 1, which is in main
`
62
63
`self.assertEvaluate("var1", "20")
`
``
64
`+
Empty expression should equate to the previous expression.
`
``
65
`+
if context == "repl":
`
``
66
`+
self.assertEvaluate("", "20")
`
``
67
`+
else:
`
``
68
`+
self.assertEvaluateFailure("")
`
63
69
`self.assertEvaluate("var2", "21")
`
``
70
`+
if context == "repl":
`
``
71
`+
self.assertEvaluate("", "21")
`
``
72
`+
self.assertEvaluate("", "21")
`
64
73
`self.assertEvaluate("static_int", "42")
`
65
74
`self.assertEvaluate("non_static_int", "43")
`
66
75
`self.assertEvaluate("struct1.foo", "15")
`
`@@ -191,6 +200,15 @@ def run_test_evaluate_expressions(
`
191
200
`self.continue_to_next_stop()
`
192
201
`self.assertEvaluate("my_bool_vec", "size=2")
`
193
202
``
``
203
`+
Test memory read, especially with 'empty' repeat commands.
`
``
204
`+
if context == "repl":
`
``
205
`+
self.continue_to_next_stop()
`
``
206
`+
self.assertEvaluate("memory read -c 1 &my_ints", ".* 05 .*\n")
`
``
207
`+
self.assertEvaluate("", ".* 0a .*\n")
`
``
208
`+
self.assertEvaluate("", ".* 0f .*\n")
`
``
209
`+
self.assertEvaluate("", ".* 14 .*\n")
`
``
210
`+
self.assertEvaluate("", ".* 19 .*\n")
`
``
211
+
194
212
`@skipIfWindows
`
195
213
`def test_generic_evaluate_expressions(self):
`
196
214
`# Tests context-less expression evaluations
`