Skip to content

Commit 570c7a4

Browse files
Merge pull request #7490 from chelcassanova/check-expression-refactor
[lldb][testsuite] Refactor use of check_expression
2 parents 92b7b36 + 1311e2e commit 570c7a4

10 files changed

+85
-235
lines changed

lldb/test/API/lang/swift/expression/classes/fromobjc/TestSwiftExpressionsInMethodsFromObjc.py

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,6 @@ class TestExpressionsInSwiftMethodsFromObjC(TestBase):
2424

2525
mydir = TestBase.compute_mydir(__file__)
2626

27-
def check_expression(self, expression, expected_result, use_summary=True):
28-
value = self.frame().EvaluateExpression(expression)
29-
self.assertTrue(value.IsValid(), expression + "returned a valid value")
30-
31-
if use_summary:
32-
answer = value.GetSummary()
33-
else:
34-
answer = value.GetValue()
35-
report_str = "%s expected: %s got: %s" % (
36-
expression, expected_result, answer)
37-
self.assertTrue(answer == expected_result, report_str)
38-
3927
@skipUnlessDarwin
4028
@swiftTest
4129
def test_swift_expressions_from_objc(self):
@@ -45,7 +33,6 @@ def test_swift_expressions_from_objc(self):
4533
self, 'Stop here in NSObject derived class',
4634
lldb.SBFileSpec('main.swift'))
4735

48-
self.check_expression("m_computed_ivar == 5", "true")
49-
self.check_expression("m_ivar", "10", use_summary=False)
50-
self.check_expression("self.m_ivar == 11", "false")
51-
36+
lldbutil.check_expression(self, self.frame(), "m_computed_ivar == 5", "true", use_summary=True)
37+
lldbutil.check_expression(self, self.frame(), "m_ivar", "10", use_summary=False)
38+
lldbutil.check_expression(self, self.frame(), "self.m_ivar == 11", "false", use_summary=True)

lldb/test/API/lang/swift/expression/classes/pureswift/TestSwiftExpressionsInMethodsPureSwift.py

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,13 @@ class TestExpressionsInSwiftMethodsPureSwift(TestBase):
2424

2525
mydir = TestBase.compute_mydir(__file__)
2626

27-
def check_expression(self, expression, expected_result, use_summary=True):
28-
value = self.frame().EvaluateExpression(expression)
29-
self.assertTrue(value.IsValid(), expression + "returned a valid value")
30-
31-
if use_summary:
32-
answer = value.GetSummary()
33-
else:
34-
answer = value.GetValue()
35-
report_str = "%s expected: %s got: %s" % (
36-
expression, expected_result, answer)
37-
self.assertTrue(answer == expected_result, report_str)
38-
3927
@swiftTest
4028
def test_expressions_in_methods(self):
4129
"""Tests that we can run simple Swift expressions correctly"""
4230
self.build()
4331
lldbutil.run_to_source_breakpoint(
4432
self, 'Stop here in Pure Swift class', lldb.SBFileSpec('main.swift'))
4533

46-
self.check_expression("m_computed_ivar == 5", "true")
47-
self.check_expression("m_ivar", "10", use_summary=False)
48-
self.check_expression("self.m_ivar == 11", "false")
49-
34+
lldbutil.check_expression(self, self.frame(), "m_computed_ivar == 5", "true")
35+
lldbutil.check_expression(self, self.frame(), "m_ivar", "10", use_summary=False)
36+
lldbutil.check_expression(self, self.frame(), "self.m_ivar == 11", "false")

lldb/test/API/lang/swift/expression/exclusivity_suppression/TestExclusivitySuppression.py

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def test_basic_exclusivity_suppression(self):
4646
frame = thread.frames[0]
4747
self.assertTrue(frame, "Frame 0 is valid.")
4848

49-
self.check_expression(frame, "w.s.i", "8", use_summary=False)
49+
lldbutil.check_expression(self, frame, "w.s.i", "8", use_summary=False)
5050

5151
# Test that we properly handle nested expression evaluations by:
5252
# (1) Breaking at breakpoint 1
@@ -73,28 +73,14 @@ def test_exclusivity_suppression_for_concurrent_expressions(self):
7373

