diff options
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethodsString.py')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethodsString.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethodsString.py b/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethodsString.py new file mode 100644 index 00000000000..e2c17006350 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethodsString.py @@ -0,0 +1,54 @@ +""" +Test more expression command sequences with objective-c. +""" + +from __future__ import print_function + + +import lldb +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + + +@skipUnlessDarwin +class FoundationTestCaseString(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + def test_NSString_expr_commands(self): + """Test expression commands for NSString.""" + self.build() + self.target, process, thread, bkpt = lldbutil.run_to_source_breakpoint( + self, '// Break here for NSString tests', + lldb.SBFileSpec('main.m', False)) + + # Test_NSString: + self.runCmd("thread backtrace") + self.expect("expression (int)[str length]", + patterns=["\(int\) \$.* ="]) + self.expect("expression (int)[str_id length]", + patterns=["\(int\) \$.* ="]) + self.expect("expression (id)[str description]", + patterns=["\(id\) \$.* = 0x"]) + self.expect("expression (id)[str_id description]", + patterns=["\(id\) \$.* = 0x"]) + self.expect("expression str.length") + self.expect('expression str = @"new"') + self.runCmd("image lookup -t NSString") + self.expect('expression str = (id)[NSString stringWithCString: "new"]') + self.runCmd("process continue") + + @expectedFailureAll(archs=["i[3-6]86"], bugnumber="<rdar://problem/28814052>") + def test_MyString_dump_with_runtime(self): + """Test dump of a known Objective-C object by dereferencing it.""" + self.build() + self.target, process, thread, bkpt = lldbutil.run_to_source_breakpoint( + self, '// Set break point at this line', + lldb.SBFileSpec('main.m', False)) + self.expect( + "expression --show-types -- *my", + patterns=[ + "\(MyString\) \$.* = ", + "\(MyBase\)"]) + self.runCmd("process continue") |