1*99451b44SJordan Rupprecht""" 2*99451b44SJordan RupprechtTest more expression command sequences with objective-c. 3*99451b44SJordan Rupprecht""" 4*99451b44SJordan Rupprecht 5*99451b44SJordan Rupprecht 6*99451b44SJordan Rupprecht 7*99451b44SJordan Rupprechtimport lldb 8*99451b44SJordan Rupprechtfrom lldbsuite.test.decorators import * 9*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import * 10*99451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil 11*99451b44SJordan Rupprecht 12*99451b44SJordan Rupprecht 13*99451b44SJordan Rupprechtclass FoundationTestCaseString(TestBase): 14*99451b44SJordan Rupprecht 15*99451b44SJordan Rupprecht def test_NSString_expr_commands(self): 16*99451b44SJordan Rupprecht """Test expression commands for NSString.""" 17*99451b44SJordan Rupprecht self.build() 18*99451b44SJordan Rupprecht self.target, process, thread, bkpt = lldbutil.run_to_source_breakpoint( 19*99451b44SJordan Rupprecht self, '// Break here for NSString tests', 20*99451b44SJordan Rupprecht lldb.SBFileSpec('main.m', False)) 21*99451b44SJordan Rupprecht 22*99451b44SJordan Rupprecht # Test_NSString: 23*99451b44SJordan Rupprecht self.runCmd("thread backtrace") 24*99451b44SJordan Rupprecht self.expect("expression (int)[str length]", 25*99451b44SJordan Rupprecht patterns=["\(int\) \$.* ="]) 26*99451b44SJordan Rupprecht self.expect("expression (int)[str_id length]", 27*99451b44SJordan Rupprecht patterns=["\(int\) \$.* ="]) 28*99451b44SJordan Rupprecht self.expect("expression (id)[str description]", 29*99451b44SJordan Rupprecht patterns=["\(id\) \$.* = 0x"]) 30*99451b44SJordan Rupprecht self.expect("expression (id)[str_id description]", 31*99451b44SJordan Rupprecht patterns=["\(id\) \$.* = 0x"]) 32*99451b44SJordan Rupprecht self.expect("expression str.length") 33*99451b44SJordan Rupprecht self.expect('expression str = @"new"') 34*99451b44SJordan Rupprecht self.runCmd("image lookup -t NSString") 35*99451b44SJordan Rupprecht self.expect('expression str = (id)[NSString stringWithCString: "new"]') 36*99451b44SJordan Rupprecht self.runCmd("process continue") 37*99451b44SJordan Rupprecht 38*99451b44SJordan Rupprecht @expectedFailureAll(archs=["i[3-6]86"], bugnumber="<rdar://problem/28814052>") 39*99451b44SJordan Rupprecht def test_MyString_dump_with_runtime(self): 40*99451b44SJordan Rupprecht """Test dump of a known Objective-C object by dereferencing it.""" 41*99451b44SJordan Rupprecht self.build() 42*99451b44SJordan Rupprecht self.target, process, thread, bkpt = lldbutil.run_to_source_breakpoint( 43*99451b44SJordan Rupprecht self, '// Set break point at this line', 44*99451b44SJordan Rupprecht lldb.SBFileSpec('main.m', False)) 45*99451b44SJordan Rupprecht self.expect( 46*99451b44SJordan Rupprecht "expression --show-types -- *my", 47*99451b44SJordan Rupprecht patterns=[ 48*99451b44SJordan Rupprecht "\(MyString\) \$.* = ", 49*99451b44SJordan Rupprecht "\(MyBase\)"]) 50*99451b44SJordan Rupprecht self.runCmd("process continue") 51