Skip to content

Commit d476af3

Browse files
committed
Enable additional DWARFImporter tests.
1 parent 389d789 commit d476af3

File tree

2 files changed

+68
-14
lines changed

2 files changed

+68
-14
lines changed

lldb/packages/Python/lldbsuite/test/lang/swift/dwarfimporter/C/TestSwiftDWARFImporterC.py

Lines changed: 43 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,21 +51,56 @@ def test_dwarf_importer(self):
5151
lldbutil.check_variable(self,
5252
target.FindFirstGlobalVariable("point"),
5353
typename='__ObjC.Point', num_children=2)
54-
self.expect("ta v point", substrs=["x = 1", "y = 2"])
55-
self.expect("ta v enumerator", substrs=[".yellow"])
56-
self.expect("ta v pureSwiftStruct", substrs=["pure swift"])
57-
self.expect("ta v swiftStructCMember",
54+
self.expect("target variable point", substrs=["x = 1", "y = 2"])
55+
self.expect("target variable enumerator", substrs=[".yellow"])
56+
self.expect("target variable pureSwiftStruct", substrs=["pure swift"])
57+
self.expect("target variable swiftStructCMember",
5858
substrs=["point", "x = 3", "y = 4",
5959
"sub", "x = 1", "y = 2", "z = 3",
6060
"swift struct c member"])
61-
self.expect("ta v typedef", substrs=["x = 5", "y = 6"])
62-
self.expect("ta v union", substrs=["(DoubleLongUnion)", "long_val = 42"])
63-
self.expect("ta v fromSubmodule",
61+
self.expect("target variable typedef", substrs=["x = 5", "y = 6"])
62+
self.expect("target variable union",
63+
substrs=["(DoubleLongUnion)", "long_val = 42"])
64+
self.expect("target variable fromSubmodule",
6465
substrs=["(FromSubmodule)", "x = 1", "y = 2", "z = 3"])
6566
process.Clear()
6667
target.Clear()
6768
lldb.SBDebugger.MemoryPressureDetected()
6869

70+
@skipIf(archs=['ppc64le'], bugnumber='SR-10214')
71+
@swiftTest
72+
# This test needs a working Remote Mirrors implementation.
73+
@skipIf(oslist=['linux', 'windows'])
74+
def test_dwarf_importer_exprs(self):
75+
lldb.SBDebugger.MemoryPressureDetected()
76+
self.runCmd("settings set symbols.use-swift-dwarfimporter true")
77+
self.build()
78+
target, process, thread, bkpt = lldbutil.run_to_source_breakpoint(
79+
self, 'break here', lldb.SBFileSpec('main.swift'))
80+
lldbutil.check_variable(self,
81+
target.FindFirstGlobalVariable("pureSwift"),
82+
value="42")
83+
lldbutil.check_variable(self,
84+
target.FindFirstGlobalVariable("point"),
85+
typename='__ObjC.Point', num_children=2)
86+
self.expect("expr point", substrs=["x = 1", "y = 2"])
87+
self.expect("expr enumerator", substrs=[".yellow"])
88+
self.expect("expr pureSwiftStruct", substrs=["pure swift"])
89+
self.expect("expr swiftStructCMember",
90+
substrs=["point", "x = 3", "y = 4",
91+
"sub", "x = 1", "y = 2", "z = 3",
92+
"swift struct c member"])
93+
self.expect("expr typedef", substrs=["x = 5", "y = 6"])
94+
# FIXME: lookup fails for:
95+
# a.union.unsafeMutableAddressor : __C.DoubleLongUnion
96+
self.expect("expr union", error=True)
97+
#self.expect("expr union", substrs=["(DoubleLongUnion)", "long_val = 42"])
98+
self.expect("expr fromSubmodule",
99+
substrs=["(FromSubmodule)", "x = 1", "y = 2", "z = 3"])
100+
process.Clear()
101+
target.Clear()
102+
lldb.SBDebugger.MemoryPressureDetected()
103+
69104
@skipIf(archs=['ppc64le'], bugnumber='SR-10214')
70105
@swiftTest
71106
def test_negative(self):
@@ -81,7 +116,7 @@ def test_negative(self):
81116
target.FindFirstGlobalVariable("point"),
82117
typename="Point", num_children=2)
83118
# This works as a Clang type.
84-
self.expect("ta v point", substrs=["x = 1", "y = 2"])
119+
self.expect("target variable point", substrs=["x = 1", "y = 2"])
85120
# This can't be resolved.
86121
lldbutil.check_variable(self,
87122
target.FindFirstGlobalVariable("swiftStructCMember"),
@@ -97,4 +132,3 @@ def test_negative(self):
97132
process.Clear()
98133
target.Clear()
99134
lldb.SBDebugger.MemoryPressureDetected()
100-
self.runCmd("settings set symbols.use-swift-dwarfimporter true")

lldb/packages/Python/lldbsuite/test/lang/swift/dwarfimporter/Objective-C/TestSwiftDWARFImporterObjC.py

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def build(self):
3737

3838
@skipUnlessDarwin
3939
@swiftTest
40-
def test_dwarf_importer(self):
40+
def test(self):
4141
self.runCmd("settings set symbols.use-swift-dwarfimporter true")
4242

4343
self.build()
@@ -52,12 +52,32 @@ def test_dwarf_importer(self):
5252
num_children=0)
5353
self.expect("target var obj", substrs=["ObjCClass",
5454
"private_ivar", "42"])
55-
# FIXME: This triggers an assertion in ClangImporter:
56-
# "ObjC property without getter"
57-
#self.expect("target var swiftChild", substrs=["ObjCClass",
58-
# "private_ivar", "42"])
55+
56+
self.expect("target var swiftChild", substrs=["ObjCClass",
57+
"private_ivar", "42"])
5958
# This is a Clang type, since Clang doesn't generate DWARF for protocols.
6059
self.expect("target var -d no-dyn proto", substrs=["(id)", "proto"])
6160
# This is a Swift type.
6261
self.expect("target var -d run proto", substrs=["(ProtoImpl)", "proto"])
6362
self.expect("target var -O proto", substrs=["<ProtoImpl"])
63+
64+
@skipUnlessDarwin
65+
@swiftTest
66+
def test_expr(self):
67+
self.runCmd("settings set symbols.use-swift-dwarfimporter true")
68+
69+
self.build()
70+
target, process, thread, bkpt = lldbutil.run_to_source_breakpoint(
71+
self, 'break here', lldb.SBFileSpec('main.swift'))
72+
lldbutil.check_variable(self,
73+
target.FindFirstGlobalVariable("pureSwift"),
74+
value="42")
75+
lldbutil.check_variable(self,
76+
target.FindFirstGlobalVariable("obj"),
77+
typename="Swift.Optional<__ObjC.ObjCClass>",
78+
num_children=0)
79+
self.expect("expr obj", substrs=["ObjCClass",
80+
"private_ivar", "42"])
81+
# FIXME: Removing this makes the expression below fail!
82+
self.expect("target var swiftChild")
83+
self.expect("expr swiftChild!.number", substrs=["42"])

0 commit comments

Comments
 (0)