7474
# Evaluate w.s.i at breakpoint 2 to check that exclusivity checking
7575
# is suppressed inside the nested expression
76-
self.check_expression(thread.frames[0], "i", "8", use_summary=False)
76+
lldbutil.check_expression(self, thread.frames[0], "i", "8", use_summary=False)
7777

7878
# Return to breakpoint 1 and evaluate w.s.i again to check that
7979
# exclusivity checking is still suppressed
80-
self.dbg.HandleCommand('thread ret -x')
81-
self.check_expression(thread.frame[0], "w.s.i", "8", use_summary=False)
80+
self.dbg.HandleCommand("thread ret -x")
81+
lldbutil.check_expression(self, thread.frame[0], "w.s.i", "8", use_summary=False)
8282

8383
def setUp(self):
8484
TestBase.setUp(self)
8585
self.main_source = "main.swift"
8686
self.main_source_spec = lldb.SBFileSpec(self.main_source)
87-
88-
def check_expression(self, frame, expression, expected_result, use_summary=True):
89-
value = frame.EvaluateExpression(expression)
90-
self.assertTrue(value.IsValid(), expression + " returned a valid value")
91-
if self.TraceOn():
92-
print(value.GetSummary())
93-
print(value.GetValue())
94-
if use_summary:
95-
answer = value.GetSummary()
96-
else:
97-
answer = value.GetValue()
98-
report_str = "%s expected: %s got: %s" % (
99-
expression, expected_result, answer)
100-
self.assertTrue(answer == expected_result, report_str)

lldb/test/API/lang/swift/expression/generic/TestSwiftGenericExpressions.py

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -41,25 +41,6 @@ def test_ivars_in_generic_expressions(self):
4141
self.build()
4242
self.do_ivar_test()
4343

44-
def check_expression(self, expression, expected_result, use_summary=True):
45-
opts = lldb.SBExpressionOptions()
46-
opts.SetFetchDynamicValue(lldb.eDynamicCanRunTarget)
47-
value = self.frame().EvaluateExpression(expression, opts)
48-
self.assertTrue(value.IsValid(), expression + "returned a valid value")
49-
50-
self.assertSuccess(value.GetError(), "expression failed")
51-
if self.TraceOn():
52-
print(value.GetSummary())
53-
print(value.GetValue())
54-
55-
if use_summary:
56-
answer = value.GetSummary()
57-
else:
58-
answer = value.GetValue()
59-
report_str = "Use summary: %d %s expected: %s got: %s" % (
60-
use_summary, expression, expected_result, answer)
61-
self.assertTrue(answer == expected_result, report_str)
62-
6344
def do_test(self):
6445
"""Test expressions in generic contexts"""
6546
exe_name = "a.out"
@@ -91,7 +72,7 @@ def do_test(self):
9172
process, breakpoints[i])
9273

9374
self.assertTrue(len(threads) == 1)
94-
self.check_expression("i", str(i), use_summary=False)
75+
lldbutil.check_expression(self, self.frame(), "i", str(i), use_summary=False)
9576

9677
self.runCmd("continue")
9778

@@ -127,10 +108,8 @@ def do_ivar_test(self):
127108
process, breakpoints[i])
128109

129110
self.assertTrue(len(threads) == 1)
130-
self.check_expression(
131-
"m_t", str(class_bkpts[i]), use_summary=False)
132-
self.check_expression(
133-
"m_s.m_s", str(class_bkpts[i]), use_summary=False)
111+
lldbutil.check_expression(self, self.frame(), "m_t", str(class_bkpts[i]), use_summary=False)
112+
lldbutil.check_expression(self, self.frame(), "m_s.m_s", str(class_bkpts[i]), use_summary=False)
134113

135114
self.runCmd("continue")
136115

lldb/test/API/lang/swift/expression/overload/TestDefiningOverloadedFunctions.py

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,6 @@ class TestDefiningOverloadedFunctions(TestBase):
2424

2525
mydir = TestBase.compute_mydir(__file__)
2626

