summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py')
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py164
1 files changed, 113 insertions, 51 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py b/lldb/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py
index ee5589cb96c..ee21189ab7c 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py
@@ -3,7 +3,6 @@
from __future__ import print_function
-
import unittest2
import os
import subprocess
@@ -14,6 +13,7 @@ from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class HiddenIvarsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -25,11 +25,14 @@ class HiddenIvarsTestCase(TestBase):
self.source = 'main.m'
self.line = line_number(self.source, '// breakpoint1')
# The makefile names of the shared libraries as they appear in DYLIB_NAME.
- # The names should have no loading "lib" or extension as they will be localized
+ # The names should have no loading "lib" or extension as they will be
+ # localized
self.shlib_names = ["InternalDefiner"]
@skipUnlessDarwin
- @skipIf(debug_info=no_match("dsym"), bugnumber="This test requires a stripped binary and a dSYM")
+ @skipIf(
+ debug_info=no_match("dsym"),
+ bugnumber="This test requires a stripped binary and a dSYM")
def test_expr_stripped(self):
if self.getArchitecture() == 'i386':
self.skipTest("requires modern objc runtime")
@@ -46,7 +49,9 @@ class HiddenIvarsTestCase(TestBase):
self.expr(False)
@skipUnlessDarwin
- @skipIf(debug_info=no_match("dsym"), bugnumber="This test requires a stripped binary and a dSYM")
+ @skipIf(
+ debug_info=no_match("dsym"),
+ bugnumber="This test requires a stripped binary and a dSYM")
def test_frame_variable_stripped(self):
if self.getArchitecture() == 'i386':
self.skipTest("requires modern objc runtime")
@@ -70,14 +75,22 @@ class HiddenIvarsTestCase(TestBase):
else:
self.build()
self.common_setup(False)
- self.expect("frame variable k->bar", VARIABLES_DISPLAYED_CORRECTLY, substrs = ["= 3"])
-
+ self.expect(
+ "frame variable k->bar",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["= 3"])
+
def common_setup(self, strip):
-
+
if strip:
- self.assertTrue(subprocess.call(['/usr/bin/strip', '-Sx', 'libInternalDefiner.dylib']) == 0, 'stripping dylib succeeded')
- self.assertTrue(subprocess.call(['/bin/rm', '-rf', 'libInternalDefiner.dylib.dSYM']) == 0, 'remove dylib dSYM file succeeded')
- self.assertTrue(subprocess.call(['/usr/bin/strip', '-Sx', 'a.out']) == 0, 'stripping a.out succeeded')
+ self.assertTrue(subprocess.call(
+ ['/usr/bin/strip', '-Sx', 'libInternalDefiner.dylib']) == 0, 'stripping dylib succeeded')
+ self.assertTrue(subprocess.call(['/bin/rm',
+ '-rf',
+ 'libInternalDefiner.dylib.dSYM']) == 0,
+ 'remove dylib dSYM file succeeded')
+ self.assertTrue(subprocess.call(
+ ['/usr/bin/strip', '-Sx', 'a.out']) == 0, 'stripping a.out succeeded')
# Create a target by the debugger.
target = self.dbg.CreateTarget("a.out")
self.assertTrue(target, VALID_TARGET)
@@ -85,91 +98,140 @@ class HiddenIvarsTestCase(TestBase):
# Create the breakpoint inside function 'main'.
breakpoint = target.BreakpointCreateByLocation(self.source, self.line)
self.assertTrue(breakpoint, VALID_BREAKPOINT)
-
- # Register our shared libraries for remote targets so they get automatically uploaded
- environment = self.registerSharedLibrariesWithTarget(target, self.shlib_names)
+
+ # Register our shared libraries for remote targets so they get
+ # automatically uploaded
+ environment = self.registerSharedLibrariesWithTarget(
+ target, self.shlib_names)
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, environment, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, environment, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
-
+
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
# Break inside the foo function which takes a bar_ptr argument.
- lldbutil.run_break_set_by_file_and_line (self, "main.m", self.line, num_expected_locations=1, loc_exact=True)
+ lldbutil.run_break_set_by_file_and_line(
+ self, "main.m", self.line, num_expected_locations=1, loc_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
# The stop reason of the thread should be breakpoint.
self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ['stopped',
- 'stop reason = breakpoint'])
+ substrs=['stopped',
+ 'stop reason = breakpoint'])
# The breakpoint should have a hit count of 1.
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
- substrs = [' resolved, hit count = 1'])
+ substrs=[' resolved, hit count = 1'])
def expr(self, strip):
self.common_setup(strip)
# This should display correctly.
- self.expect("expression (j->_definer->foo)", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["= 4"])
+ self.expect(
+ "expression (j->_definer->foo)",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["= 4"])
- self.expect("expression (j->_definer->bar)", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["= 5"])
+ self.expect(
+ "expression (j->_definer->bar)",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["= 5"])
if strip:
- self.expect("expression *(j->_definer)", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["foo = 4"])
+ self.expect(
+ "expression *(j->_definer)",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["foo = 4"])
else:
- self.expect("expression *(j->_definer)", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["foo = 4", "bar = 5"])
+ self.expect(
+ "expression *(j->_definer)",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "foo = 4",
+ "bar = 5"])
self.expect("expression (k->foo)", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["= 2"])
+ substrs=["= 2"])
self.expect("expression (k->bar)", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["= 3"])
+ substrs=["= 3"])
- self.expect("expression k.filteredDataSource", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = [' = 0x', '"2 elements"'])
+ self.expect(
+ "expression k.filteredDataSource",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ ' = 0x',
+ '"2 elements"'])
if strip:
self.expect("expression *(k)", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["foo = 2", ' = 0x', '"2 elements"'])
- else:
- self.expect("expression *(k)", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["foo = 2", "bar = 3", '_filteredDataSource = 0x', '"2 elements"'])
+ substrs=["foo = 2", ' = 0x', '"2 elements"'])
+ else:
+ self.expect(
+ "expression *(k)",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "foo = 2",
+ "bar = 3",
+ '_filteredDataSource = 0x',
+ '"2 elements"'])
def frame_var(self, strip):
self.common_setup(strip)
# This should display correctly.
- self.expect("frame variable j->_definer->foo", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["= 4"])
+ self.expect(
+ "frame variable j->_definer->foo",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["= 4"])
if not strip:
- self.expect("frame variable j->_definer->bar", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["= 5"])
-
+ self.expect(
+ "frame variable j->_definer->bar",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["= 5"])
+
if strip:
- self.expect("frame variable *j->_definer", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["foo = 4"])
+ self.expect(
+ "frame variable *j->_definer",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["foo = 4"])
else:
- self.expect("frame variable *j->_definer", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["foo = 4", "bar = 5"])
+ self.expect(
+ "frame variable *j->_definer",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "foo = 4",
+ "bar = 5"])
self.expect("frame variable k->foo", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["= 2"])
+ substrs=["= 2"])
- self.expect("frame variable k->_filteredDataSource", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = [' = 0x', '"2 elements"'])
+ self.expect(
+ "frame variable k->_filteredDataSource",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ ' = 0x',
+ '"2 elements"'])
if strip:
- self.expect("frame variable *k", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["foo = 2", '_filteredDataSource = 0x', '"2 elements"'])
+ self.expect(
+ "frame variable *k",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "foo = 2",
+ '_filteredDataSource = 0x',
+ '"2 elements"'])
else:
- self.expect("frame variable *k", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["foo = 2", "bar = 3", '_filteredDataSource = 0x', '"2 elements"'])
+ self.expect(
+ "frame variable *k",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "foo = 2",
+ "bar = 3",
+ '_filteredDataSource = 0x',
+ '"2 elements"'])
OpenPOWER on IntegriCloud