1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
"""
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 FoundationTestCase2(TestBase):
mydir = TestBase.compute_mydir(__file__)
def test_expr_commands(self):
"""More expression commands for objective-c."""
self.build()
exe = self.getBuildArtifact("a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
lines = []
lines.append(
line_number(
'main.m',
'// Break here for selector: tests'))
lines.append(
line_number(
'main.m',
'// Break here for NSArray tests'))
lines.append(
line_number(
'main.m',
'// Break here for NSString tests'))
lines.append(
line_number(
'main.m',
'// Break here for description test'))
lines.append(
line_number(
'main.m',
'// Set break point at this line'))
# Create a bunch of breakpoints.
for line in lines:
lldbutil.run_break_set_by_file_and_line(
self, "main.m", line, num_expected_locations=1, loc_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
# Test_Selector:
self.runCmd("thread backtrace")
self.expect("expression (char *)sel_getName(sel)",
substrs=["(char *)",
"length"])
self.runCmd("process continue")
# Test_NSArray:
self.runCmd("thread backtrace")
self.runCmd("process continue")
# Test_NSString:
self.runCmd("thread backtrace")
self.runCmd("process continue")
# Test_MyString:
self.runCmd("thread backtrace")
self.expect("expression (char *)sel_getName(_cmd)",
substrs=["(char *)",
"description"])
self.runCmd("process continue")
|