27-
def check_expression(self, expression, expected_result, use_summary=True):
28-
value = self.frame().EvaluateExpression(expression)
29-
self.assertTrue(value.IsValid(), expression + "returned a valid value")
30-
if self.TraceOn():
31-
print(value.GetSummary())
32-
print(value.GetValue())
33-
if use_summary:
34-
answer = value.GetSummary()
35-
else:
36-
answer = value.GetValue()
37-
report_str = "%s expected: %s got: %s" % (
38-
expression, expected_result, answer)
39-
self.assertTrue(answer == expected_result, report_str)
40-
4127
@swiftTest
4228
def test_simple_overload_expressions(self):
4329
"""Test defining overloaded functions"""
@@ -51,14 +37,13 @@ def test_simple_overload_expressions(self):
5137
error = value_obj.GetError()
5238
self.assertSuccess(error)
5339

54-
self.check_expression("$overload(10)", "1", False)
40+
lldbutil.check_expression(self, self.frame(), "$overload(10)", "1", use_summary=False)
5541

5642
# Here's the second function:
5743
value_obj = self.frame().EvaluateExpression(
5844
"func $overload(_ a: String) -> Int { return 2 } \n 1")
5945
error = value_obj.GetError()
6046
self.assertSuccess(error)
6147

62-
self.check_expression('$overload(10)', '1', False)
63-
self.check_expression('$overload("some string")', '2', False)
64-
48+
lldbutil.check_expression(self, self.frame(), '$overload(10)', '1', use_summary=False)
49+
lldbutil.check_expression(self, self.frame(), '$overload("some string")', '2', use_summary=False)

lldb/test/API/lang/swift/expression/protocol_extension/TestExprInProtocolExtension.py

Lines changed: 15 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,6 @@ class TestSwiftExprInProtocolExtension(TestBase):
2424

2525
mydir = TestBase.compute_mydir(__file__)
2626

27-
def check_expression(self, expression, expected_result, use_summary=True):
28-
value = self.frame().EvaluateExpression(
29-
expression, lldb.eDynamicCanRunTarget)
30-
self.assertTrue(value.IsValid(), expression + "returned a valid value")
31-
if use_summary:
32-
answer = value.GetSummary()
33-
else:
34-
answer = value.GetValue()
35-
report_str = "%s expected: %s got: %s" % (
36-
expression, expected_result, answer)
37-
if answer != expected_result:
38-
print(report_str)
39-
print(value.GetError())
40-
41-
self.assertTrue(answer == expected_result, report_str)
42-
4327
def continue_to_bkpt(self, process, bkpt):
4428
threads = lldbutil.continue_to_breakpoint(process, bkpt)
4529
self.assertTrue(len(threads) == 1)
@@ -83,9 +67,9 @@ def test_protocol_extension(self):
8367

8468
# Check that we can evaluate expressions correctly in the struct
8569
# method.
86-
self.check_expression("self.x", "10", False)
87-
self.check_expression("self.y", '"Hello world"', True)
88-
self.check_expression("local_var", "111", False)
70+
lldbutil.check_expression(self, self.frame(), "self.x", "10", False)
71+
lldbutil.check_expression(self, self.frame(), "self.y", '"Hello world"', True)
72+
lldbutil.check_expression(self, self.frame(), "local_var", "111", False)
8973

9074
# And check that we got the type of self right:
9175
self_var = self.frame().EvaluateExpression(
@@ -98,16 +82,16 @@ def test_protocol_extension(self):
9882
# Now continue to the static method and check things there:
9983
self.continue_to_bkpt(process, static_bkpt)
10084

101-
self.check_expression("self.cvar", "333", False)
102-
self.check_expression("local_var", "222", False)
85+
lldbutil.check_expression(self, self.frame(), "self.cvar", "333", False)
86+
lldbutil.check_expression(self, self.frame(), "local_var", "222", False)
10387

10488
# This continues to the class version:
10589
self.continue_to_bkpt(process, method_bkpt)
10690
# Check that we can evaluate expressions correctly in the struct
10791
# method.
108-
self.check_expression("self.x", "10", False)
109-
self.check_expression("self.y", '"Hello world"', True)
110-
self.check_expression("local_var", "111", False)
92+
lldbutil.check_expression(self, self.frame(), "self.x", "10", False)
93+
lldbutil.check_expression(self, self.frame(), "self.y", '"Hello world"', True)
94+
lldbutil.check_expression(self, self.frame(), "local_var", "111", False)
11195

11296
# And check that we got the type of self right:
11397
self_var = self.frame().EvaluateExpression(
@@ -120,16 +104,16 @@ def test_protocol_extension(self):
120104
# Now continue to the static method and check things there:
121105
self.continue_to_bkpt(process, static_bkpt)
122106

123-
self.check_expression("self.cvar", "333", False)
124-
self.check_expression("local_var", "222", False)
107+
lldbutil.check_expression(self, self.frame(), "self.cvar", "333", False)
108+
lldbutil.check_expression(self, self.frame(), "local_var", "222", False)
125109

126110
# This continues to the enum version:
127111
self.continue_to_bkpt(process, method_bkpt)
128112
# Check that we can evaluate expressions correctly in the struct
129113
# method.
130-
self.check_expression("self.x", "10", False)
131-
self.check_expression("self.y", '"Hello world"', True)
132-
self.check_expression("local_var", "111", False)
114+
lldbutil.check_expression(self, self.frame(), "self.x", "10", False)
115+
lldbutil.check_expression(self, self.frame(), "self.y", '"Hello world"', True)
116+
lldbutil.check_expression(self, self.frame(), "local_var", "111", False)
133117

134118
# And check that we got the type of self right:
135119
self_var = self.frame().EvaluateExpression(
@@ -142,7 +126,5 @@ def test_protocol_extension(self):
142126
# Now continue to the static method and check things there:
143127
self.continue_to_bkpt(process, static_bkpt)
144128

145-
self.check_expression("self.cvar", "333", False)
146-
self.check_expression("local_var", "222", False)
147-
148-
129+
lldbutil.check_expression(self, self.frame(), "self.cvar", "333", False)
130+
lldbutil.check_expression(self, self.frame(), "local_var", "222", False)

lldb/test/API/lang/swift/expression/scopes/TestExpressionScopes.py

Lines changed: 16 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,6 @@ def setUp(self):
3535
self.main_source = "main.swift"
3636
self.main_source_spec = lldb.SBFileSpec(self.main_source)
3737

38-
def check_expression(self, expression, expected_result, use_summary=True):
39-
value = self.frame().EvaluateExpression(expression)
40-
self.assertTrue(value.IsValid(), expression + "returned a valid value")
41-
if use_summary:
42-
answer = value.GetSummary()
43-
else:
44-
answer = value.GetValue()
45-
report_str = "%s expected: %s got: %s" % (
46-
expression, expected_result, answer)
47-
if answer != expected_result:
48-
print(report_str)
49-
print(value.GetError())
50-
51-
self.assertTrue(answer == expected_result, report_str)
52-
5338
def continue_to_bkpt(self, process, bkpt):
5439
threads = lldbutil.continue_to_breakpoint(process, bkpt)
5540
self.assertTrue(len(threads) == 1)
@@ -92,19 +77,19 @@ def do_test(self):
9277

9378
self.assertTrue(len(threads) == 1)
9479

95-
self.check_expression("in_class_a", "20", use_summary=False)
96-
self.check_expression("self.in_class_a", "20", use_summary=False)
80+
lldbutil.check_expression(self, self.frame(), "in_class_a", "20", use_summary=False)
81+
lldbutil.check_expression(self, self.frame(), "self.in_class_a", "20", use_summary=False)
9782

9883
# Disable the init breakpoint so we don't have to hit it again:
9984
init_bkpt.SetEnabled(False)
10085

10186
# Now continue to shadowed_in_a:
10287
self.continue_to_bkpt(process, shadow_a_bkpt)
10388

104-
self.check_expression("in_class_a", "10", use_summary=False)
105-
self.check_expression("self.in_class_a", "20", use_summary=False)
106-
self.check_expression("self.also_in_a", "21", use_summary=False)
107-
self.check_expression("also_in_a", "21", use_summary=False)
89+
lldbutil.check_expression(self, self.frame(), "in_class_a", "10", use_summary=False)
90+
lldbutil.check_expression(self, self.frame(), "self.in_class_a", "20", use_summary=False)
91+
lldbutil.check_expression(self, self.frame(), "self.also_in_a", "21", use_summary=False)
92+
lldbutil.check_expression(self, self.frame(), "also_in_a", "21", use_summary=False)
10893

10994
shadow_a_bkpt.SetEnabled(False)
11095

@@ -115,10 +100,10 @@ def do_test(self):
115100

116101
self.continue_to_bkpt(process, static_bkpt)
117102

118-
self.check_expression("input", "10", use_summary=False)
103+
lldbutil.check_expression(self, self.frame(), "input", "10", use_summary=False)
119104
# This test fails on Bryce. The self metatype doesn't generate a valid
120105
# type.
121-
self.check_expression("self.return_ten()", "10", use_summary=False)
106+
lldbutil.check_expression(self, self.frame(), "self.return_ten()", "10", use_summary=False)
122107
static_bkpt.SetEnabled(False)
123108

124109
# Now run into the setters & getters:
@@ -127,23 +112,23 @@ def do_test(self):
127112
self.assertTrue(set_bkpt.GetNumLocations() > 0, VALID_BREAKPOINT)
128113

129114
self.continue_to_bkpt(process, set_bkpt)
130-
self.check_expression("self.backing_int", "10", use_summary=False)
115+
lldbutil.check_expression(self, self.frame(), "self.backing_int", "10", use_summary=False)
131116
set_bkpt.SetEnabled(False)
132117

133118
get_bkpt = target.BreakpointCreateBySourceRegex(
134119
'In get.', self.main_source_spec)
135120
self.assertTrue(get_bkpt.GetNumLocations() > 0, VALID_BREAKPOINT)
136121

137122
self.continue_to_bkpt(process, get_bkpt)
138-
self.check_expression("self.backing_int", "41", use_summary=False)
123+
lldbutil.check_expression(self, self.frame(), "self.backing_int", "41", use_summary=False)
139124
get_bkpt.SetEnabled(False)
140125

141126
deinit_bkpt = target.BreakpointCreateBySourceRegex(
142127
'In deinit.', self.main_source_spec)
143128
self.assertTrue(deinit_bkpt.GetNumLocations() > 0, VALID_BREAKPOINT)
144129

145130
self.continue_to_bkpt(process, deinit_bkpt)
146-
self.check_expression("self.backing_int", "41", use_summary=False)
131+
lldbutil.check_expression(self, self.frame(), "self.backing_int", "41", use_summary=False)
147132
deinit_bkpt.SetEnabled(False)
148133

149134
# Now let's try the subscript getter & make sure that that works:
@@ -155,7 +140,7 @@ def do_test(self):
155140
VALID_BREAKPOINT)
156141

157142
self.continue_to_bkpt(process, str_sub_get_bkpt)
158-
self.check_expression("self.backing_int", "10", use_summary=False)
143+
lldbutil.check_expression(self, self.frame(), "self.backing_int", "10", use_summary=False)
159144

160145
str_sub_get_bkpt.SetEnabled(False)
161146

@@ -166,11 +151,10 @@ def do_test(self):
166151
self.assertTrue(closure_bkpt.GetNumLocations() > 0, VALID_BREAKPOINT)
167152

168153
self.continue_to_bkpt(process, closure_bkpt)
169-
self.check_expression("self.backing_int", "10", use_summary=False)
170-
self.check_expression("a_string", '"abcde"', use_summary=True)
154+
lldbutil.check_expression(self, self.frame(), "self.backing_int", "10", use_summary=False)
155+
lldbutil.check_expression(self, self.frame(), "a_string", '"abcde"', use_summary=True)
171156

172157
# Now set a breakpoint in the struct method and run to there:
173158
self.continue_by_pattern('Break here in struct')
174-
self.check_expression("a", "\"foo\"", use_summary=True)
175-
self.check_expression("self.b", "5", use_summary=False)
176-
159+
lldbutil.check_expression(self, self.frame(), "a", "\"foo\"", use_summary=True)
160+
lldbutil.check_expression(self, self.frame(), "self.b", "5", use_summary=False)

0 commit comments

Comments
 (0)