aboutsummaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/test/lang/objc
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2017-01-02 19:26:05 +0000
committerDimitry Andric <dim@FreeBSD.org>2017-01-02 19:26:05 +0000
commit14f1b3e8826ce43b978db93a62d1166055db5394 (patch)
tree0a00ad8d3498783fe0193f3b656bca17c4c8697d /packages/Python/lldbsuite/test/lang/objc
parent4ee8c119c71a06dcad1e0fecc8c675e480e59337 (diff)
downloadsrc-14f1b3e8826ce43b978db93a62d1166055db5394.tar.gz
src-14f1b3e8826ce43b978db93a62d1166055db5394.zip
Vendor import of lldb trunk r290819:vendor/lldb/lldb-trunk-r290819
Notes
Notes: svn path=/vendor/lldb/dist/; revision=311128 svn path=/vendor/lldb/lldb-trunk-r290819/; revision=311129; tag=vendor/lldb/lldb-trunk-r290819
Diffstat (limited to 'packages/Python/lldbsuite/test/lang/objc')
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/bitfield_ivars/TestBitfieldIvars.py10
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/blocks/TestObjCIvarsInBlocks.py133
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/forward-decl/TestForwardDecl.py26
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/foundation/TestConstStrings.py26
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/foundation/TestFoundationDisassembly.py69
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods.py188
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py130
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/foundation/TestObjectDescriptionAPI.py22
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/foundation/TestRuntimeTypes.py30
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/foundation/TestSymbolTable.py8
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/global_ptrs/TestGlobalObjects.py22
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py164
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py35
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/modules-auto-import/TestModulesAutoImport.py20
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py33
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py25
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/modules/TestObjCModules.py51
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc++/TestObjCXX.py10
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py33
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py34
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-checker/TestObjCCheckers.py35
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-class-method/TestObjCClassMethod.py39
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py64
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py167
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py67
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-ivar-protocols/TestIvarProtocols.py4
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py47
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py173
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-optimized/TestObjcOptimized.py29
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-property/TestObjCProperty.py98
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-runtime-ivars/TestRuntimeIvars.py4
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py51
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-static-method/TestObjCStaticMethod.py47
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py173
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py40
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m8
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-struct-return/TestObjCStructReturn.py34
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/objc-super/TestObjCSuper.py43
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/print-obj/TestPrintObj.py16
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py12
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/rdar-10967107/TestRdar10967107.py40
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py58
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/rdar-12408181/TestRdar12408181.py31
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/real-definition/TestRealDefinition.py54
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/self/TestObjCSelf.py20
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py40
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/unicode-string/TestUnicodeString.py6
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/unicode-string/main.m5
-rw-r--r--packages/Python/lldbsuite/test/lang/objc/variadic_methods/TestVariadicMethods.py4
49 files changed, 1581 insertions, 897 deletions
diff --git a/packages/Python/lldbsuite/test/lang/objc/bitfield_ivars/TestBitfieldIvars.py b/packages/Python/lldbsuite/test/lang/objc/bitfield_ivars/TestBitfieldIvars.py
index 01bf241b0381..4a3311fb5f6d 100644
--- a/packages/Python/lldbsuite/test/lang/objc/bitfield_ivars/TestBitfieldIvars.py
+++ b/packages/Python/lldbsuite/test/lang/objc/bitfield_ivars/TestBitfieldIvars.py
@@ -1,4 +1,12 @@
from lldbsuite.test import lldbinline
from lldbsuite.test import decorators
-lldbinline.MakeInlineTest(__file__, globals(), [decorators.skipIfFreeBSD,decorators.skipIfLinux,decorators.skipIfWindows, decorators.expectedFailureAll(bugnumber="rdar://problem/17990991")])
+lldbinline.MakeInlineTest(
+ __file__,
+ globals(),
+ [
+ decorators.skipIfFreeBSD,
+ decorators.skipIfLinux,
+ decorators.skipIfWindows,
+ decorators.expectedFailureAll(
+ bugnumber="rdar://problem/17990991")])
diff --git a/packages/Python/lldbsuite/test/lang/objc/blocks/TestObjCIvarsInBlocks.py b/packages/Python/lldbsuite/test/lang/objc/blocks/TestObjCIvarsInBlocks.py
index 9fa03071c598..74e4f3bc880d 100644
--- a/packages/Python/lldbsuite/test/lang/objc/blocks/TestObjCIvarsInBlocks.py
+++ b/packages/Python/lldbsuite/test/lang/objc/blocks/TestObjCIvarsInBlocks.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestObjCIvarsInBlocks(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -24,7 +25,9 @@ class TestObjCIvarsInBlocks(TestBase):
@skipUnlessDarwin
@add_test_categories(['pyapi'])
- @expectedFailureAll(archs=["i[3-6]86"], bugnumber="This test requires the 2.0 runtime, so it will fail on i386")
+ @expectedFailureAll(
+ archs=["i[3-6]86"],
+ bugnumber="This test requires the 2.0 runtime, so it will fail on i386")
def test_with_python_api(self):
"""Test printing the ivars of the self when captured in blocks"""
self.build()
@@ -33,72 +36,100 @@ class TestObjCIvarsInBlocks(TestBase):
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
- breakpoint = target.BreakpointCreateBySourceRegex ('// Break here inside the block.', self.class_source_file_spec)
+ breakpoint = target.BreakpointCreateBySourceRegex(
+ '// Break here inside the block.', self.class_source_file_spec)
self.assertTrue(breakpoint, VALID_BREAKPOINT)
- breakpoint_two = target.BreakpointCreateBySourceRegex ('// Break here inside the class method block.', self.class_source_file_spec)
+ breakpoint_two = target.BreakpointCreateBySourceRegex(
+ '// Break here inside the class method block.', self.class_source_file_spec)
self.assertTrue(breakpoint, VALID_BREAKPOINT)
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
- self.assertTrue (process, "Created a process.")
- self.assertTrue (process.GetState() == lldb.eStateStopped, "Stopped it too.")
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
+ self.assertTrue(process, "Created a process.")
+ self.assertTrue(
+ process.GetState() == lldb.eStateStopped,
+ "Stopped it too.")
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, breakpoint)
- self.assertTrue (len(thread_list) == 1)
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint(
+ process, breakpoint)
+ self.assertTrue(len(thread_list) == 1)
thread = thread_list[0]
-
+
frame = thread.GetFrameAtIndex(0)
- self.assertTrue (frame, "frame 0 is valid")
-
- # First use the FindVariable API to see if we can find the ivar by undecorated name:
- direct_blocky = frame.GetValueForVariablePath ("blocky_ivar")
+ self.assertTrue(frame, "frame 0 is valid")
+
+ # First use the FindVariable API to see if we can find the ivar by
+ # undecorated name:
+ direct_blocky = frame.GetValueForVariablePath("blocky_ivar")
self.assertTrue(direct_blocky, "Found direct access to blocky_ivar.")
-
- # Now get it as a member of "self" and make sure the two values are equal:
- self_var = frame.GetValueForVariablePath ("self")
- self.assertTrue (self_var, "Found self in block.")
- indirect_blocky = self_var.GetChildMemberWithName ("blocky_ivar")
- self.assertTrue (indirect_blocky, "Found blocky_ivar through self")
-
+
+ # Now get it as a member of "self" and make sure the two values are
+ # equal:
+ self_var = frame.GetValueForVariablePath("self")
+ self.assertTrue(self_var, "Found self in block.")
+ indirect_blocky = self_var.GetChildMemberWithName("blocky_ivar")
+ self.assertTrue(indirect_blocky, "Found blocky_ivar through self")
+
error = lldb.SBError()
direct_value = direct_blocky.GetValueAsSigned(error)
- self.assertTrue (error.Success(), "Got direct value for blocky_ivar")
+ self.assertTrue(error.Success(), "Got direct value for blocky_ivar")
+
+ indirect_value = indirect_blocky.GetValueAsSigned(error)
+ self.assertTrue(error.Success(), "Got indirect value for blocky_ivar")
- indirect_value = indirect_blocky.GetValueAsSigned (error)
- self.assertTrue (error.Success(), "Got indirect value for blocky_ivar")
-
- self.assertTrue (direct_value == indirect_value, "Direct and indirect values are equal.")
+ self.assertTrue(
+ direct_value == indirect_value,
+ "Direct and indirect values are equal.")
# Now make sure that we can get at the captured ivar through the expression parser.
- # Doing a little trivial math will force this into the real expression parser:
- direct_expr = frame.EvaluateExpression ("blocky_ivar + 10")
- self.assertTrue (direct_expr, "Got blocky_ivar through the expression parser")
-
- # Again, get the value through self directly and make sure they are the same:
- indirect_expr = frame.EvaluateExpression ("self->blocky_ivar + 10")
- self.assertTrue (indirect_expr, "Got blocky ivar through expression parser using self.")
-
- direct_value = direct_expr.GetValueAsSigned (error)
- self.assertTrue (error.Success(), "Got value from direct use of expression parser")
-
- indirect_value = indirect_expr.GetValueAsSigned (error)
- self.assertTrue (error.Success(), "Got value from indirect access using the expression parser")
-
- self.assertTrue (direct_value == indirect_value, "Direct ivar access and indirect through expression parser produce same value.")
+ # Doing a little trivial math will force this into the real expression
+ # parser:
+ direct_expr = frame.EvaluateExpression("blocky_ivar + 10")
+ self.assertTrue(
+ direct_expr,
+ "Got blocky_ivar through the expression parser")
+
+ # Again, get the value through self directly and make sure they are the
+ # same:
+ indirect_expr = frame.EvaluateExpression("self->blocky_ivar + 10")
+ self.assertTrue(
+ indirect_expr,
+ "Got blocky ivar through expression parser using self.")
+
+ direct_value = direct_expr.GetValueAsSigned(error)
+ self.assertTrue(
+ error.Success(),
+ "Got value from direct use of expression parser")
+
+ indirect_value = indirect_expr.GetValueAsSigned(error)
+ self.assertTrue(
+ error.Success(),
+ "Got value from indirect access using the expression parser")
+
+ self.assertTrue(
+ direct_value == indirect_value,
+ "Direct ivar access and indirect through expression parser produce same value.")
process.Continue()
- self.assertTrue (process.GetState() == lldb.eStateStopped, "Stopped at the second breakpoint.")
+ self.assertTrue(
+ process.GetState() == lldb.eStateStopped,
+ "Stopped at the second breakpoint.")
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, breakpoint_two)
- self.assertTrue (len(thread_list) == 1)
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint(
+ process, breakpoint_two)
+ self.assertTrue(len(thread_list) == 1)
thread = thread_list[0]
-
+
frame = thread.GetFrameAtIndex(0)
- self.assertTrue (frame, "frame 0 is valid")
-
+ self.assertTrue(frame, "frame 0 is valid")
+
expr = frame.EvaluateExpression("(ret)")
- self.assertTrue (expr, "Successfully got a local variable in a block in a class method.")
+ self.assertTrue(
+ expr, "Successfully got a local variable in a block in a class method.")
- ret_value_signed = expr.GetValueAsSigned (error)
+ ret_value_signed = expr.GetValueAsSigned(error)
# print('ret_value_signed = %i' % (ret_value_signed))
- self.assertTrue (ret_value_signed == 5, "The local variable in the block was what we expected.")
+ self.assertTrue(
+ ret_value_signed == 5,
+ "The local variable in the block was what we expected.")
diff --git a/packages/Python/lldbsuite/test/lang/objc/forward-decl/TestForwardDecl.py b/packages/Python/lldbsuite/test/lang/objc/forward-decl/TestForwardDecl.py
index c153f9856603..aa2b659b84b3 100644
--- a/packages/Python/lldbsuite/test/lang/objc/forward-decl/TestForwardDecl.py
+++ b/packages/Python/lldbsuite/test/lang/objc/forward-decl/TestForwardDecl.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ForwardDeclTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -25,7 +26,7 @@ class ForwardDeclTestCase(TestBase):
@skipUnlessDarwin
def test_expr(self):
self.build()
-
+
# Create a target by the debugger.
target = self.dbg.CreateTarget("a.out")
self.assertTrue(target, VALID_TARGET)
@@ -33,23 +34,26 @@ class ForwardDeclTestCase(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)
# 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'])
# This should display correctly.
self.expect("expression [j getMember]", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["= 0x"])
+ substrs=["= 0x"])
diff --git a/packages/Python/lldbsuite/test/lang/objc/foundation/TestConstStrings.py b/packages/Python/lldbsuite/test/lang/objc/foundation/TestConstStrings.py
index 4a62d6240d98..2a81c42eb503 100644
--- a/packages/Python/lldbsuite/test/lang/objc/foundation/TestConstStrings.py
+++ b/packages/Python/lldbsuite/test/lang/objc/foundation/TestConstStrings.py
@@ -6,13 +6,14 @@ parser.
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ConstStringTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -30,25 +31,30 @@ class ConstStringTestCase(TestBase):
"""Test constant string generation amd comparison by the expression parser."""
self.build(dictionary=self.d)
self.setTearDownCleanup(self.d)
-
+
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
- lldbutil.run_break_set_by_file_and_line (self, self.main_source, self.line, num_expected_locations=1, loc_exact=True)
+ lldbutil.run_break_set_by_file_and_line(
+ self,
+ self.main_source,
+ self.line,
+ num_expected_locations=1,
+ loc_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
self.expect("process status", STOPPED_DUE_TO_BREAKPOINT,
- substrs = [" at %s:%d" % (self.main_source, self.line),
- "stop reason = breakpoint"])
+ substrs=[" at %s:%d" % (self.main_source, self.line),
+ "stop reason = breakpoint"])
self.expect('expression (int)[str compare:@"hello"]',
- startstr = "(int) $0 = 0")
+ startstr="(int) $0 = 0")
self.expect('expression (int)[str compare:@"world"]',
- startstr = "(int) $1 = -1")
+ startstr="(int) $1 = -1")
# Test empty strings, too.
self.expect('expression (int)[@"" length]',
- startstr = "(int) $2 = 0")
+ startstr="(int) $2 = 0")
self.expect('expression (int)[@"123" length]',
- startstr = "(int) $3 = 3")
+ startstr="(int) $3 = 3")
diff --git a/packages/Python/lldbsuite/test/lang/objc/foundation/TestFoundationDisassembly.py b/packages/Python/lldbsuite/test/lang/objc/foundation/TestFoundationDisassembly.py
index 0867eec62ebe..51d9d22bf44a 100644
--- a/packages/Python/lldbsuite/test/lang/objc/foundation/TestFoundationDisassembly.py
+++ b/packages/Python/lldbsuite/test/lang/objc/foundation/TestFoundationDisassembly.py
@@ -5,14 +5,15 @@ Test the lldb disassemble command on foundation framework.
from __future__ import print_function
-
import unittest2
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
@skipUnlessDarwin
class FoundationDisassembleTestCase(TestBase):
@@ -20,20 +21,23 @@ class FoundationDisassembleTestCase(TestBase):
# rdar://problem/8504895
# Crash while doing 'disassemble -n "-[NSNumber descriptionWithLocale:]"
- @unittest2.skipIf(TestBase.skipLongRunningTest(), "Skip this long running test")
+ @unittest2.skipIf(
+ TestBase.skipLongRunningTest(),
+ "Skip this long running test")
def test_foundation_disasm(self):
"""Do 'disassemble -n func' on each and every 'Code' symbol entry from the Foundation.framework."""
self.build()
-
+
# Enable synchronous mode
self.dbg.SetAsync(False)
-
+
# Create a target by the debugger.
target = self.dbg.CreateTarget("a.out")
self.assertTrue(target, VALID_TARGET)
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
foundation_framework = None
@@ -43,7 +47,9 @@ class FoundationDisassembleTestCase(TestBase):
foundation_framework = module.file.fullpath
break
- self.assertTrue(foundation_framework != None, "Foundation.framework path located")
+ self.assertTrue(
+ foundation_framework is not None,
+ "Foundation.framework path located")
self.runCmd("image dump symtab '%s'" % foundation_framework)
raw_output = self.res.GetOutput()
# Now, grab every 'Code' symbol and feed it into the command:
@@ -64,7 +70,6 @@ class FoundationDisassembleTestCase(TestBase):
#print("line:", line)
#print("func:", func)
self.runCmd('disassemble -n "%s"' % func)
-
def test_simple_disasm(self):
"""Test the lldb 'disassemble' command"""
@@ -80,25 +85,45 @@ class FoundationDisassembleTestCase(TestBase):
# Stop at +[NSString stringWithFormat:].
symbol_name = "+[NSString stringWithFormat:]"
- break_results = lldbutil.run_break_set_command (self, "_regexp-break %s"%(symbol_name))
-
- lldbutil.check_breakpoint_result (self, break_results, symbol_name=symbol_name, num_locations=1)
+ break_results = lldbutil.run_break_set_command(
+ self, "_regexp-break %s" % (symbol_name))
+
+ lldbutil.check_breakpoint_result(
+ self,
+ break_results,
+ symbol_name=symbol_name,
+ num_locations=1)
# Stop at -[MyString initWithNSString:].
- lldbutil.run_break_set_by_symbol (self, '-[MyString initWithNSString:]', num_expected_locations=1, sym_exact=True)
+ lldbutil.run_break_set_by_symbol(
+ self,
+ '-[MyString initWithNSString:]',
+ num_expected_locations=1,
+ sym_exact=True)
# Stop at the "description" selector.
- lldbutil.run_break_set_by_selector (self, 'description', num_expected_locations=1, module_name='a.out')
+ lldbutil.run_break_set_by_selector(
+ self,
+ 'description',
+ num_expected_locations=1,
+ module_name='a.out')
# Stop at -[NSAutoreleasePool release].
- break_results = lldbutil.run_break_set_command (self, "_regexp-break -[NSAutoreleasePool release]")
- lldbutil.check_breakpoint_result (self, break_results, symbol_name='-[NSAutoreleasePool release]', num_locations=1)
+ break_results = lldbutil.run_break_set_command(
+ self, "_regexp-break -[NSAutoreleasePool release]")
+ lldbutil.check_breakpoint_result(
+ self,
+ break_results,
+ symbol_name='-[NSAutoreleasePool release]',
+ num_locations=1)
self.runCmd("run", RUN_SUCCEEDED)
# First stop is +[NSString stringWithFormat:].
- self.expect("thread backtrace", "Stop at +[NSString stringWithFormat:]",
- substrs = ["Foundation`+[NSString stringWithFormat:]"])
+ self.expect(
+ "thread backtrace",
+ "Stop at +[NSString stringWithFormat:]",
+ substrs=["Foundation`+[NSString stringWithFormat:]"])
# Do the disassemble for the currently stopped function.
self.runCmd("disassemble -f")
@@ -108,8 +133,10 @@ class FoundationDisassembleTestCase(TestBase):
self.runCmd("process continue")
# Followed by a.out`-[MyString initWithNSString:].
- self.expect("thread backtrace", "Stop at a.out`-[MyString initWithNSString:]",
- substrs = ["a.out`-[MyString initWithNSString:]"])
+ self.expect(
+ "thread backtrace",
+ "Stop at a.out`-[MyString initWithNSString:]",
+ substrs=["a.out`-[MyString initWithNSString:]"])
# Do the disassemble for the currently stopped function.
self.runCmd("disassemble -f")
@@ -118,7 +145,7 @@ class FoundationDisassembleTestCase(TestBase):
# Followed by -[MyString description].
self.expect("thread backtrace", "Stop at -[MyString description]",
- substrs = ["a.out`-[MyString description]"])
+ substrs=["a.out`-[MyString description]"])
# Do the disassemble for the currently stopped function.
self.runCmd("disassemble -f")
@@ -129,7 +156,7 @@ class FoundationDisassembleTestCase(TestBase):
# Followed by -[NSAutoreleasePool release].
self.expect("thread backtrace", "Stop at -[NSAutoreleasePool release]",
- substrs = ["Foundation`-[NSAutoreleasePool release]"])
+ substrs=["Foundation`-[NSAutoreleasePool release]"])
# Do the disassemble for the currently stopped function.
self.runCmd("disassemble -f")
diff --git a/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods.py b/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods.py
index 2a8e80f6d76e..d636458ce1aa 100644
--- a/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods.py
+++ b/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods.py
@@ -6,8 +6,9 @@ Also lookup objective-c data types and evaluate expressions.
from __future__ import print_function
-
-import os, os.path, time
+import os
+import os.path
+import time
import lldb
import string
from lldbsuite.test.decorators import *
@@ -15,6 +16,8 @@ from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
file_index = 0
+
+
@skipUnlessDarwin
class FoundationTestCase(TestBase):
@@ -25,7 +28,9 @@ class FoundationTestCase(TestBase):
TestBase.setUp(self)
# Find the line number to break inside main().
self.main_source = "main.m"
- self.line = line_number(self.main_source, '// Set break point at this line.')
+ self.line = line_number(
+ self.main_source,
+ '// Set break point at this line.')
def test_break(self):
"""Test setting objc breakpoints using '_regexp-break' and 'breakpoint set'."""
@@ -34,54 +39,78 @@ class FoundationTestCase(TestBase):
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
# Stop at +[NSString stringWithFormat:].
- break_results = lldbutil.run_break_set_command(self, "_regexp-break +[NSString stringWithFormat:]")
- lldbutil.check_breakpoint_result (self, break_results, symbol_name='+[NSString stringWithFormat:]', num_locations=1)
+ break_results = lldbutil.run_break_set_command(
+ self, "_regexp-break +[NSString stringWithFormat:]")
+ lldbutil.check_breakpoint_result(
+ self,
+ break_results,
+ symbol_name='+[NSString stringWithFormat:]',
+ num_locations=1)
# Stop at -[MyString initWithNSString:].
- lldbutil.run_break_set_by_symbol (self, '-[MyString initWithNSString:]', num_expected_locations=1, sym_exact=True)
+ lldbutil.run_break_set_by_symbol(
+ self,
+ '-[MyString initWithNSString:]',
+ num_expected_locations=1,
+ sym_exact=True)
# Stop at the "description" selector.
- lldbutil.run_break_set_by_selector (self, 'description', num_expected_locations=1, module_name='a.out')
+ lldbutil.run_break_set_by_selector(
+ self,
+ 'description',
+ num_expected_locations=1,
+ module_name='a.out')
# Stop at -[NSAutoreleasePool release].
- break_results = lldbutil.run_break_set_command(self, "_regexp-break -[NSAutoreleasePool release]")
- lldbutil.check_breakpoint_result (self, break_results, symbol_name='-[NSAutoreleasePool release]', num_locations=1)
+ break_results = lldbutil.run_break_set_command(
+ self, "_regexp-break -[NSAutoreleasePool release]")
+ lldbutil.check_breakpoint_result(
+ self,
+ break_results,
+ symbol_name='-[NSAutoreleasePool release]',
+ num_locations=1)
self.runCmd("run", RUN_SUCCEEDED)
# First stop is +[NSString stringWithFormat:].
- self.expect("thread backtrace", "Stop at +[NSString stringWithFormat:]",
- substrs = ["Foundation`+[NSString stringWithFormat:]"])
+ self.expect(
+ "thread backtrace",
+ "Stop at +[NSString stringWithFormat:]",
+ substrs=["Foundation`+[NSString stringWithFormat:]"])
self.runCmd("process continue")
# Second stop is still +[NSString stringWithFormat:].
- self.expect("thread backtrace", "Stop at +[NSString stringWithFormat:]",
- substrs = ["Foundation`+[NSString stringWithFormat:]"])
+ self.expect(
+ "thread backtrace",
+ "Stop at +[NSString stringWithFormat:]",
+ substrs=["Foundation`+[NSString stringWithFormat:]"])
self.runCmd("process continue")
# Followed by a.out`-[MyString initWithNSString:].
- self.expect("thread backtrace", "Stop at a.out`-[MyString initWithNSString:]",
- substrs = ["a.out`-[MyString initWithNSString:]"])
+ self.expect(
+ "thread backtrace",
+ "Stop at a.out`-[MyString initWithNSString:]",
+ substrs=["a.out`-[MyString initWithNSString:]"])
self.runCmd("process continue")
# Followed by -[MyString description].
self.expect("thread backtrace", "Stop at -[MyString description]",
- substrs = ["a.out`-[MyString description]"])
+ substrs=["a.out`-[MyString description]"])
self.runCmd("process continue")
# Followed by the same -[MyString description].
self.expect("thread backtrace", "Stop at -[MyString description]",
- substrs = ["a.out`-[MyString description]"])
+ substrs=["a.out`-[MyString description]"])
self.runCmd("process continue")
# Followed by -[NSAutoreleasePool release].
self.expect("thread backtrace", "Stop at -[NSAutoreleasePool release]",
- substrs = ["Foundation`-[NSAutoreleasePool release]"])
+ substrs=["Foundation`-[NSAutoreleasePool release]"])
# rdar://problem/8542091
# rdar://problem/8492646
@@ -92,32 +121,40 @@ class FoundationTestCase(TestBase):
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
# Stop at -[MyString description].
- lldbutil.run_break_set_by_symbol (self, '-[MyString description]', num_expected_locations=1, sym_exact=True)
+ lldbutil.run_break_set_by_symbol(
+ self,
+ '-[MyString description]',
+ num_expected_locations=1,
+ sym_exact=True)
# self.expect("breakpoint set -n '-[MyString description]", BREAKPOINT_CREATED,
-# startstr = "Breakpoint created: 1: name = '-[MyString description]', locations = 1")
+# startstr = "Breakpoint created: 1: name = '-[MyString description]',
+# locations = 1")
self.runCmd("run", RUN_SUCCEEDED)
# The backtrace should show we stop at -[MyString description].
self.expect("thread backtrace", "Stop at -[MyString description]",
- substrs = ["a.out`-[MyString description]"])
+ substrs=["a.out`-[MyString description]"])
# Lookup objc data type MyString and evaluate some expressions.
self.expect("image lookup -t NSString", DATA_TYPES_DISPLAYED_CORRECTLY,
- substrs = ['name = "NSString"',
- 'compiler_type = "@interface NSString'])
+ substrs=['name = "NSString"',
+ 'compiler_type = "@interface NSString'])
self.expect("image lookup -t MyString", DATA_TYPES_DISPLAYED_CORRECTLY,
- substrs = ['name = "MyString"',
- 'compiler_type = "@interface MyString',
- 'NSString * str;',
- 'NSDate * date;'])
-
- self.expect("frame variable --show-types --scope", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["ARG: (MyString *) self"],
- patterns = ["ARG: \(.*\) _cmd",
- "(objc_selector *)|(SEL)"])
+ substrs=['name = "MyString"',
+ 'compiler_type = "@interface MyString',
+ 'NSString * str;',
+ 'NSDate * date;'])
+
+ self.expect(
+ "frame variable --show-types --scope",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["ARG: (MyString *) self"],
+ patterns=[
+ "ARG: \(.*\) _cmd",
+ "(objc_selector *)|(SEL)"])
# rdar://problem/8651752
# don't crash trying to ask clang how many children an empty record has
@@ -126,28 +163,37 @@ class FoundationTestCase(TestBase):
# rdar://problem/8492646
# test/foundation fails after updating to tot r115023
# self->str displays nothing as output
- self.expect("frame variable --show-types self->str", VARIABLES_DISPLAYED_CORRECTLY,
- startstr = "(NSString *) self->str")
+ self.expect(
+ "frame variable --show-types self->str",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ startstr="(NSString *) self->str")
# rdar://problem/8447030
# 'frame variable self->date' displays the wrong data member
- self.expect("frame variable --show-types self->date", VARIABLES_DISPLAYED_CORRECTLY,
- startstr = "(NSDate *) self->date")
+ self.expect(
+ "frame variable --show-types self->date",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ startstr="(NSDate *) self->date")
# This should display the str and date member fields as well.
- self.expect("frame variable --show-types *self", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["(MyString) *self",
- "(NSString *) str",
- "(NSDate *) date"])
-
+ self.expect(
+ "frame variable --show-types *self",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "(MyString) *self",
+ "(NSString *) str",
+ "(NSDate *) date"])
+
# isa should be accessible.
self.expect("expression self->isa", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["(Class)"])
+ substrs=["(Class)"])
# This should fail expectedly.
- self.expect("expression self->non_existent_member",
- COMMAND_FAILED_AS_EXPECTED, error=True,
- startstr = "error: 'MyString' does not have a member named 'non_existent_member'")
+ self.expect(
+ "expression self->non_existent_member",
+ COMMAND_FAILED_AS_EXPECTED,
+ error=True,
+ startstr="error: 'MyString' does not have a member named 'non_existent_member'")
# Use expression parser.
self.runCmd("expression self->str")
@@ -163,7 +209,8 @@ class FoundationTestCase(TestBase):
#
self.runCmd("breakpoint delete 1")
- 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("process continue")
@@ -171,12 +218,15 @@ class FoundationTestCase(TestBase):
# test/foundation: expr -o -- my not working?
#
# Test new feature with r115115:
- # Add "-o" option to "expression" which prints the object description if available.
- self.expect("expression --object-description -- my", "Object description displayed correctly",
- patterns = ["Hello from.*a.out.*with timestamp: "])
+ # Add "-o" option to "expression" which prints the object description
+ # if available.
+ self.expect(
+ "expression --object-description -- my",
+ "Object description displayed correctly",
+ patterns=["Hello from.*a.out.*with timestamp: "])
@add_test_categories(['pyapi'])
- def test_print_ivars_correctly (self):
+ def test_print_ivars_correctly(self):
self.build()
# See: <rdar://problem/8717050> lldb needs to use the ObjC runtime symbols for ivar offsets
# Only fails for the ObjC 2.0 runtime.
@@ -189,7 +239,8 @@ class FoundationTestCase(TestBase):
self.assertTrue(break1, VALID_BREAKPOINT)
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
@@ -205,7 +256,7 @@ class FoundationTestCase(TestBase):
cur_frame = thread.GetFrameAtIndex(0)
line_number = cur_frame.GetLineEntry().GetLine()
- self.assertTrue (line_number == self.line, "Hit the first breakpoint.")
+ self.assertTrue(line_number == self.line, "Hit the first breakpoint.")
my_var = cur_frame.FindVariable("my")
self.assertTrue(my_var, "Made a variable object for my")
@@ -222,7 +273,9 @@ class FoundationTestCase(TestBase):
my_str_value = int(my_str_var.GetValue(), 0)
- self.assertTrue(str_value == my_str_value, "Got the correct value for my->str")
+ self.assertTrue(
+ str_value == my_str_value,
+ "Got the correct value for my->str")
def test_expression_lookups_objc(self):
"""Test running an expression detect spurious debug info lookups (DWARF)."""
@@ -231,32 +284,43 @@ class FoundationTestCase(TestBase):
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
# Stop at -[MyString initWithNSString:].
- lldbutil.run_break_set_by_symbol (self, '-[MyString initWithNSString:]', num_expected_locations=1, sym_exact=True)
+ lldbutil.run_break_set_by_symbol(
+ self,
+ '-[MyString initWithNSString:]',
+ num_expected_locations=1,
+ sym_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
global file_index
# Log any DWARF lookups
++file_index
- logfile = os.path.join(os.getcwd(), "dwarf-lookups-" + self.getArchitecture() + "-" + str(file_index) + ".txt")
+ logfile = os.path.join(
+ os.getcwd(),
+ "dwarf-lookups-" +
+ self.getArchitecture() +
+ "-" +
+ str(file_index) +
+ ".txt")
self.runCmd("log enable -f %s dwarf lookups" % (logfile))
self.runCmd("expr self")
self.runCmd("log disable dwarf lookups")
-
+
def cleanup():
- if os.path.exists (logfile):
- os.unlink (logfile)
-
+ if os.path.exists(logfile):
+ os.unlink(logfile)
+
self.addTearDownHook(cleanup)
-
- if os.path.exists (logfile):
+
+ if os.path.exists(logfile):
f = open(logfile)
lines = f.readlines()
num_errors = 0
for line in lines:
if string.find(line, "$__lldb") != -1:
if num_errors == 0:
- print("error: found spurious name lookups when evaluating an expression:")
+ print(
+ "error: found spurious name lookups when evaluating an expression:")
num_errors += 1
print(line, end='')
self.assertTrue(num_errors == 0, "Spurious lookups detected")
diff --git a/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py b/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py
index 1ee01f7f35f6..ce7e7742bfe8 100644
--- a/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py
+++ b/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py
@@ -5,28 +5,44 @@ Test more expression command sequences with objective-c.
from __future__ import print_function
-
-import os, time
+import os
+import time
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 setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line numbers to break at.
self.lines = []
- self.lines.append(line_number('main.m', '// Break here for selector: tests'))
- self.lines.append(line_number('main.m', '// Break here for NSArray tests'))
- self.lines.append(line_number('main.m', '// Break here for NSString tests'))
- self.lines.append(line_number('main.m', '// Break here for description test'))
- self.lines.append(line_number('main.m', '// Set break point at this line'))
+ self.lines.append(
+ line_number(
+ 'main.m',
+ '// Break here for selector: tests'))
+ self.lines.append(
+ line_number(
+ 'main.m',
+ '// Break here for NSArray tests'))
+ self.lines.append(
+ line_number(
+ 'main.m',
+ '// Break here for NSString tests'))
+ self.lines.append(
+ line_number(
+ 'main.m',
+ '// Break here for description test'))
+ self.lines.append(
+ line_number(
+ 'main.m',
+ '// Set break point at this line'))
def test_more_expr_commands(self):
"""More expression commands for objective-c."""
@@ -36,15 +52,16 @@ class FoundationTestCase2(TestBase):
# Create a bunch of breakpoints.
for line in self.lines:
- lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
+ 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"])
+ substrs=["(char *)",
+ "length"])
self.runCmd("process continue")
@@ -59,8 +76,8 @@ class FoundationTestCase2(TestBase):
# Test_MyString:
self.runCmd("thread backtrace")
self.expect("expression (char *)sel_getName(_cmd)",
- substrs = ["(char *)",
- "description"])
+ substrs=["(char *)",
+ "description"])
self.runCmd("process continue")
@@ -72,25 +89,25 @@ class FoundationTestCase2(TestBase):
# Break inside Test_NSArray:
line = self.lines[1]
- lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
+ 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_NSArray:
self.runCmd("thread backtrace")
self.expect("expression (int)[nil_mutable_array count]",
- patterns = ["\(int\) \$.* = 0"])
+ patterns=["\(int\) \$.* = 0"])
self.expect("expression (int)[array1 count]",
- patterns = ["\(int\) \$.* = 3"])
+ patterns=["\(int\) \$.* = 3"])
self.expect("expression (int)[array2 count]",
- patterns = ["\(int\) \$.* = 3"])
+ patterns=["\(int\) \$.* = 3"])
self.expect("expression (int)array1.count",
- patterns = ["\(int\) \$.* = 3"])
+ patterns=["\(int\) \$.* = 3"])
self.expect("expression (int)array2.count",
- patterns = ["\(int\) \$.* = 3"])
+ patterns=["\(int\) \$.* = 3"])
self.runCmd("process continue")
- @expectedFailureAll(oslist=["macosx"], debug_info="gmodules", bugnumber="llvm.org/pr27861")
def test_NSString_expr_commands(self):
"""Test expression commands for NSString."""
self.build()
@@ -99,73 +116,90 @@ class FoundationTestCase2(TestBase):
# Break inside Test_NSString:
line = self.lines[2]
- lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
+ 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_NSString:
self.runCmd("thread backtrace")
self.expect("expression (int)[str length]",
- patterns = ["\(int\) \$.* ="])
+ patterns=["\(int\) \$.* ="])
self.expect("expression (int)[str_id length]",
- patterns = ["\(int\) \$.* ="])
- self.expect("expression [str description]",
- patterns = ["\(id\) \$.* = 0x"])
+ patterns=["\(int\) \$.* ="])
+ self.expect("expression (id)[str description]",
+ patterns=["\(id\) \$.* = 0x"])
self.expect("expression (id)[str_id description]",
- patterns = ["\(id\) \$.* = 0x"])
+ patterns=["\(id\) \$.* = 0x"])
self.expect("expression str.length")
- self.expect("expression str.description")
self.expect('expression str = @"new"')
self.runCmd("image lookup -t NSString")
- self.expect('expression str = [NSString stringWithCString: "new"]')
+ self.expect('expression str = (id)[NSString stringWithCString: "new"]')
self.runCmd("process continue")
- def test_MyString_dump(self):
+ @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()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
+
line = self.lines[4]
- lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
+ lldbutil.run_break_set_by_file_and_line(
+ self, "main.m", line, num_expected_locations=1, loc_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
-
- self.expect("expression --show-types -- *my",
- patterns = ["\(MyString\) \$.* = ", "\(MyBase\)", "\(NSObject\)", "\(Class\)"])
+
+ self.expect(
+ "expression --show-types -- *my",
+ patterns=[
+ "\(MyString\) \$.* = ",
+ "\(MyBase\)"])
self.runCmd("process continue")
- @expectedFailureAll(archs=["i[3-6]86"])
- def test_NSError_po(self):
- """Test that po of the result of an unknown method doesn't require a cast."""
+ @expectedFailureAll(archs=["i[3-6]86"], bugnumber="<rdar://problem/28814052>")
+ def test_runtime_types(self):
+ """Test commands that require runtime types"""
self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- line = self.lines[4]
- lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
+ # Break inside Test_NSString:
+ line = self.lines[2]
+ lldbutil.run_break_set_by_source_regexp(
+ self, "NSString tests")
self.runCmd("run", RUN_SUCCEEDED)
- self.expect('po [NSError errorWithDomain:@"Hello" code:35 userInfo:@{@"NSDescription" : @"be completed."}]',
- substrs = ["Error Domain=Hello", "Code=35", "be completed."])
+ # Test_NSString:
+ self.runCmd("thread backtrace")
+ self.expect("expression [str length]",
+ patterns=["\(NSUInteger\) \$.* ="])
+ self.expect("expression str.length")
+ self.expect('expression str = [NSString stringWithCString: "new"]')
+ self.expect(
+ 'po [NSError errorWithDomain:@"Hello" code:35 userInfo:@{@"NSDescription" : @"be completed."}]',
+ substrs=[
+ "Error Domain=Hello",
+ "Code=35",
+ "be completed."])
self.runCmd("process continue")
-
+
+ @expectedFailureAll(archs=["i[3-6]86"], bugnumber="<rdar://problem/28814052>")
def test_NSError_p(self):
"""Test that p of the result of an unknown method does require a cast."""
self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
+
line = self.lines[4]
- lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
+ lldbutil.run_break_set_by_file_and_line(
+ self, "main.m", line, num_expected_locations=1, loc_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
- self.expect("p [NSError thisMethodIsntImplemented:0]",
- error = True,
- patterns = ["no known method", "cast the message send to the method's return type"])
+ self.expect("p [NSError thisMethodIsntImplemented:0]", error=True, patterns=[
+ "no known method", "cast the message send to the method's return type"])
self.runCmd("process continue")
diff --git a/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjectDescriptionAPI.py b/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjectDescriptionAPI.py
index 13ef44f195bb..8ef9f39434e3 100644
--- a/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjectDescriptionAPI.py
+++ b/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjectDescriptionAPI.py
@@ -5,14 +5,15 @@ Test SBValue.GetObjectDescription() with the value from SBTarget.FindGlobalVaria
from __future__ import print_function
-
-import os, time
+import os
+import time
import re
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ObjectDescriptionAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -22,7 +23,8 @@ class ObjectDescriptionAPITestCase(TestBase):
TestBase.setUp(self)
# Find the line number to break at.
self.source = 'main.m'
- self.line = line_number(self.source, '// Set break point at this line.')
+ self.line = line_number(
+ self.source, '// Set break point at this line.')
# rdar://problem/10857337
@skipUnlessDarwin
@@ -42,11 +44,13 @@ class ObjectDescriptionAPITestCase(TestBase):
self.assertTrue(breakpoint, VALID_BREAKPOINT)
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
# Make sure we hit our breakpoint:
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, breakpoint)
- self.assertTrue (len(thread_list) == 1)
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint(
+ process, breakpoint)
+ self.assertTrue(len(thread_list) == 1)
thread = thread_list[0]
frame0 = thread.GetFrameAtIndex(0)
@@ -59,7 +63,8 @@ class ObjectDescriptionAPITestCase(TestBase):
print("val:", v)
print("object description:", v.GetObjectDescription())
if v.GetName() == 'my_global_str':
- self.assertTrue(v.GetObjectDescription() == 'This is a global string')
+ self.assertTrue(v.GetObjectDescription() ==
+ 'This is a global string')
# But not here!
value_list2 = target.FindGlobalVariables('my_global_str', 3)
@@ -69,4 +74,5 @@ class ObjectDescriptionAPITestCase(TestBase):
print("val:", v)
print("object description:", v.GetObjectDescription())
if v.GetName() == 'my_global_str':
- self.assertTrue(v.GetObjectDescription() == 'This is a global string')
+ self.assertTrue(v.GetObjectDescription() ==
+ 'This is a global string')
diff --git a/packages/Python/lldbsuite/test/lang/objc/foundation/TestRuntimeTypes.py b/packages/Python/lldbsuite/test/lang/objc/foundation/TestRuntimeTypes.py
index 8b37f9309ac6..334ebba8e642 100644
--- a/packages/Python/lldbsuite/test/lang/objc/foundation/TestRuntimeTypes.py
+++ b/packages/Python/lldbsuite/test/lang/objc/foundation/TestRuntimeTypes.py
@@ -5,19 +5,23 @@ Test that Objective-C methods from the runtime work correctly.
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
@skipUnlessDarwin
class RuntimeTypesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @expectedFailureAll(oslist=["macosx"], debug_info="gmodules", bugnumber="llvm.org/pr27862")
+ @expectedFailureAll(
+ oslist=["macosx"],
+ debug_info="gmodules",
+ bugnumber="llvm.org/pr27862")
def test_break(self):
"""Test setting objc breakpoints using '_regexp-break' and 'breakpoint set'."""
if self.getArchitecture() != 'x86_64':
@@ -28,23 +32,31 @@ class RuntimeTypesTestCase(TestBase):
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
# Stop at -[MyString description].
- lldbutil.run_break_set_by_symbol (self, '-[MyString description]', num_expected_locations=1, sym_exact=True)
+ lldbutil.run_break_set_by_symbol(
+ self,
+ '-[MyString description]',
+ num_expected_locations=1,
+ sym_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
# The backtrace should show we stop at -[MyString description].
self.expect("thread backtrace", "Stop at -[MyString description]",
- substrs = ["a.out`-[MyString description]"])
+ substrs=["a.out`-[MyString description]"])
# Use runtime information about NSString.
# The length property should be usable.
self.expect("expression str.length", VARIABLES_DISPLAYED_CORRECTLY,
- patterns = [r"(\(unsigned long long\))|\(NSUInteger\)"])
+ patterns=[r"(\(unsigned long long\))|\(NSUInteger\)"])
# Static methods on NSString should work.
- self.expect("expr [NSString stringWithCString:\"foo\" encoding:1]", VALID_TYPE,
- substrs = ["(id)", "$1"])
+ self.expect(
+ "expr [NSString stringWithCString:\"foo\" encoding:1]",
+ VALID_TYPE,
+ substrs=[
+ "(id)",
+ "$1"])
self.expect("po $1", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["foo"])
+ substrs=["foo"])
diff --git a/packages/Python/lldbsuite/test/lang/objc/foundation/TestSymbolTable.py b/packages/Python/lldbsuite/test/lang/objc/foundation/TestSymbolTable.py
index b75a874c8145..6e5bc4d9fb0f 100644
--- a/packages/Python/lldbsuite/test/lang/objc/foundation/TestSymbolTable.py
+++ b/packages/Python/lldbsuite/test/lang/objc/foundation/TestSymbolTable.py
@@ -5,7 +5,6 @@ Test symbol table access for main.m.
from __future__ import print_function
-
import os
import time
@@ -14,6 +13,7 @@ from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
@skipUnlessDarwin
class FoundationSymtabTestCase(TestBase):
@@ -23,7 +23,8 @@ class FoundationSymtabTestCase(TestBase):
'-[MyString dealloc]',
'-[MyString description]',
'-[MyString descriptionPauses]', # synthesized property
- '-[MyString setDescriptionPauses:]', # synthesized property
+ # synthesized property
+ '-[MyString setDescriptionPauses:]',
'Test_Selector',
'Test_NSString',
'Test_MyString',
@@ -42,7 +43,8 @@ class FoundationSymtabTestCase(TestBase):
self.assertTrue(target, VALID_TARGET)
# Launch the process, and do not stop at the entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
#
# Exercise Python APIs to access the symbol table entries.
diff --git a/packages/Python/lldbsuite/test/lang/objc/global_ptrs/TestGlobalObjects.py b/packages/Python/lldbsuite/test/lang/objc/global_ptrs/TestGlobalObjects.py
index 24ae1a8852b1..bcd4a41e0df3 100644
--- a/packages/Python/lldbsuite/test/lang/objc/global_ptrs/TestGlobalObjects.py
+++ b/packages/Python/lldbsuite/test/lang/objc/global_ptrs/TestGlobalObjects.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestObjCGlobalVar(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -29,26 +30,31 @@ class TestObjCGlobalVar(TestBase):
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
- bkpt = target.BreakpointCreateBySourceRegex ('NSLog', self.main_source)
+ bkpt = target.BreakpointCreateBySourceRegex('NSLog', self.main_source)
self.assertTrue(bkpt, VALID_BREAKPOINT)
# Before we launch, make an SBValue for our global object pointer:
g_obj_ptr = target.FindFirstGlobalVariable("g_obj_ptr")
self.assertTrue(g_obj_ptr.GetError().Success(), "Made the g_obj_ptr")
- self.assertTrue(g_obj_ptr.GetValueAsUnsigned(10) == 0, "g_obj_ptr is initially null")
+ self.assertTrue(
+ g_obj_ptr.GetValueAsUnsigned(10) == 0,
+ "g_obj_ptr is initially null")
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
# The stop reason of the thread should be breakpoint.
- threads = lldbutil.get_threads_stopped_at_breakpoint (process, bkpt)
+ threads = lldbutil.get_threads_stopped_at_breakpoint(process, bkpt)
if len(threads) != 1:
- self.fail ("Failed to stop at breakpoint 1.")
+ self.fail("Failed to stop at breakpoint 1.")
thread = threads[0]
dyn_value = g_obj_ptr.GetDynamicValue(lldb.eDynamicCanRunTarget)
- self.assertTrue(dyn_value.GetError().Success(), "Dynamic value is valid")
+ self.assertTrue(
+ dyn_value.GetError().Success(),
+ "Dynamic value is valid")
self.assertTrue(dyn_value.GetObjectDescription() == "Some NSString")
diff --git a/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py b/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py
index ee5589cb96cb..ee21189ab7c0 100644
--- a/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py
+++ b/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"'])
diff --git a/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py b/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py
index b91725d57c60..79b7ee5dbfb0 100644
--- a/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py
+++ b/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py
@@ -5,8 +5,8 @@ Test that dynamically discovered ivars of type IMP do not crash LLDB
from __future__ import print_function
-
-import os, time
+import os
+import time
import re
import lldb
@@ -15,7 +15,8 @@ from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
-def execute_command (command):
+
+def execute_command(command):
# print('%% %s' % (command))
(exit_status, output) = seven.get_command_status_output(command)
# if output:
@@ -23,6 +24,7 @@ def execute_command (command):
# print('status = %u' % (exit_status))
return exit_status
+
class ObjCiVarIMPTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -31,11 +33,8 @@ class ObjCiVarIMPTestCase(TestBase):
@no_debug_info_test
def test_imp_ivar_type(self):
"""Test that dynamically discovered ivars of type IMP do not crash LLDB"""
- if self.getArchitecture() == 'i386':
- # rdar://problem/9946499
- self.skipTest("Dynamic types for ObjC V1 runtime not implemented")
-
execute_command("make repro")
+
def cleanup():
execute_command("make cleanup")
self.addTearDownHook(cleanup)
@@ -43,23 +42,25 @@ class ObjCiVarIMPTestCase(TestBase):
exe = os.path.join(os.getcwd(), "a.out")
# Create a target from the debugger.
- target = self.dbg.CreateTarget (exe)
+ target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
# Set up our breakpoint
- bkpt = lldbutil.run_break_set_by_source_regexp (self, "break here")
+ bkpt = lldbutil.run_break_set_by_source_regexp(self, "break here")
# Now launch the process, and do not stop at the entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process.GetState() == lldb.eStateStopped,
PROCESS_STOPPED)
- self.expect('frame variable --ptr-depth=1 --show-types -d run -- object', substrs=[
- '(MyClass *) object = 0x',
- '(void *) myImp = 0x'
- ])
- self.expect('disassemble --start-address `((MyClass*)object)->myImp`', substrs=[
- '-[MyClass init]'
- ])
+ self.expect(
+ 'frame variable --ptr-depth=1 --show-types -d run -- object',
+ substrs=[
+ '(MyClass *) object = 0x',
+ '(void *) myImp = 0x'])
+ self.expect(
+ 'disassemble --start-address `((MyClass*)object)->myImp`',
+ substrs=['-[MyClass init]'])
diff --git a/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/TestModulesAutoImport.py b/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/TestModulesAutoImport.py
index fece47625a84..f01cc12bb4a6 100644
--- a/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/TestModulesAutoImport.py
+++ b/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/TestModulesAutoImport.py
@@ -3,10 +3,10 @@
from __future__ import print_function
-
from distutils.version import StrictVersion
import unittest2
-import os, time
+import os
+import time
import lldb
import platform
@@ -14,6 +14,7 @@ from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ObjCModulesAutoImportTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -25,29 +26,28 @@ class ObjCModulesAutoImportTestCase(TestBase):
self.line = line_number('main.m', '// Set breakpoint 0 here.')
@skipUnlessDarwin
- @unittest2.expectedFailure("rdar://problem/19991953")
- @expectedFailureDarwin # clang: error: unknown argument: '-gmodules'
- @unittest2.skipIf(platform.system() != "Darwin" or StrictVersion('12.0.0') > platform.release(), "Only supported on Darwin 12.0.0+")
+ @skipIf(macos_version=["<", "10.12"])
def test_expr(self):
self.build()
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'])
self.runCmd("settings set target.auto-import-clang-modules true")
self.expect("p getpid()", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["pid_t"])
+ substrs=["pid_t"])
diff --git a/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py b/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py
index 56fcaa050782..367eeb2638d1 100644
--- a/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py
+++ b/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py
@@ -3,7 +3,6 @@
from __future__ import print_function
-
import unittest2
import platform
from distutils.version import StrictVersion
@@ -12,6 +11,7 @@ from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class IncompleteModulesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -24,37 +24,44 @@ class IncompleteModulesTestCase(TestBase):
@skipUnlessDarwin
@unittest2.expectedFailure("rdar://20416388")
- @unittest2.skipIf(platform.system() != "Darwin" or StrictVersion('12.0.0') > platform.release(), "Only supported on Darwin 12.0.0+")
- @skipIfDarwin # llvm.org/pr26267
+ @skipIf(macos_version=["<", "10.12"])
def test_expr(self):
self.build()
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'])
- self.runCmd("settings set target.clang-module-search-paths \"" + os.getcwd() + "\"")
+ self.runCmd(
+ "settings set target.clang-module-search-paths \"" +
+ os.getcwd() +
+ "\"")
self.expect("expr @import myModule; 3", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["int", "3"])
+ substrs=["int", "3"])
- self.expect("expr [myObject privateMethod]", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["int", "5"])
+ self.expect(
+ "expr [myObject privateMethod]",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "int",
+ "5"])
self.expect("expr MIN(2,3)", "#defined macro was found",
- substrs = ["int", "2"])
+ substrs=["int", "2"])
self.expect("expr MAX(2,3)", "#undefd macro was correcltly not found",
- error=True)
+ error=True)
diff --git a/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py b/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
index 6a9d9b518e1c..2904621a416c 100644
--- a/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
+++ b/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
@@ -3,11 +3,11 @@
from __future__ import print_function
-
from distutils.version import StrictVersion
import unittest2
-import os, time
+import os
+import time
import platform
import lldb
@@ -15,6 +15,7 @@ from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ModulesInlineFunctionsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -26,7 +27,7 @@ class ModulesInlineFunctionsTestCase(TestBase):
self.line = line_number('main.m', '// Set breakpoint here.')
@skipUnlessDarwin
- @unittest2.skipIf(platform.system() != "Darwin" or StrictVersion('12.0.0') > platform.release(), "Only supported on Darwin 12.0.0+")
+ @skipIf(macos_version=["<", "10.12"])
@expectedFailureDarwin("llvm.org/pr25743")
def test_expr(self):
self.build()
@@ -34,23 +35,27 @@ class ModulesInlineFunctionsTestCase(TestBase):
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'])
- self.runCmd("settings set target.clang-module-search-paths \"" + os.getcwd() + "\"")
+ self.runCmd(
+ "settings set target.clang-module-search-paths \"" +
+ os.getcwd() +
+ "\"")
self.expect("expr @import myModule; 3", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["int", "3"])
+ substrs=["int", "3"])
self.expect("expr isInline(2)", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["4"])
+ substrs=["4"])
diff --git a/packages/Python/lldbsuite/test/lang/objc/modules/TestObjCModules.py b/packages/Python/lldbsuite/test/lang/objc/modules/TestObjCModules.py
index 0efdb305584b..526b4a70e60c 100644
--- a/packages/Python/lldbsuite/test/lang/objc/modules/TestObjCModules.py
+++ b/packages/Python/lldbsuite/test/lang/objc/modules/TestObjCModules.py
@@ -3,9 +3,9 @@
from __future__ import print_function
-
import unittest2
-import os, time
+import os
+import time
import platform
from distutils.version import StrictVersion
@@ -14,6 +14,7 @@ from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ObjCModulesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -26,7 +27,7 @@ class ObjCModulesTestCase(TestBase):
@skipUnlessDarwin
@unittest2.expectedFailure("rdar://20416388")
- @unittest2.skipIf(platform.system() != "Darwin" or StrictVersion('12.0.0') > platform.release(), "Only supported on Darwin 12.0.0+")
+ @skipIf(macos_version=["<", "10.12"])
def test_expr(self):
if not self.applies():
return
@@ -36,36 +37,48 @@ class ObjCModulesTestCase(TestBase):
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'])
self.expect("expr @import Darwin; 3", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["int", "3"])
+ substrs=["int", "3"])
self.expect("expr getpid()", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["pid_t"])
+ substrs=["pid_t"])
- self.expect("expr @import Foundation; 4", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["int", "4"])
+ self.expect(
+ "expr @import Foundation; 4",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "int",
+ "4"])
self.expect("expr string.length", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["NSUInteger", "5"])
+ substrs=["NSUInteger", "5"])
self.expect("expr array.count", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["NSUInteger", "3"])
-
- self.expect("p *[NSURL URLWithString:@\"http://lldb.llvm.org\"]", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["NSURL", "isa", "_urlString"])
-
- self.expect("p [NSURL URLWithString:@\"http://lldb.llvm.org\"].scheme", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["http"])
+ substrs=["NSUInteger", "3"])
+
+ self.expect(
+ "p *[NSURL URLWithString:@\"http://lldb.llvm.org\"]",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "NSURL",
+ "isa",
+ "_urlString"])
+
+ self.expect(
+ "p [NSURL URLWithString:@\"http://lldb.llvm.org\"].scheme",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["http"])
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc++/TestObjCXX.py b/packages/Python/lldbsuite/test/lang/objc/objc++/TestObjCXX.py
index c702eafa1f22..5b91f9848a92 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc++/TestObjCXX.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc++/TestObjCXX.py
@@ -5,13 +5,14 @@ Make sure that ivars of Objective-C++ classes are visible in LLDB.
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ObjCXXTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -26,9 +27,10 @@ class ObjCXXTestCase(TestBase):
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
- lldbutil.run_break_set_by_source_regexp (self, 'breakpoint 1', num_expected_locations=1)
+ lldbutil.run_break_set_by_source_regexp(
+ self, 'breakpoint 1', num_expected_locations=1)
self.runCmd("run", RUN_SUCCEEDED)
self.expect("expr f->f", "Found ivar in class",
- substrs = ["= 3"])
+ substrs=["= 3"])
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py b/packages/Python/lldbsuite/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
index fa390cb0ad73..0f82cc68df85 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
@@ -5,20 +5,21 @@ Use lldb Python API to test base class resolution for ObjC classes
from __future__ import print_function
-
-import os, time
+import os
+import time
import re
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ObjCDynamicValueTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
def setUp(self):
- # Call super's setUp().
+ # Call super's setUp().
TestBase.setUp(self)
self.line = line_number('main.m', '// Set breakpoint here.')
@@ -36,13 +37,14 @@ class ObjCDynamicValueTestCase(TestBase):
# Create a target from the debugger.
- target = self.dbg.CreateTarget (exe)
+ target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
# Set up our breakpoints:
target.BreakpointCreateByLocation('main.m', self.line)
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process.GetState() == lldb.eStateStopped,
PROCESS_STOPPED)
@@ -50,10 +52,17 @@ class ObjCDynamicValueTestCase(TestBase):
var = self.frame().FindVariable("foo")
var_ptr_type = var.GetType()
var_pte_type = var_ptr_type.GetPointeeType()
- self.assertTrue(var_ptr_type.GetNumberOfDirectBaseClasses() == 1, "Foo * has one base class")
- self.assertTrue(var_pte_type.GetNumberOfDirectBaseClasses() == 1, "Foo has one base class")
-
- self.assertTrue(var_ptr_type.GetDirectBaseClassAtIndex(0).IsValid(), "Foo * has a valid base class")
- self.assertTrue(var_pte_type.GetDirectBaseClassAtIndex(0).IsValid(), "Foo * has a valid base class")
-
- self.assertTrue(var_ptr_type.GetDirectBaseClassAtIndex(0).GetName() == var_pte_type.GetDirectBaseClassAtIndex(0).GetName(), "Foo and its pointer type don't agree on their base class")
+ self.assertTrue(
+ var_ptr_type.GetNumberOfDirectBaseClasses() == 1,
+ "Foo * has one base class")
+ self.assertTrue(
+ var_pte_type.GetNumberOfDirectBaseClasses() == 1,
+ "Foo has one base class")
+
+ self.assertTrue(var_ptr_type.GetDirectBaseClassAtIndex(
+ 0).IsValid(), "Foo * has a valid base class")
+ self.assertTrue(var_pte_type.GetDirectBaseClassAtIndex(
+ 0).IsValid(), "Foo * has a valid base class")
+
+ self.assertTrue(var_ptr_type.GetDirectBaseClassAtIndex(0).GetName() == var_pte_type.GetDirectBaseClassAtIndex(
+ 0).GetName(), "Foo and its pointer type don't agree on their base class")
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py b/packages/Python/lldbsuite/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
index 3ff76d4194d2..d92daab80351 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestObjCBuiltinTypes(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -19,7 +20,8 @@ class TestObjCBuiltinTypes(TestBase):
TestBase.setUp(self)
# Find the line numbers to break inside main().
self.main_source = "main.cpp"
- self.break_line = line_number(self.main_source, '// Set breakpoint here.')
+ self.break_line = line_number(
+ self.main_source, '// Set breakpoint here.')
@skipUnlessDarwin
@add_test_categories(['pyapi'])
@@ -32,25 +34,31 @@ class TestObjCBuiltinTypes(TestBase):
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
- bpt = target.BreakpointCreateByLocation(self.main_source, self.break_line)
+ bpt = target.BreakpointCreateByLocation(
+ self.main_source, self.break_line)
self.assertTrue(bpt, VALID_BREAKPOINT)
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
# The stop reason of the thread should be breakpoint.
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, bpt)
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint(process, bpt)
# Make sure we stopped at the first breakpoint.
- self.assertTrue (len(thread_list) != 0, "No thread stopped at our breakpoint.")
- self.assertTrue (len(thread_list) == 1, "More than one thread stopped at our breakpoint.")
-
- # Now make sure we can call a function in the class method we've stopped in.
+ self.assertTrue(
+ len(thread_list) != 0,
+ "No thread stopped at our breakpoint.")
+ self.assertTrue(len(thread_list) == 1,
+ "More than one thread stopped at our breakpoint.")
+
+ # Now make sure we can call a function in the class method we've
+ # stopped in.
frame = thread_list[0].GetFrameAtIndex(0)
- self.assertTrue (frame, "Got a valid frame 0 frame.")
+ self.assertTrue(frame, "Got a valid frame 0 frame.")
- self.expect("expr (foo)", patterns = ["\(ns::id\) \$.* = 0"])
+ self.expect("expr (foo)", patterns=["\(ns::id\) \$.* = 0"])
- self.expect("expr id my_id = 0; my_id", patterns = ["\(id\) \$.* = nil"])
+ self.expect("expr id my_id = 0; my_id", patterns=["\(id\) \$.* = nil"])
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-checker/TestObjCCheckers.py b/packages/Python/lldbsuite/test/lang/objc/objc-checker/TestObjCCheckers.py
index 901d84fb96d9..1bd8f1af2300 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-checker/TestObjCCheckers.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-checker/TestObjCCheckers.py
@@ -5,23 +5,24 @@ Use lldb Python API to make sure the dynamic checkers are doing their jobs.
from __future__ import print_function
-
-import os, time
+import os
+import time
import re
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ObjCCheckerTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
def setUp(self):
- # Call super's setUp().
+ # Call super's setUp().
TestBase.setUp(self)
- # Find the line number to break for main.c.
+ # Find the line number to break for main.c.
self.source_name = 'main.m'
@skipUnlessDarwin
@@ -36,41 +37,43 @@ class ObjCCheckerTestCase(TestBase):
# Create a target from the debugger.
- target = self.dbg.CreateTarget (exe)
+ target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
# Set up our breakpoints:
-
- main_bkpt = target.BreakpointCreateBySourceRegex ("Set a breakpoint here.", lldb.SBFileSpec (self.source_name))
+ main_bkpt = target.BreakpointCreateBySourceRegex(
+ "Set a breakpoint here.", lldb.SBFileSpec(self.source_name))
self.assertTrue(main_bkpt and
main_bkpt.GetNumLocations() == 1,
VALID_BREAKPOINT)
# Now launch the process, and do not stop at the entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process.GetState() == lldb.eStateStopped,
PROCESS_STOPPED)
- threads = lldbutil.get_threads_stopped_at_breakpoint (process, main_bkpt)
- self.assertTrue (len(threads) == 1)
+ threads = lldbutil.get_threads_stopped_at_breakpoint(
+ process, main_bkpt)
+ self.assertTrue(len(threads) == 1)
thread = threads[0]
#
- # The class Simple doesn't have a count method. Make sure that we don't
+ # The class Simple doesn't have a count method. Make sure that we don't
# actually try to send count but catch it as an unrecognized selector.
frame = thread.GetFrameAtIndex(0)
expr_value = frame.EvaluateExpression("(int) [my_simple count]", False)
expr_error = expr_value.GetError()
- self.assertTrue (expr_error.Fail())
-
+ self.assertTrue(expr_error.Fail())
+
# Make sure the call produced no NSLog stdout.
stdout = process.GetSTDOUT(100)
- self.assertTrue (stdout is None or (len(stdout) == 0))
-
+ self.assertTrue(stdout is None or (len(stdout) == 0))
+
# Make sure the error is helpful:
err_string = expr_error.GetCString()
- self.assertTrue ("selector" in err_string)
+ self.assertTrue("selector" in err_string)
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-class-method/TestObjCClassMethod.py b/packages/Python/lldbsuite/test/lang/objc/objc-class-method/TestObjCClassMethod.py
index a5767562c077..50ed2992ee79 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-class-method/TestObjCClassMethod.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-class-method/TestObjCClassMethod.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestObjCClassMethod(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -19,12 +20,11 @@ class TestObjCClassMethod(TestBase):
TestBase.setUp(self)
# Find the line numbers to break inside main().
self.main_source = "class.m"
- self.break_line = line_number(self.main_source, '// Set breakpoint here.')
+ self.break_line = line_number(
+ self.main_source, '// Set breakpoint here.')
@skipUnlessDarwin
- @expectedFailureAll(archs=["i[3-6]86"])
@add_test_categories(['pyapi'])
- #rdar://problem/9745789 "expression" can't call functions in class methods
def test_with_python_api(self):
"""Test calling functions in class methods."""
self.build()
@@ -33,25 +33,32 @@ class TestObjCClassMethod(TestBase):
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
- bpt = target.BreakpointCreateByLocation(self.main_source, self.break_line)
+ bpt = target.BreakpointCreateByLocation(
+ self.main_source, self.break_line)
self.assertTrue(bpt, VALID_BREAKPOINT)
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
# The stop reason of the thread should be breakpoint.
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, bpt)
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint(process, bpt)
# Make sure we stopped at the first breakpoint.
- self.assertTrue (len(thread_list) != 0, "No thread stopped at our breakpoint.")
- self.assertTrue (len(thread_list) == 1, "More than one thread stopped at our breakpoint.")
-
- # Now make sure we can call a function in the class method we've stopped in.
+ self.assertTrue(
+ len(thread_list) != 0,
+ "No thread stopped at our breakpoint.")
+ self.assertTrue(len(thread_list) == 1,
+ "More than one thread stopped at our breakpoint.")
+
+ # Now make sure we can call a function in the class method we've
+ # stopped in.
frame = thread_list[0].GetFrameAtIndex(0)
- self.assertTrue (frame, "Got a valid frame 0 frame.")
+ self.assertTrue(frame, "Got a valid frame 0 frame.")
- cmd_value = frame.EvaluateExpression ("(int)[Foo doSomethingWithString:@\"Hello\"]")
- self.assertTrue (cmd_value.IsValid())
- self.assertTrue (cmd_value.GetValueAsUnsigned() == 5)
+ cmd_value = frame.EvaluateExpression(
+ "(int)[Foo doSomethingWithString:@\"Hello\"]")
+ self.assertTrue(cmd_value.IsValid())
+ self.assertTrue(cmd_value.GetValueAsUnsigned() == 5)
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py b/packages/Python/lldbsuite/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
index fc8a8129fa3c..8b3f444b27af 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
@@ -5,13 +5,14 @@ Test that we are able to properly report a usable dynamic type
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
@skipUnlessDarwin
class ObjCDynamicSBTypeTestCase(TestBase):
@@ -36,28 +37,57 @@ class ObjCDynamicSBTypeTestCase(TestBase):
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
- lldbutil.run_break_set_by_file_and_line (self, self.main_source, self.line, num_expected_locations=1, loc_exact=True)
+ lldbutil.run_break_set_by_file_and_line(
+ self,
+ self.main_source,
+ self.line,
+ num_expected_locations=1,
+ loc_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
- v_object = self.frame().FindVariable("object").GetDynamicValue(lldb.eDynamicCanRunTarget)
- v_base = self.frame().FindVariable("base").GetDynamicValue(lldb.eDynamicCanRunTarget)
- self.assertTrue(v_object.GetTypeName() == "MyDerivedClass *", "The NSObject is properly type-named")
- self.assertTrue(v_base.GetTypeName() == "MyDerivedClass *", "The Base is properly type-named")
+ v_object = self.frame().FindVariable(
+ "object").GetDynamicValue(lldb.eDynamicCanRunTarget)
+ v_base = self.frame().FindVariable(
+ "base").GetDynamicValue(lldb.eDynamicCanRunTarget)
+ self.assertTrue(
+ v_object.GetTypeName() == "MyDerivedClass *",
+ "The NSObject is properly type-named")
+ self.assertTrue(
+ v_base.GetTypeName() == "MyDerivedClass *",
+ "The Base is properly type-named")
object_type = v_object.GetType()
base_type = v_base.GetType()
- self.assertTrue(object_type.GetName() == "MyDerivedClass *", "The dynamic SBType for NSObject is for the correct type")
- self.assertTrue(base_type.GetName() == "MyDerivedClass *", "The dynamic SBType for Base is for the correct type")
+ self.assertTrue(
+ object_type.GetName() == "MyDerivedClass *",
+ "The dynamic SBType for NSObject is for the correct type")
+ self.assertTrue(
+ base_type.GetName() == "MyDerivedClass *",
+ "The dynamic SBType for Base is for the correct type")
object_pointee_type = object_type.GetPointeeType()
base_pointee_type = base_type.GetPointeeType()
- self.assertTrue(object_pointee_type.GetName() == "MyDerivedClass", "The dynamic type for NSObject figures out its pointee type just fine")
- self.assertTrue(base_pointee_type.GetName() == "MyDerivedClass", "The dynamic type for Base figures out its pointee type just fine")
+ self.assertTrue(
+ object_pointee_type.GetName() == "MyDerivedClass",
+ "The dynamic type for NSObject figures out its pointee type just fine")
+ self.assertTrue(
+ base_pointee_type.GetName() == "MyDerivedClass",
+ "The dynamic type for Base figures out its pointee type just fine")
- self.assertTrue(object_pointee_type.GetDirectBaseClassAtIndex(0).GetName() == "MyBaseClass", "The dynamic type for NSObject can go back to its base class")
- self.assertTrue(base_pointee_type.GetDirectBaseClassAtIndex(0).GetName() == "MyBaseClass", "The dynamic type for Base can go back to its base class")
+ self.assertTrue(
+ object_pointee_type.GetDirectBaseClassAtIndex(0).GetName() == "MyBaseClass",
+ "The dynamic type for NSObject can go back to its base class")
+ self.assertTrue(
+ base_pointee_type.GetDirectBaseClassAtIndex(0).GetName() == "MyBaseClass",
+ "The dynamic type for Base can go back to its base class")
- self.assertTrue(object_pointee_type.GetDirectBaseClassAtIndex(0).GetType().GetDirectBaseClassAtIndex(0).GetName() == "NSObject", "The dynamic type for NSObject can go up the hierarchy")
- self.assertTrue(base_pointee_type.GetDirectBaseClassAtIndex(0).GetType().GetDirectBaseClassAtIndex(0).GetName() == "NSObject", "The dynamic type for Base can go up the hierarchy")
+ self.assertTrue(object_pointee_type.GetDirectBaseClassAtIndex(0).GetType().GetDirectBaseClassAtIndex(
+ 0).GetName() == "NSObject", "The dynamic type for NSObject can go up the hierarchy")
+ self.assertTrue(base_pointee_type.GetDirectBaseClassAtIndex(0).GetType().GetDirectBaseClassAtIndex(
+ 0).GetName() == "NSObject", "The dynamic type for Base can go up the hierarchy")
- self.assertTrue(object_pointee_type.GetNumberOfFields() == 2, "The dynamic type for NSObject has 2 fields")
- self.assertTrue(base_pointee_type.GetNumberOfFields() == 2, "The dynamic type for Base has 2 fields")
+ self.assertTrue(
+ object_pointee_type.GetNumberOfFields() == 2,
+ "The dynamic type for NSObject has 2 fields")
+ self.assertTrue(
+ base_pointee_type.GetNumberOfFields() == 2,
+ "The dynamic type for Base has 2 fields")
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py b/packages/Python/lldbsuite/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
index 8720ede04cbf..a115d4f15733 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
@@ -5,30 +5,33 @@ Use lldb Python API to test dynamic values in ObjC
from __future__ import print_function
-
-import os, time
+import os
+import time
import re
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ObjCDynamicValueTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
def setUp(self):
- # Call super's setUp().
+ # Call super's setUp().
TestBase.setUp(self)
- # Find the line number to break for main.c.
+ # Find the line number to break for main.c.
self.source_name = 'dynamic-value.m'
- self.set_property_line = line_number(self.source_name, '// This is the line in setProperty, make sure we step to here.')
- self.handle_SourceBase = line_number(self.source_name,
- '// Break here to check dynamic values.')
- self.main_before_setProperty_line = line_number(self.source_name,
- '// Break here to see if we can step into real method.')
+ self.set_property_line = line_number(
+ self.source_name,
+ '// This is the line in setProperty, make sure we step to here.')
+ self.handle_SourceBase = line_number(
+ self.source_name, '// Break here to check dynamic values.')
+ self.main_before_setProperty_line = line_number(
+ self.source_name, '// Break here to see if we can step into real method.')
@skipUnlessDarwin
@add_test_categories(['pyapi'])
@@ -44,29 +47,33 @@ class ObjCDynamicValueTestCase(TestBase):
# Create a target from the debugger.
- target = self.dbg.CreateTarget (exe)
+ target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
# Set up our breakpoints:
- handle_SourceBase_bkpt = target.BreakpointCreateByLocation(self.source_name, self.handle_SourceBase)
+ handle_SourceBase_bkpt = target.BreakpointCreateByLocation(
+ self.source_name, self.handle_SourceBase)
self.assertTrue(handle_SourceBase_bkpt and
handle_SourceBase_bkpt.GetNumLocations() == 1,
VALID_BREAKPOINT)
- main_before_setProperty_bkpt = target.BreakpointCreateByLocation(self.source_name, self.main_before_setProperty_line)
+ main_before_setProperty_bkpt = target.BreakpointCreateByLocation(
+ self.source_name, self.main_before_setProperty_line)
self.assertTrue(main_before_setProperty_bkpt and
main_before_setProperty_bkpt.GetNumLocations() == 1,
VALID_BREAKPOINT)
# Now launch the process, and do not stop at the entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process.GetState() == lldb.eStateStopped,
PROCESS_STOPPED)
- threads = lldbutil.get_threads_stopped_at_breakpoint (process, main_before_setProperty_bkpt)
- self.assertTrue (len(threads) == 1)
+ threads = lldbutil.get_threads_stopped_at_breakpoint(
+ process, main_before_setProperty_bkpt)
+ self.assertTrue(len(threads) == 1)
thread = threads[0]
#
@@ -74,53 +81,73 @@ class ObjCDynamicValueTestCase(TestBase):
# make sure we can get that properly:
frame = thread.GetFrameAtIndex(0)
- myObserver = frame.FindVariable('myObserver', lldb.eDynamicCanRunTarget)
- self.assertTrue (myObserver)
- myObserver_source = myObserver.GetChildMemberWithName ('_source', lldb.eDynamicCanRunTarget)
- self.examine_SourceDerived_ptr (myObserver_source)
+ myObserver = frame.FindVariable(
+ 'myObserver', lldb.eDynamicCanRunTarget)
+ self.assertTrue(myObserver)
+ myObserver_source = myObserver.GetChildMemberWithName(
+ '_source', lldb.eDynamicCanRunTarget)
+ self.examine_SourceDerived_ptr(myObserver_source)
#
- # Make sure a static value can be correctly turned into a dynamic value.
+ # Make sure a static value can be correctly turned into a dynamic
+ # value.
frame = thread.GetFrameAtIndex(0)
- myObserver_static = frame.FindVariable('myObserver', lldb.eNoDynamicValues)
- self.assertTrue (myObserver_static)
- myObserver = myObserver_static.GetDynamicValue (lldb.eDynamicCanRunTarget)
- myObserver_source = myObserver.GetChildMemberWithName ('_source', lldb.eDynamicCanRunTarget)
- self.examine_SourceDerived_ptr (myObserver_source)
+ myObserver_static = frame.FindVariable(
+ 'myObserver', lldb.eNoDynamicValues)
+ self.assertTrue(myObserver_static)
+ myObserver = myObserver_static.GetDynamicValue(
+ lldb.eDynamicCanRunTarget)
+ myObserver_source = myObserver.GetChildMemberWithName(
+ '_source', lldb.eDynamicCanRunTarget)
+ self.examine_SourceDerived_ptr(myObserver_source)
# The "frame var" code uses another path to get into children, so let's
# make sure that works as well:
result = lldb.SBCommandReturnObject()
- self.expect('frame var -d run-target myObserver->_source', 'frame var finds its way into a child member',
- patterns = ['\(SourceDerived \*\)'])
-
- # check that our ObjC GetISA() does a good job at hiding KVO swizzled classes
-
- self.expect('frame var -d run-target myObserver->_source -T', 'the KVO-ed class is hidden',
- substrs = ['SourceDerived'])
+ self.expect(
+ 'frame var -d run-target myObserver->_source',
+ 'frame var finds its way into a child member',
+ patterns=['\(SourceDerived \*\)'])
+
+ # check that our ObjC GetISA() does a good job at hiding KVO swizzled
+ # classes
- self.expect('frame var -d run-target myObserver->_source -T', 'the KVO-ed class is hidden', matching = False,
- substrs = ['NSKVONotify'])
+ self.expect(
+ 'frame var -d run-target myObserver->_source -T',
+ 'the KVO-ed class is hidden',
+ substrs=['SourceDerived'])
+
+ self.expect(
+ 'frame var -d run-target myObserver->_source -T',
+ 'the KVO-ed class is hidden',
+ matching=False,
+ substrs=['NSKVONotify'])
# This test is not entirely related to the main thrust of this test case, but since we're here,
- # try stepping into setProperty, and make sure we get into the version in Source:
+ # try stepping into setProperty, and make sure we get into the version
+ # in Source:
thread.StepInto()
- threads = lldbutil.get_stopped_threads (process, lldb.eStopReasonPlanComplete)
- self.assertTrue (len(threads) == 1)
+ threads = lldbutil.get_stopped_threads(
+ process, lldb.eStopReasonPlanComplete)
+ self.assertTrue(len(threads) == 1)
line_entry = threads[0].GetFrameAtIndex(0).GetLineEntry()
- self.assertEqual (line_entry.GetLine(), self.set_property_line)
- self.assertEqual (line_entry.GetFileSpec().GetFilename(), self.source_name)
+ self.assertEqual(line_entry.GetLine(), self.set_property_line)
+ self.assertEqual(
+ line_entry.GetFileSpec().GetFilename(),
+ self.source_name)
- # Okay, back to the main business. Continue to the handle_SourceBase and make sure we get the correct dynamic value.
+ # Okay, back to the main business. Continue to the handle_SourceBase
+ # and make sure we get the correct dynamic value.
- threads = lldbutil.continue_to_breakpoint (process, handle_SourceBase_bkpt)
- self.assertTrue (len(threads) == 1)
+ threads = lldbutil.continue_to_breakpoint(
+ process, handle_SourceBase_bkpt)
+ self.assertTrue(len(threads) == 1)
thread = threads[0]
frame = thread.GetFrameAtIndex(0)
@@ -130,49 +157,55 @@ class ObjCDynamicValueTestCase(TestBase):
noDynamic = lldb.eNoDynamicValues
useDynamic = lldb.eDynamicCanRunTarget
- object_static = frame.FindVariable ('object', noDynamic)
- object_dynamic = frame.FindVariable ('object', useDynamic)
+ object_static = frame.FindVariable('object', noDynamic)
+ object_dynamic = frame.FindVariable('object', useDynamic)
- # Delete this object to make sure that this doesn't cause havoc with the dynamic object that depends on it.
+ # Delete this object to make sure that this doesn't cause havoc with
+ # the dynamic object that depends on it.
del (object_static)
- self.examine_SourceDerived_ptr (object_dynamic)
-
+ self.examine_SourceDerived_ptr(object_dynamic)
+
# Get "this" using FindValue, make sure that works too:
- object_static = frame.FindValue ('object', lldb.eValueTypeVariableArgument, noDynamic)
- object_dynamic = frame.FindValue ('object', lldb.eValueTypeVariableArgument, useDynamic)
+ object_static = frame.FindValue(
+ 'object', lldb.eValueTypeVariableArgument, noDynamic)
+ object_dynamic = frame.FindValue(
+ 'object', lldb.eValueTypeVariableArgument, useDynamic)
del (object_static)
- self.examine_SourceDerived_ptr (object_dynamic)
+ self.examine_SourceDerived_ptr(object_dynamic)
# Get "this" using the EvaluateExpression:
- object_static = frame.EvaluateExpression ('object', noDynamic)
- object_dynamic = frame.EvaluateExpression ('object', useDynamic)
+ object_static = frame.EvaluateExpression('object', noDynamic)
+ object_dynamic = frame.EvaluateExpression('object', useDynamic)
del (object_static)
- self.examine_SourceDerived_ptr (object_dynamic)
-
+ self.examine_SourceDerived_ptr(object_dynamic)
+
# Continue again to the handle_SourceBase and make sure we get the correct dynamic value.
# This one looks exactly the same, but in fact this is an "un-KVO'ed" version of SourceBase, so
- # its isa pointer points to SourceBase not NSKVOSourceBase or whatever...
+ # its isa pointer points to SourceBase not NSKVOSourceBase or
+ # whatever...
- threads = lldbutil.continue_to_breakpoint (process, handle_SourceBase_bkpt)
- self.assertTrue (len(threads) == 1)
+ threads = lldbutil.continue_to_breakpoint(
+ process, handle_SourceBase_bkpt)
+ self.assertTrue(len(threads) == 1)
thread = threads[0]
frame = thread.GetFrameAtIndex(0)
# Get "object" using FindVariable:
- object_static = frame.FindVariable ('object', noDynamic)
- object_dynamic = frame.FindVariable ('object', useDynamic)
+ object_static = frame.FindVariable('object', noDynamic)
+ object_dynamic = frame.FindVariable('object', useDynamic)
- # Delete this object to make sure that this doesn't cause havoc with the dynamic object that depends on it.
+ # Delete this object to make sure that this doesn't cause havoc with
+ # the dynamic object that depends on it.
del (object_static)
- self.examine_SourceDerived_ptr (object_dynamic)
+ self.examine_SourceDerived_ptr(object_dynamic)
- def examine_SourceDerived_ptr (self, object):
- self.assertTrue (object)
- self.assertTrue (object.GetTypeName().find ('SourceDerived') != -1)
- derivedValue = object.GetChildMemberWithName ('_derivedValue')
- self.assertTrue (derivedValue)
- self.assertTrue (int (derivedValue.GetValue(), 0) == 30)
+ def examine_SourceDerived_ptr(self, object):
+ self.assertTrue(object)
+ self.assertTrue(object.GetTypeName().find('SourceDerived') != -1)
+ derivedValue = object.GetChildMemberWithName('_derivedValue')
+ self.assertTrue(derivedValue)
+ self.assertTrue(int(derivedValue.GetValue(), 0) == 30)
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py b/packages/Python/lldbsuite/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
index 049b41e08d08..03121e6f956a 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestObjCIvarOffsets(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -19,7 +20,8 @@ class TestObjCIvarOffsets(TestBase):
TestBase.setUp(self)
# Find the line numbers to break inside main().
self.main_source = "main.m"
- self.stop_line = line_number(self.main_source, '// Set breakpoint here.')
+ self.stop_line = line_number(
+ self.main_source, '// Set breakpoint here.')
@skipUnlessDarwin
@add_test_categories(['pyapi'])
@@ -31,45 +33,54 @@ class TestObjCIvarOffsets(TestBase):
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
- breakpoint = target.BreakpointCreateByLocation(self.main_source, self.stop_line)
+ breakpoint = target.BreakpointCreateByLocation(
+ self.main_source, self.stop_line)
self.assertTrue(breakpoint, VALID_BREAKPOINT)
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
- self.assertTrue (process, "Created a process.")
- self.assertTrue (process.GetState() == lldb.eStateStopped, "Stopped it too.")
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
+ self.assertTrue(process, "Created a process.")
+ self.assertTrue(
+ process.GetState() == lldb.eStateStopped,
+ "Stopped it too.")
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, breakpoint)
- self.assertTrue (len(thread_list) == 1)
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint(
+ process, breakpoint)
+ self.assertTrue(len(thread_list) == 1)
thread = thread_list[0]
-
+
frame = thread.GetFrameAtIndex(0)
- self.assertTrue (frame, "frame 0 is valid")
-
+ self.assertTrue(frame, "frame 0 is valid")
+
mine = thread.GetFrameAtIndex(0).FindVariable("mine")
self.assertTrue(mine, "Found local variable mine.")
-
+
# Test the value object value for BaseClass->_backed_int
error = lldb.SBError()
- mine_backed_int = mine.GetChildMemberWithName ("_backed_int")
- self.assertTrue(mine_backed_int, "Found mine->backed_int local variable.")
- backed_value = mine_backed_int.GetValueAsSigned (error)
- self.assertTrue (error.Success())
- self.assertTrue (backed_value == 1111)
-
+ mine_backed_int = mine.GetChildMemberWithName("_backed_int")
+ self.assertTrue(
+ mine_backed_int,
+ "Found mine->backed_int local variable.")
+ backed_value = mine_backed_int.GetValueAsSigned(error)
+ self.assertTrue(error.Success())
+ self.assertTrue(backed_value == 1111)
+
# Test the value object value for DerivedClass->_derived_backed_int
- mine_derived_backed_int = mine.GetChildMemberWithName ("_derived_backed_int")
- self.assertTrue(mine_derived_backed_int, "Found mine->derived_backed_int local variable.")
- derived_backed_value = mine_derived_backed_int.GetValueAsSigned (error)
- self.assertTrue (error.Success())
- self.assertTrue (derived_backed_value == 3333)
+ mine_derived_backed_int = mine.GetChildMemberWithName(
+ "_derived_backed_int")
+ self.assertTrue(mine_derived_backed_int,
+ "Found mine->derived_backed_int local variable.")
+ derived_backed_value = mine_derived_backed_int.GetValueAsSigned(error)
+ self.assertTrue(error.Success())
+ self.assertTrue(derived_backed_value == 3333)
# Make sure we also get bit-field offsets correct:
- mine_flag2 = mine.GetChildMemberWithName ("flag2")
+ mine_flag2 = mine.GetChildMemberWithName("flag2")
self.assertTrue(mine_flag2, "Found mine->flag2 local variable.")
- flag2_value = mine_flag2.GetValueAsUnsigned (error)
- self.assertTrue (error.Success())
- self.assertTrue (flag2_value == 7)
+ flag2_value = mine_flag2.GetValueAsUnsigned(error)
+ self.assertTrue(error.Success())
+ self.assertTrue(flag2_value == 7)
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-ivar-protocols/TestIvarProtocols.py b/packages/Python/lldbsuite/test/lang/objc/objc-ivar-protocols/TestIvarProtocols.py
index 791ce27dad00..804905106dfc 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-ivar-protocols/TestIvarProtocols.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-ivar-protocols/TestIvarProtocols.py
@@ -1,4 +1,6 @@
from lldbsuite.test import lldbinline
from lldbsuite.test import decorators
-lldbinline.MakeInlineTest(__file__, globals(), [decorators.skipIfFreeBSD,decorators.skipIfLinux,decorators.skipIfWindows])
+lldbinline.MakeInlineTest(
+ __file__, globals(), [
+ decorators.skipIfFreeBSD, decorators.skipIfLinux, decorators.skipIfWindows])
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py b/packages/Python/lldbsuite/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
index d9007c57bfb4..dde9ebadba4f 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestObjCIvarStripped(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -19,10 +20,13 @@ class TestObjCIvarStripped(TestBase):
TestBase.setUp(self)
# Find the line numbers to break inside main().
self.main_source = "main.m"
- self.stop_line = line_number(self.main_source, '// Set breakpoint here.')
+ self.stop_line = line_number(
+ self.main_source, '// Set breakpoint here.')
@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")
@add_test_categories(['pyapi'])
def test_with_python_api(self):
"""Test that we can find stripped Objective-C ivars in the runtime"""
@@ -34,26 +38,33 @@ class TestObjCIvarStripped(TestBase):
self.dbg.HandleCommand("add-dsym a.out.dSYM")
- breakpoint = target.BreakpointCreateByLocation(self.main_source, self.stop_line)
- self.assertTrue(breakpoint.IsValid() and breakpoint.GetNumLocations() > 0, VALID_BREAKPOINT)
+ breakpoint = target.BreakpointCreateByLocation(
+ self.main_source, self.stop_line)
+ self.assertTrue(
+ breakpoint.IsValid() and breakpoint.GetNumLocations() > 0,
+ VALID_BREAKPOINT)
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
- self.assertTrue (process, "Created a process.")
- self.assertTrue (process.GetState() == lldb.eStateStopped, "Stopped it too.")
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
+ self.assertTrue(process, "Created a process.")
+ self.assertTrue(
+ process.GetState() == lldb.eStateStopped,
+ "Stopped it too.")
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, breakpoint)
- self.assertTrue (len(thread_list) == 1)
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint(
+ process, breakpoint)
+ self.assertTrue(len(thread_list) == 1)
thread = thread_list[0]
-
+
frame = thread.GetFrameAtIndex(0)
- self.assertTrue (frame, "frame 0 is valid")
-
+ self.assertTrue(frame, "frame 0 is valid")
+
# Test the expression for mc->_foo
error = lldb.SBError()
- ivar = frame.EvaluateExpression ("(mc->_foo)")
+ ivar = frame.EvaluateExpression("(mc->_foo)")
self.assertTrue(ivar, "Got result for mc->_foo")
- ivar_value = ivar.GetValueAsSigned (error)
- self.assertTrue (error.Success())
- self.assertTrue (ivar_value == 3)
+ ivar_value = ivar.GetValueAsSigned(error)
+ self.assertTrue(error.Success())
+ self.assertTrue(ivar_value == 3)
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py b/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
index a0cf6a7a055d..add3f7a01ad6 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
@@ -3,9 +3,9 @@
from __future__ import print_function
-
import unittest2
-import os, time
+import os
+import time
import platform
from distutils.version import StrictVersion
@@ -15,6 +15,7 @@ from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ObjCNewSyntaxTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -26,79 +27,127 @@ class ObjCNewSyntaxTestCase(TestBase):
self.line = line_number('main.m', '// Set breakpoint 0 here.')
@skipUnlessDarwin
- @expectedFailureAll(oslist=['macosx'], compiler='clang', compiler_version=['<', '7.0.0'])
- @unittest2.skipIf(platform.system() != "Darwin" or StrictVersion('12.0.0') > platform.release(), "Only supported on Darwin 12.0.0+")
+ @expectedFailureAll(
+ oslist=['macosx'],
+ compiler='clang',
+ compiler_version=[
+ '<',
+ '7.0.0'])
+ @skipIf(macos_version=["<", "10.12"])
+ @expectedFailureAll(archs=["i[3-6]86"])
def test_expr(self):
self.build()
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'])
-
- self.expect("expr --object-description -- immutable_array[0]", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["foo"])
-
- self.expect("expr --object-description -- mutable_array[0]", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["foo"])
-
- self.expect("expr --object-description -- mutable_array[0] = @\"bar\"", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["bar"])
-
- self.expect("expr --object-description -- mutable_array[0]", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["bar"])
-
- self.expect("expr --object-description -- immutable_dictionary[@\"key\"]", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["value"])
-
- self.expect("expr --object-description -- mutable_dictionary[@\"key\"]", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["value"])
-
- self.expect("expr --object-description -- mutable_dictionary[@\"key\"] = @\"object\"", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["object"])
-
- self.expect("expr --object-description -- mutable_dictionary[@\"key\"]", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["object"])
-
- self.expect("expr --object-description -- @[ @\"foo\", @\"bar\" ]", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["NSArray", "foo", "bar"])
-
- self.expect("expr --object-description -- @{ @\"key\" : @\"object\" }", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["key", "object"])
-
- self.expect("expr --object-description -- @'a'", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = [str(ord('a'))])
-
- self.expect("expr --object-description -- @1", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["1"])
-
- self.expect("expr --object-description -- @1l", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["1"])
-
- self.expect("expr --object-description -- @1ul", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["1"])
-
- self.expect("expr --object-description -- @1ll", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["1"])
-
- self.expect("expr --object-description -- @1ull", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["1"])
+ substrs=[' resolved, hit count = 1'])
+
+ self.expect(
+ "expr --object-description -- immutable_array[0]",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["foo"])
+
+ self.expect(
+ "expr --object-description -- mutable_array[0]",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["foo"])
+
+ self.expect(
+ "expr --object-description -- mutable_array[0] = @\"bar\"",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["bar"])
+
+ self.expect(
+ "expr --object-description -- mutable_array[0]",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["bar"])
+
+ self.expect(
+ "expr --object-description -- immutable_dictionary[@\"key\"]",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["value"])
+
+ self.expect(
+ "expr --object-description -- mutable_dictionary[@\"key\"]",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["value"])
+
+ self.expect(
+ "expr --object-description -- mutable_dictionary[@\"key\"] = @\"object\"",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["object"])
+
+ self.expect(
+ "expr --object-description -- mutable_dictionary[@\"key\"]",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["object"])
+
+ self.expect(
+ "expr --object-description -- @[ @\"foo\", @\"bar\" ]",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "NSArray",
+ "foo",
+ "bar"])
+
+ self.expect(
+ "expr --object-description -- @{ @\"key\" : @\"object\" }",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "key",
+ "object"])
+
+ self.expect("expr --object-description -- @'a'",
+ VARIABLES_DISPLAYED_CORRECTLY, substrs=[str(ord('a'))])
+
+ self.expect(
+ "expr --object-description -- @1",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["1"])
+
+ self.expect(
+ "expr --object-description -- @1l",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["1"])
+
+ self.expect(
+ "expr --object-description -- @1ul",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["1"])
+
+ self.expect(
+ "expr --object-description -- @1ll",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["1"])
+
+ self.expect(
+ "expr --object-description -- @1ull",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["1"])
self.expect("expr -- @123.45", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["NSNumber", "123.45"])
-
- self.expect("expr --object-description -- @( 1 + 3 )", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["4"])
- self.expect("expr -- @((char*)\"Hello world\" + 6)", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["NSString", "world"])
+ substrs=["NSNumber", "123.45"])
+
+ self.expect(
+ "expr --object-description -- @( 1 + 3 )",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=["4"])
+ self.expect(
+ "expr -- @((char*)\"Hello world\" + 6)",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "NSString",
+ "world"])
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-optimized/TestObjcOptimized.py b/packages/Python/lldbsuite/test/lang/objc/objc-optimized/TestObjcOptimized.py
index 2c3ac27d418f..08e9594be69f 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-optimized/TestObjcOptimized.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-optimized/TestObjcOptimized.py
@@ -10,8 +10,8 @@ optimized it into a register.
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
import re
@@ -21,6 +21,8 @@ from lldbsuite.test import lldbutil
# rdar://problem/9087739
# test failure: objc_optimized does not work for "-C clang -A i386"
+
+
@skipUnlessDarwin
class ObjcOptimizedTestCase(TestBase):
@@ -35,15 +37,24 @@ class ObjcOptimizedTestCase(TestBase):
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
- lldbutil.run_break_set_by_symbol (self, self.method_spec, num_expected_locations=1, sym_exact=True)
+ lldbutil.run_break_set_by_symbol(
+ self,
+ self.method_spec,
+ num_expected_locations=1,
+ sym_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
- self.expect("thread backtrace", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ["stop reason = breakpoint"],
- patterns = ["frame.*0:.*%s %s" % (self.myclass, self.mymethod)])
+ self.expect(
+ "thread backtrace",
+ STOPPED_DUE_TO_BREAKPOINT,
+ substrs=["stop reason = breakpoint"],
+ patterns=[
+ "frame.*0:.*%s %s" %
+ (self.myclass,
+ self.mymethod)])
self.expect('expression member',
- startstr = "(int) $0 = 5")
+ startstr="(int) $0 = 5")
# <rdar://problem/12693963>
interp = self.dbg.GetCommandInterpreter()
@@ -59,7 +70,7 @@ class ObjcOptimizedTestCase(TestBase):
desired_pointer = mo.group(0)
self.expect('expression (self)',
- substrs = [("(%s *) $1 = " % self.myclass), desired_pointer])
+ substrs=[("(%s *) $1 = " % self.myclass), desired_pointer])
self.expect('expression self->non_member', error=True,
- substrs = ["does not have a member named 'non_member'"])
+ substrs=["does not have a member named 'non_member'"])
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-property/TestObjCProperty.py b/packages/Python/lldbsuite/test/lang/objc/objc-property/TestObjCProperty.py
index 22fe3136a511..790bc9c08619 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-property/TestObjCProperty.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-property/TestObjCProperty.py
@@ -5,23 +5,24 @@ Use lldb Python API to verify that expression evaluation for property references
from __future__ import print_function
-
-import os, time
+import os
+import time
import re
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ObjCPropertyTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
def setUp(self):
- # Call super's setUp().
+ # Call super's setUp().
TestBase.setUp(self)
- # Find the line number to break for main.c.
+ # Find the line number to break for main.c.
self.source_name = 'main.m'
@skipUnlessDarwin
@@ -36,61 +37,68 @@ class ObjCPropertyTestCase(TestBase):
# Create a target from the debugger.
- target = self.dbg.CreateTarget (exe)
+ target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
# Set up our breakpoints:
-
- main_bkpt = target.BreakpointCreateBySourceRegex ("Set a breakpoint here.", lldb.SBFileSpec (self.source_name))
+
+ main_bkpt = target.BreakpointCreateBySourceRegex(
+ "Set a breakpoint here.", lldb.SBFileSpec(self.source_name))
self.assertTrue(main_bkpt and
main_bkpt.GetNumLocations() == 1,
VALID_BREAKPOINT)
# Now launch the process, and do not stop at the entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process.GetState() == lldb.eStateStopped,
PROCESS_STOPPED)
- threads = lldbutil.get_threads_stopped_at_breakpoint (process, main_bkpt)
- self.assertTrue (len(threads) == 1)
+ threads = lldbutil.get_threads_stopped_at_breakpoint(
+ process, main_bkpt)
+ self.assertTrue(len(threads) == 1)
thread = threads[0]
frame = thread.GetFrameAtIndex(0)
- mine = frame.FindVariable ("mine")
- self.assertTrue (mine.IsValid())
- access_count = mine.GetChildMemberWithName ("_access_count")
- self.assertTrue (access_count.IsValid())
- start_access_count = access_count.GetValueAsUnsigned (123456)
- self.assertTrue (start_access_count != 123456)
+ mine = frame.FindVariable("mine")
+ self.assertTrue(mine.IsValid())
+ access_count = mine.GetChildMemberWithName("_access_count")
+ self.assertTrue(access_count.IsValid())
+ start_access_count = access_count.GetValueAsUnsigned(123456)
+ self.assertTrue(start_access_count != 123456)
#
# The first set of tests test calling the getter & setter of
# a property that actually only has a getter & setter and no
# @property.
#
- nonexistant_value = frame.EvaluateExpression("mine.nonexistantInt", False)
+ nonexistant_value = frame.EvaluateExpression(
+ "mine.nonexistantInt", False)
nonexistant_error = nonexistant_value.GetError()
- self.assertTrue (nonexistant_error.Success())
- nonexistant_int = nonexistant_value.GetValueAsUnsigned (123456)
- self.assertTrue (nonexistant_int == 6)
-
- # Calling the getter function would up the access count, so make sure that happened.
-
- new_access_count = access_count.GetValueAsUnsigned (123456)
- self.assertTrue (new_access_count - start_access_count == 1)
+ self.assertTrue(nonexistant_error.Success())
+ nonexistant_int = nonexistant_value.GetValueAsUnsigned(123456)
+ self.assertTrue(nonexistant_int == 6)
+
+ # Calling the getter function would up the access count, so make sure
+ # that happened.
+
+ new_access_count = access_count.GetValueAsUnsigned(123456)
+ self.assertTrue(new_access_count - start_access_count == 1)
start_access_count = new_access_count
#
# Now call the setter, then make sure that
- nonexistant_change = frame.EvaluateExpression("mine.nonexistantInt = 10", False)
+ nonexistant_change = frame.EvaluateExpression(
+ "mine.nonexistantInt = 10", False)
nonexistant_error = nonexistant_change.GetError()
- self.assertTrue (nonexistant_error.Success())
+ self.assertTrue(nonexistant_error.Success())
+
+ # Calling the setter function would up the access count, so make sure
+ # that happened.
- # Calling the setter function would up the access count, so make sure that happened.
-
- new_access_count = access_count.GetValueAsUnsigned (123456)
- self.assertTrue (new_access_count - start_access_count == 1)
+ new_access_count = access_count.GetValueAsUnsigned(123456)
+ self.assertTrue(new_access_count - start_access_count == 1)
start_access_count = new_access_count
#
@@ -100,30 +108,32 @@ class ObjCPropertyTestCase(TestBase):
backed_value = frame.EvaluateExpression("mine.backedInt", False)
backed_error = backed_value.GetError()
- self.assertTrue (backed_error.Success())
- backing_value = mine.GetChildMemberWithName ("_backedInt")
- self.assertTrue (backing_value.IsValid())
- self.assertTrue (backed_value.GetValueAsUnsigned (12345) == backing_value.GetValueAsUnsigned(23456))
+ self.assertTrue(backed_error.Success())
+ backing_value = mine.GetChildMemberWithName("_backedInt")
+ self.assertTrue(backing_value.IsValid())
+ self.assertTrue(backed_value.GetValueAsUnsigned(12345)
+ == backing_value.GetValueAsUnsigned(23456))
unbacked_value = frame.EvaluateExpression("mine.unbackedInt", False)
unbacked_error = unbacked_value.GetError()
- self.assertTrue (unbacked_error.Success())
+ self.assertTrue(unbacked_error.Success())
- idWithProtocol_value = frame.EvaluateExpression("mine.idWithProtocol", False)
+ idWithProtocol_value = frame.EvaluateExpression(
+ "mine.idWithProtocol", False)
idWithProtocol_error = idWithProtocol_value.GetError()
- self.assertTrue (idWithProtocol_error.Success())
- self.assertTrue (idWithProtocol_value.GetTypeName() == "id")
+ self.assertTrue(idWithProtocol_error.Success())
+ self.assertTrue(idWithProtocol_value.GetTypeName() == "id")
# Make sure that class property getter works as expected
value = frame.EvaluateExpression("BaseClass.classInt", False)
- self.assertTrue (value.GetError().Success())
- self.assertTrue (value.GetValueAsUnsigned (11111) == 123)
+ self.assertTrue(value.GetError().Success())
+ self.assertTrue(value.GetValueAsUnsigned(11111) == 123)
# Make sure that class property setter works as expected
value = frame.EvaluateExpression("BaseClass.classInt = 234", False)
- self.assertTrue (value.GetError().Success())
+ self.assertTrue(value.GetError().Success())
# Verify that setter above actually worked
value = frame.EvaluateExpression("BaseClass.classInt", False)
- self.assertTrue (value.GetError().Success())
- self.assertTrue (value.GetValueAsUnsigned (11111) == 234)
+ self.assertTrue(value.GetError().Success())
+ self.assertTrue(value.GetValueAsUnsigned(11111) == 234)
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-runtime-ivars/TestRuntimeIvars.py b/packages/Python/lldbsuite/test/lang/objc/objc-runtime-ivars/TestRuntimeIvars.py
index 791ce27dad00..f2c3ec0031b4 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-runtime-ivars/TestRuntimeIvars.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-runtime-ivars/TestRuntimeIvars.py
@@ -1,4 +1,6 @@
from lldbsuite.test import lldbinline
from lldbsuite.test import decorators
-lldbinline.MakeInlineTest(__file__, globals(), [decorators.skipIfFreeBSD,decorators.skipIfLinux,decorators.skipIfWindows])
+lldbinline.MakeInlineTest(
+ __file__, globals(), [
+ decorators.skipIfFreeBSD, decorators.skipIfLinux, decorators.skipIfWindows, decorators.skipIf(archs=["i386", "i686"])])
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py b/packages/Python/lldbsuite/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
index 7d88292a051c..65dc5ace544e 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestObjCStaticMethodStripped(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -19,11 +20,14 @@ class TestObjCStaticMethodStripped(TestBase):
TestBase.setUp(self)
# Find the line numbers to break inside main().
self.main_source = "static.m"
- self.break_line = line_number(self.main_source, '// Set breakpoint here.')
+ self.break_line = line_number(
+ self.main_source, '// Set breakpoint here.')
@skipUnlessDarwin
@add_test_categories(['pyapi'])
- @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")
#<rdar://problem/12042992>
def test_with_python_api(self):
"""Test calling functions in static methods with a stripped binary."""
@@ -35,31 +39,42 @@ class TestObjCStaticMethodStripped(TestBase):
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
- bpt = target.BreakpointCreateByLocation(self.main_source, self.break_line)
+ bpt = target.BreakpointCreateByLocation(
+ self.main_source, self.break_line)
self.assertTrue(bpt, VALID_BREAKPOINT)
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
# The stop reason of the thread should be breakpoint.
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, bpt)
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint(process, bpt)
# Make sure we stopped at the first breakpoint.
- self.assertTrue (len(thread_list) != 0, "No thread stopped at our breakpoint.")
- self.assertTrue (len(thread_list) == 1, "More than one thread stopped at our breakpoint.")
-
- # Now make sure we can call a function in the static method we've stopped in.
+ self.assertTrue(
+ len(thread_list) != 0,
+ "No thread stopped at our breakpoint.")
+ self.assertTrue(len(thread_list) == 1,
+ "More than one thread stopped at our breakpoint.")
+
+ # Now make sure we can call a function in the static method we've
+ # stopped in.
frame = thread_list[0].GetFrameAtIndex(0)
- self.assertTrue (frame, "Got a valid frame 0 frame.")
+ self.assertTrue(frame, "Got a valid frame 0 frame.")
- cmd_value = frame.EvaluateExpression ("(char *) sel_getName (_cmd)")
- self.assertTrue (cmd_value.IsValid())
+ cmd_value = frame.EvaluateExpression("(char *) sel_getName (_cmd)")
+ self.assertTrue(cmd_value.IsValid())
sel_name = cmd_value.GetSummary()
- self.assertTrue (sel_name == "\"doSomethingWithString:\"", "Got the right value for the selector as string.")
+ self.assertTrue(
+ sel_name == "\"doSomethingWithString:\"",
+ "Got the right value for the selector as string.")
- cmd_value = frame.EvaluateExpression ("[Foo doSomethingElseWithString:string]")
- self.assertTrue (cmd_value.IsValid())
+ cmd_value = frame.EvaluateExpression(
+ "[Foo doSomethingElseWithString:string]")
+ self.assertTrue(cmd_value.IsValid())
string_length = cmd_value.GetValueAsUnsigned()
- self.assertTrue (string_length == 27, "Got the right value from another class method on the same class.")
+ self.assertTrue(
+ string_length == 27,
+ "Got the right value from another class method on the same class.")
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-static-method/TestObjCStaticMethod.py b/packages/Python/lldbsuite/test/lang/objc/objc-static-method/TestObjCStaticMethod.py
index ccba42db4ebe..9f74d86d6336 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-static-method/TestObjCStaticMethod.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-static-method/TestObjCStaticMethod.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestObjCStaticMethod(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -19,7 +20,8 @@ class TestObjCStaticMethod(TestBase):
TestBase.setUp(self)
# Find the line numbers to break inside main().
self.main_source = "static.m"
- self.break_line = line_number(self.main_source, '// Set breakpoint here.')
+ self.break_line = line_number(
+ self.main_source, '// Set breakpoint here.')
@skipUnlessDarwin
@add_test_categories(['pyapi'])
@@ -32,31 +34,42 @@ class TestObjCStaticMethod(TestBase):
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
- bpt = target.BreakpointCreateByLocation(self.main_source, self.break_line)
+ bpt = target.BreakpointCreateByLocation(
+ self.main_source, self.break_line)
self.assertTrue(bpt, VALID_BREAKPOINT)
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
# The stop reason of the thread should be breakpoint.
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, bpt)
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint(process, bpt)
# Make sure we stopped at the first breakpoint.
- self.assertTrue (len(thread_list) != 0, "No thread stopped at our breakpoint.")
- self.assertTrue (len(thread_list) == 1, "More than one thread stopped at our breakpoint.")
-
- # Now make sure we can call a function in the static method we've stopped in.
+ self.assertTrue(
+ len(thread_list) != 0,
+ "No thread stopped at our breakpoint.")
+ self.assertTrue(len(thread_list) == 1,
+ "More than one thread stopped at our breakpoint.")
+
+ # Now make sure we can call a function in the static method we've
+ # stopped in.
frame = thread_list[0].GetFrameAtIndex(0)
- self.assertTrue (frame, "Got a valid frame 0 frame.")
+ self.assertTrue(frame, "Got a valid frame 0 frame.")
- cmd_value = frame.EvaluateExpression ("(char *) sel_getName (_cmd)")
- self.assertTrue (cmd_value.IsValid())
+ cmd_value = frame.EvaluateExpression("(char *) sel_getName (_cmd)")
+ self.assertTrue(cmd_value.IsValid())
sel_name = cmd_value.GetSummary()
- self.assertTrue (sel_name == "\"doSomethingWithString:\"", "Got the right value for the selector as string.")
+ self.assertTrue(
+ sel_name == "\"doSomethingWithString:\"",
+ "Got the right value for the selector as string.")
- cmd_value = frame.EvaluateExpression ("[self doSomethingElseWithString:string]")
- self.assertTrue (cmd_value.IsValid())
+ cmd_value = frame.EvaluateExpression(
+ "[self doSomethingElseWithString:string]")
+ self.assertTrue(cmd_value.IsValid())
string_length = cmd_value.GetValueAsUnsigned()
- self.assertTrue (string_length == 27, "Got the right value from another class method on the same class.")
+ self.assertTrue(
+ string_length == 27,
+ "Got the right value from another class method on the same class.")
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py b/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py
index d035287cfa00..8516ef3281ff 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py
@@ -3,16 +3,17 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestObjCStepping(TestBase):
- def getCategories (self):
+ def getCategories(self):
return ['basic_process']
mydir = TestBase.compute_mydir(__file__)
@@ -22,11 +23,16 @@ class TestObjCStepping(TestBase):
TestBase.setUp(self)
# Find the line numbers that we will step to in main:
self.main_source = "stepping-tests.m"
- self.source_randomMethod_line = line_number (self.main_source, '// Source randomMethod start line.')
- self.sourceBase_randomMethod_line = line_number (self.main_source, '// SourceBase randomMethod start line.')
- self.source_returnsStruct_start_line = line_number (self.main_source, '// Source returnsStruct start line.')
- self.sourceBase_returnsStruct_start_line = line_number (self.main_source, '// SourceBase returnsStruct start line.')
- self.stepped_past_nil_line = line_number (self.main_source, '// Step over nil should stop here.')
+ self.source_randomMethod_line = line_number(
+ self.main_source, '// Source randomMethod start line.')
+ self.sourceBase_randomMethod_line = line_number(
+ self.main_source, '// SourceBase randomMethod start line.')
+ self.source_returnsStruct_start_line = line_number(
+ self.main_source, '// Source returnsStruct start line.')
+ self.sourceBase_returnsStruct_start_line = line_number(
+ self.main_source, '// SourceBase returnsStruct start line.')
+ self.stepped_past_nil_line = line_number(
+ self.main_source, '// Step over nil should stop here.')
@skipUnlessDarwin
@add_test_categories(['pyapi'])
@@ -38,57 +44,65 @@ class TestObjCStepping(TestBase):
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
- self.main_source_spec = lldb.SBFileSpec (self.main_source)
+ self.main_source_spec = lldb.SBFileSpec(self.main_source)
breakpoints_to_disable = []
- break1 = target.BreakpointCreateBySourceRegex ("// Set first breakpoint here.", self.main_source_spec)
+ break1 = target.BreakpointCreateBySourceRegex(
+ "// Set first breakpoint here.", self.main_source_spec)
self.assertTrue(break1, VALID_BREAKPOINT)
- breakpoints_to_disable.append (break1)
+ breakpoints_to_disable.append(break1)
- break2 = target.BreakpointCreateBySourceRegex ("// Set second breakpoint here.", self.main_source_spec)
+ break2 = target.BreakpointCreateBySourceRegex(
+ "// Set second breakpoint here.", self.main_source_spec)
self.assertTrue(break2, VALID_BREAKPOINT)
- breakpoints_to_disable.append (break2)
+ breakpoints_to_disable.append(break2)
- break3 = target.BreakpointCreateBySourceRegex ('// Set third breakpoint here.', self.main_source_spec)
+ break3 = target.BreakpointCreateBySourceRegex(
+ '// Set third breakpoint here.', self.main_source_spec)
self.assertTrue(break3, VALID_BREAKPOINT)
- breakpoints_to_disable.append (break3)
+ breakpoints_to_disable.append(break3)
- break4 = target.BreakpointCreateBySourceRegex ('// Set fourth breakpoint here.', self.main_source_spec)
+ break4 = target.BreakpointCreateBySourceRegex(
+ '// Set fourth breakpoint here.', self.main_source_spec)
self.assertTrue(break4, VALID_BREAKPOINT)
- breakpoints_to_disable.append (break4)
+ breakpoints_to_disable.append(break4)
- break5 = target.BreakpointCreateBySourceRegex ('// Set fifth breakpoint here.', self.main_source_spec)
+ break5 = target.BreakpointCreateBySourceRegex(
+ '// Set fifth breakpoint here.', self.main_source_spec)
self.assertTrue(break5, VALID_BREAKPOINT)
- breakpoints_to_disable.append (break5)
+ breakpoints_to_disable.append(break5)
- break_returnStruct_call_super = target.BreakpointCreateBySourceRegex ('// Source returnsStruct call line.', self.main_source_spec)
+ break_returnStruct_call_super = target.BreakpointCreateBySourceRegex(
+ '// Source returnsStruct call line.', self.main_source_spec)
self.assertTrue(break_returnStruct_call_super, VALID_BREAKPOINT)
- breakpoints_to_disable.append (break_returnStruct_call_super)
+ breakpoints_to_disable.append(break_returnStruct_call_super)
- break_step_nil = target.BreakpointCreateBySourceRegex ('// Set nil step breakpoint here.', self.main_source_spec)
+ break_step_nil = target.BreakpointCreateBySourceRegex(
+ '// Set nil step breakpoint here.', self.main_source_spec)
self.assertTrue(break_step_nil, VALID_BREAKPOINT)
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
# The stop reason of the thread should be breakpoint.
- threads = lldbutil.get_threads_stopped_at_breakpoint (process, break1)
+ threads = lldbutil.get_threads_stopped_at_breakpoint(process, break1)
if len(threads) != 1:
- self.fail ("Failed to stop at breakpoint 1.")
+ self.fail("Failed to stop at breakpoint 1.")
thread = threads[0]
mySource = thread.GetFrameAtIndex(0).FindVariable("mySource")
self.assertTrue(mySource, "Found mySource local variable.")
- mySource_isa = mySource.GetChildMemberWithName ("isa")
+ mySource_isa = mySource.GetChildMemberWithName("isa")
self.assertTrue(mySource_isa, "Found mySource->isa local variable.")
- className = mySource_isa.GetSummary ()
+ className = mySource_isa.GetSummary()
if self.TraceOn():
- print(mySource_isa)
+ print(mySource_isa)
# Lets delete mySource so we can check that after stepping a child variable
# with no parent persists and is useful.
@@ -97,77 +111,114 @@ class TestObjCStepping(TestBase):
# Now step in, that should leave us in the Source randomMethod:
thread.StepInto()
line_number = thread.GetFrameAtIndex(0).GetLineEntry().GetLine()
- self.assertTrue (line_number == self.source_randomMethod_line, "Stepped into Source randomMethod.")
+ self.assertTrue(
+ line_number == self.source_randomMethod_line,
+ "Stepped into Source randomMethod.")
- # Now step in again, through the super call, and that should leave us in the SourceBase randomMethod:
+ # Now step in again, through the super call, and that should leave us
+ # in the SourceBase randomMethod:
thread.StepInto()
line_number = thread.GetFrameAtIndex(0).GetLineEntry().GetLine()
- self.assertTrue (line_number == self.sourceBase_randomMethod_line, "Stepped through super into SourceBase randomMethod.")
+ self.assertTrue(
+ line_number == self.sourceBase_randomMethod_line,
+ "Stepped through super into SourceBase randomMethod.")
- threads = lldbutil.continue_to_breakpoint (process, break2)
- self.assertTrue (len(threads) == 1, "Continued to second breakpoint in main.")
+ threads = lldbutil.continue_to_breakpoint(process, break2)
+ self.assertTrue(
+ len(threads) == 1,
+ "Continued to second breakpoint in main.")
- # Again, step in twice gets us to a stret method and a stret super call:
+ # Again, step in twice gets us to a stret method and a stret super
+ # call:
thread = threads[0]
thread.StepInto()
line_number = thread.GetFrameAtIndex(0).GetLineEntry().GetLine()
- self.assertTrue (line_number == self.source_returnsStruct_start_line, "Stepped into Source returnsStruct.")
-
- threads = lldbutil.continue_to_breakpoint (process, break_returnStruct_call_super)
- self.assertTrue (len(threads) == 1, "Stepped to the call super line in Source returnsStruct.")
+ self.assertTrue(
+ line_number == self.source_returnsStruct_start_line,
+ "Stepped into Source returnsStruct.")
+
+ threads = lldbutil.continue_to_breakpoint(
+ process, break_returnStruct_call_super)
+ self.assertTrue(
+ len(threads) == 1,
+ "Stepped to the call super line in Source returnsStruct.")
thread = threads[0]
thread.StepInto()
line_number = thread.GetFrameAtIndex(0).GetLineEntry().GetLine()
- self.assertTrue (line_number == self.sourceBase_returnsStruct_start_line, "Stepped through super into SourceBase returnsStruct.")
+ self.assertTrue(
+ line_number == self.sourceBase_returnsStruct_start_line,
+ "Stepped through super into SourceBase returnsStruct.")
- # Cool now continue to get past the call that initializes the Observer, and then do our steps in again to see that
- # we can find our way when we're stepping through a KVO swizzled object.
+ # Cool now continue to get past the call that initializes the Observer, and then do our steps in again to see that
+ # we can find our way when we're stepping through a KVO swizzled
+ # object.
- threads = lldbutil.continue_to_breakpoint (process, break3)
- self.assertTrue (len(threads) == 1, "Continued to third breakpoint in main, our object should now be swizzled.")
+ threads = lldbutil.continue_to_breakpoint(process, break3)
+ self.assertTrue(
+ len(threads) == 1,
+ "Continued to third breakpoint in main, our object should now be swizzled.")
- newClassName = mySource_isa.GetSummary ()
+ newClassName = mySource_isa.GetSummary()
if self.TraceOn():
- print(mySource_isa)
+ print(mySource_isa)
- self.assertTrue (newClassName != className, "The isa did indeed change, swizzled!")
+ self.assertTrue(
+ newClassName != className,
+ "The isa did indeed change, swizzled!")
# Now step in, that should leave us in the Source randomMethod:
thread = threads[0]
thread.StepInto()
line_number = thread.GetFrameAtIndex(0).GetLineEntry().GetLine()
- self.assertTrue (line_number == self.source_randomMethod_line, "Stepped into Source randomMethod in swizzled object.")
+ self.assertTrue(
+ line_number == self.source_randomMethod_line,
+ "Stepped into Source randomMethod in swizzled object.")
- # Now step in again, through the super call, and that should leave us in the SourceBase randomMethod:
+ # Now step in again, through the super call, and that should leave us
+ # in the SourceBase randomMethod:
thread.StepInto()
line_number = thread.GetFrameAtIndex(0).GetLineEntry().GetLine()
- self.assertTrue (line_number == self.sourceBase_randomMethod_line, "Stepped through super into SourceBase randomMethod in swizzled object.")
-
- threads = lldbutil.continue_to_breakpoint (process, break4)
- self.assertTrue (len(threads) == 1, "Continued to fourth breakpoint in main.")
+ self.assertTrue(
+ line_number == self.sourceBase_randomMethod_line,
+ "Stepped through super into SourceBase randomMethod in swizzled object.")
+
+ threads = lldbutil.continue_to_breakpoint(process, break4)
+ self.assertTrue(
+ len(threads) == 1,
+ "Continued to fourth breakpoint in main.")
thread = threads[0]
- # Again, step in twice gets us to a stret method and a stret super call:
+ # Again, step in twice gets us to a stret method and a stret super
+ # call:
thread.StepInto()
line_number = thread.GetFrameAtIndex(0).GetLineEntry().GetLine()
- self.assertTrue (line_number == self.source_returnsStruct_start_line, "Stepped into Source returnsStruct in swizzled object.")
-
- threads = lldbutil.continue_to_breakpoint(process, break_returnStruct_call_super)
- self.assertTrue (len(threads) == 1, "Stepped to the call super line in Source returnsStruct - second time.")
+ self.assertTrue(
+ line_number == self.source_returnsStruct_start_line,
+ "Stepped into Source returnsStruct in swizzled object.")
+
+ threads = lldbutil.continue_to_breakpoint(
+ process, break_returnStruct_call_super)
+ self.assertTrue(
+ len(threads) == 1,
+ "Stepped to the call super line in Source returnsStruct - second time.")
thread = threads[0]
thread.StepInto()
line_number = thread.GetFrameAtIndex(0).GetLineEntry().GetLine()
- self.assertTrue (line_number == self.sourceBase_returnsStruct_start_line, "Stepped through super into SourceBase returnsStruct in swizzled object.")
+ self.assertTrue(
+ line_number == self.sourceBase_returnsStruct_start_line,
+ "Stepped through super into SourceBase returnsStruct in swizzled object.")
for bkpt in breakpoints_to_disable:
bkpt.SetEnabled(False)
- threads = lldbutil.continue_to_breakpoint (process, break_step_nil)
- self.assertTrue (len(threads) == 1, "Continued to step nil breakpoint.")
+ threads = lldbutil.continue_to_breakpoint(process, break_step_nil)
+ self.assertTrue(len(threads) == 1, "Continued to step nil breakpoint.")
thread.StepInto()
line_number = thread.GetFrameAtIndex(0).GetLineEntry().GetLine()
- self.assertTrue (line_number == self.stepped_past_nil_line, "Step in over dispatch to nil stepped over.")
+ self.assertTrue(
+ line_number == self.stepped_past_nil_line,
+ "Step in over dispatch to nil stepped over.")
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py b/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py
index b2f2af766325..75f726340ef7 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestObjCStructArgument(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -19,7 +20,8 @@ class TestObjCStructArgument(TestBase):
TestBase.setUp(self)
# Find the line numbers to break inside main().
self.main_source = "test.m"
- self.break_line = line_number(self.main_source, '// Set breakpoint here.')
+ self.break_line = line_number(
+ self.main_source, '// Set breakpoint here.')
@skipUnlessDarwin
@add_test_categories(['pyapi'])
@@ -31,28 +33,36 @@ class TestObjCStructArgument(TestBase):
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
- bpt = target.BreakpointCreateByLocation(self.main_source, self.break_line)
+ bpt = target.BreakpointCreateByLocation(
+ self.main_source, self.break_line)
self.assertTrue(bpt, VALID_BREAKPOINT)
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
# The stop reason of the thread should be breakpoint.
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, bpt)
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint(process, bpt)
# Make sure we stopped at the first breakpoint.
- self.assertTrue (len(thread_list) != 0, "No thread stopped at our breakpoint.")
- self.assertTrue (len(thread_list) == 1, "More than one thread stopped at our breakpoint.")
-
+ self.assertTrue(
+ len(thread_list) != 0,
+ "No thread stopped at our breakpoint.")
+ self.assertTrue(len(thread_list) == 1,
+ "More than one thread stopped at our breakpoint.")
+
frame = thread_list[0].GetFrameAtIndex(0)
- self.assertTrue (frame, "Got a valid frame 0 frame.")
+ self.assertTrue(frame, "Got a valid frame 0 frame.")
- self.expect("p [summer sumThings:tts]", substrs = ['9'])
+ self.expect("p [summer sumThings:tts]", substrs=['9'])
- self.expect("po [NSValue valueWithRect:rect]", substrs = ['NSRect: {{0, 0}, {10, 20}}'])
+ self.expect(
+ "po [NSValue valueWithRect:rect]",
+ substrs=['NSRect: {{0, 0}, {10, 20}}'])
- # Now make sure we can call a method that returns a struct without crashing.
- cmd_value = frame.EvaluateExpression ("[provider getRange]")
- self.assertTrue (cmd_value.IsValid())
+ # Now make sure we can call a method that returns a struct without
+ # crashing.
+ cmd_value = frame.EvaluateExpression("[provider getRange]")
+ self.assertTrue(cmd_value.IsValid())
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m b/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m
index 8bf0ec07b710..f013c5602395 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m
@@ -25,10 +25,10 @@ int main()
ThingSummer *summer = [ThingSummer alloc];
struct things_to_sum tts = { 2, 3, 4 };
int ret = [summer sumThings:tts];
-
NSRect rect = {{0, 0}, {10, 20}};
-
- // Set breakpoint here.
- return rect.origin.x;
+ // The Objective C V1 runtime won't read types from metadata so we need
+ // NSValue in our debug info to use it in our test.
+ NSValue *v = [NSValue valueWithRect:rect];
+ return rect.origin.x; // Set breakpoint here.
}
}
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-struct-return/TestObjCStructReturn.py b/packages/Python/lldbsuite/test/lang/objc/objc-struct-return/TestObjCStructReturn.py
index 5a8722e71a45..6e56c06e8ae8 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-struct-return/TestObjCStructReturn.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-struct-return/TestObjCStructReturn.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestObjCClassMethod(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -19,7 +20,8 @@ class TestObjCClassMethod(TestBase):
TestBase.setUp(self)
# Find the line numbers to break inside main().
self.main_source = "test.m"
- self.break_line = line_number(self.main_source, '// Set breakpoint here.')
+ self.break_line = line_number(
+ self.main_source, '// Set breakpoint here.')
@skipUnlessDarwin
@add_test_categories(['pyapi'])
@@ -31,24 +33,30 @@ class TestObjCClassMethod(TestBase):
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
- bpt = target.BreakpointCreateByLocation(self.main_source, self.break_line)
+ bpt = target.BreakpointCreateByLocation(
+ self.main_source, self.break_line)
self.assertTrue(bpt, VALID_BREAKPOINT)
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
# The stop reason of the thread should be breakpoint.
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, bpt)
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint(process, bpt)
# Make sure we stopped at the first breakpoint.
- self.assertTrue (len(thread_list) != 0, "No thread stopped at our breakpoint.")
- self.assertTrue (len(thread_list) == 1, "More than one thread stopped at our breakpoint.")
-
+ self.assertTrue(
+ len(thread_list) != 0,
+ "No thread stopped at our breakpoint.")
+ self.assertTrue(len(thread_list) == 1,
+ "More than one thread stopped at our breakpoint.")
+
frame = thread_list[0].GetFrameAtIndex(0)
- self.assertTrue (frame, "Got a valid frame 0 frame.")
+ self.assertTrue(frame, "Got a valid frame 0 frame.")
- # Now make sure we can call a method that returns a struct without crashing.
- cmd_value = frame.EvaluateExpression ("[provider getRange]")
- self.assertTrue (cmd_value.IsValid())
+ # Now make sure we can call a method that returns a struct without
+ # crashing.
+ cmd_value = frame.EvaluateExpression("[provider getRange]")
+ self.assertTrue(cmd_value.IsValid())
diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-super/TestObjCSuper.py b/packages/Python/lldbsuite/test/lang/objc/objc-super/TestObjCSuper.py
index 39a0fb716abe..d1d755e289cd 100644
--- a/packages/Python/lldbsuite/test/lang/objc/objc-super/TestObjCSuper.py
+++ b/packages/Python/lldbsuite/test/lang/objc/objc-super/TestObjCSuper.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestObjCSuperMethod(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -19,10 +20,10 @@ class TestObjCSuperMethod(TestBase):
TestBase.setUp(self)
# Find the line numbers to break inside main().
self.main_source = "class.m"
- self.break_line = line_number(self.main_source, '// Set breakpoint here.')
+ self.break_line = line_number(
+ self.main_source, '// Set breakpoint here.')
@skipUnlessDarwin
- @expectedFailureAll(archs=["i[3-6]86"])
@add_test_categories(['pyapi'])
def test_with_python_api(self):
"""Test calling methods on super."""
@@ -32,29 +33,35 @@ class TestObjCSuperMethod(TestBase):
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
- bpt = target.BreakpointCreateByLocation(self.main_source, self.break_line)
+ bpt = target.BreakpointCreateByLocation(
+ self.main_source, self.break_line)
self.assertTrue(bpt, VALID_BREAKPOINT)
# Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.assertTrue(process, PROCESS_IS_VALID)
# The stop reason of the thread should be breakpoint.
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, bpt)
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint(process, bpt)
# Make sure we stopped at the first breakpoint.
- self.assertTrue (len(thread_list) != 0, "No thread stopped at our breakpoint.")
- self.assertTrue (len(thread_list) == 1, "More than one thread stopped at our breakpoint.")
-
- # Now make sure we can call a function in the class method we've stopped in.
+ self.assertTrue(
+ len(thread_list) != 0,
+ "No thread stopped at our breakpoint.")
+ self.assertTrue(len(thread_list) == 1,
+ "More than one thread stopped at our breakpoint.")
+
+ # Now make sure we can call a function in the class method we've
+ # stopped in.
frame = thread_list[0].GetFrameAtIndex(0)
- self.assertTrue (frame, "Got a valid frame 0 frame.")
+ self.assertTrue(frame, "Got a valid frame 0 frame.")
- cmd_value = frame.EvaluateExpression ("[self get]")
- self.assertTrue (cmd_value.IsValid())
- self.assertTrue (cmd_value.GetValueAsUnsigned() == 2)
+ cmd_value = frame.EvaluateExpression("[self get]")
+ self.assertTrue(cmd_value.IsValid())
+ self.assertTrue(cmd_value.GetValueAsUnsigned() == 2)
- cmd_value = frame.EvaluateExpression ("[super get]")
- self.assertTrue (cmd_value.IsValid())
- self.assertTrue (cmd_value.GetValueAsUnsigned() == 1)
+ cmd_value = frame.EvaluateExpression("[super get]")
+ self.assertTrue(cmd_value.IsValid())
+ self.assertTrue(cmd_value.GetValueAsUnsigned() == 1)
diff --git a/packages/Python/lldbsuite/test/lang/objc/print-obj/TestPrintObj.py b/packages/Python/lldbsuite/test/lang/objc/print-obj/TestPrintObj.py
index 33f7a0519fa8..288f912dc79e 100644
--- a/packages/Python/lldbsuite/test/lang/objc/print-obj/TestPrintObj.py
+++ b/packages/Python/lldbsuite/test/lang/objc/print-obj/TestPrintObj.py
@@ -5,13 +5,14 @@ Test "print object" where another thread blocks the print object from making pro
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
@skipUnlessDarwin
class PrintObjTestCase(TestBase):
@@ -47,14 +48,16 @@ class PrintObjTestCase(TestBase):
self.runCmd("breakpoint list")
# Launch the process, and do not stop at the entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ process = target.LaunchSimple(
+ None, None, self.get_process_working_directory())
self.runCmd("thread backtrace all")
# Let's get the current stopped thread. We'd like to switch to the
# other thread to issue our 'po lock_me' command.
import lldbsuite.test.lldbutil as lldbutil
- this_thread = lldbutil.get_stopped_thread(process, lldb.eStopReasonBreakpoint)
+ this_thread = lldbutil.get_stopped_thread(
+ process, lldb.eStopReasonBreakpoint)
self.assertTrue(this_thread)
# Find the other thread. The iteration protocol of SBProcess and the
@@ -65,7 +68,8 @@ class PrintObjTestCase(TestBase):
other_thread = t
break
- # Set the other thread as the selected thread to issue our 'po' command.other
+ # Set the other thread as the selected thread to issue our 'po'
+ # command.other
self.assertTrue(other_thread)
process.SetSelectedThread(other_thread)
if self.TraceOn():
@@ -86,4 +90,4 @@ class PrintObjTestCase(TestBase):
break
self.expect("po lock_me", OBJECT_PRINTED_CORRECTLY,
- substrs = ['I am pretty special.'])
+ substrs=['I am pretty special.'])
diff --git a/packages/Python/lldbsuite/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py b/packages/Python/lldbsuite/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
index 32f2e7c8d6dc..fe7d5d48ca7e 100644
--- a/packages/Python/lldbsuite/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
+++ b/packages/Python/lldbsuite/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
@@ -5,13 +5,14 @@ Test that objective-c method returning BOOL works correctly.
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
@skipUnlessDarwin
class MethodReturningBOOLTestCase(TestBase):
@@ -35,12 +36,13 @@ class MethodReturningBOOLTestCase(TestBase):
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
- 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)
self.expect("process status", STOPPED_DUE_TO_BREAKPOINT,
- substrs = [" at %s:%d" % (self.main_source, self.line),
- "stop reason = breakpoint"])
+ substrs=[" at %s:%d" % (self.main_source, self.line),
+ "stop reason = breakpoint"])
# rdar://problem/9691614
self.runCmd('p (int)[my isValid]')
diff --git a/packages/Python/lldbsuite/test/lang/objc/rdar-10967107/TestRdar10967107.py b/packages/Python/lldbsuite/test/lang/objc/rdar-10967107/TestRdar10967107.py
index a4654d4bd1b4..1375a78f87a5 100644
--- a/packages/Python/lldbsuite/test/lang/objc/rdar-10967107/TestRdar10967107.py
+++ b/packages/Python/lldbsuite/test/lang/objc/rdar-10967107/TestRdar10967107.py
@@ -5,13 +5,14 @@ Test that CoreFoundation classes CFGregorianDate and CFRange are not improperly
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
@skipUnlessDarwin
class Rdar10967107TestCase(TestBase):
@@ -35,11 +36,38 @@ class Rdar10967107TestCase(TestBase):
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
- lldbutil.run_break_set_by_file_and_line (self, self.main_source, self.line, num_expected_locations=1, loc_exact=True)
+ lldbutil.run_break_set_by_file_and_line(
+ self,
+ self.main_source,
+ self.line,
+ num_expected_locations=1,
+ loc_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
# check that each type is correctly bound to its list of children
- self.expect("frame variable cf_greg_date --raw", substrs = ['year','month','day','hour','minute','second'])
- self.expect("frame variable cf_range --raw", substrs = ['location','length'])
+ self.expect(
+ "frame variable cf_greg_date --raw",
+ substrs=[
+ 'year',
+ 'month',
+ 'day',
+ 'hour',
+ 'minute',
+ 'second'])
+ self.expect(
+ "frame variable cf_range --raw",
+ substrs=[
+ 'location',
+ 'length'])
# check that printing both does not somehow confuse LLDB
- self.expect("frame variable --raw", substrs = ['year','month','day','hour','minute','second','location','length'])
+ self.expect(
+ "frame variable --raw",
+ substrs=[
+ 'year',
+ 'month',
+ 'day',
+ 'hour',
+ 'minute',
+ 'second',
+ 'location',
+ 'length'])
diff --git a/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py b/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py
index f1d38f8b7d32..26afe71d1de9 100644
--- a/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py
+++ b/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py
@@ -5,13 +5,14 @@ Test that we do not attempt to make a dynamic type for a 'const char*'
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
@skipUnlessDarwin
class Rdar10967107TestCase(TestBase):
@@ -35,32 +36,47 @@ class Rdar10967107TestCase(TestBase):
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
- lldbutil.run_break_set_by_file_and_line (self, self.main_source, self.line, num_expected_locations=1, loc_exact=True)
+ lldbutil.run_break_set_by_file_and_line(
+ self,
+ self.main_source,
+ self.line,
+ num_expected_locations=1,
+ loc_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
- # check that we correctly see the const char*, even with dynamic types on
- self.expect("frame variable my_string", substrs = ['const char *'])
- self.expect("frame variable my_string --dynamic-type run-target", substrs = ['const char *'])
+ # check that we correctly see the const char*, even with dynamic types
+ # on
+ self.expect("frame variable my_string", substrs=['const char *'])
+ self.expect(
+ "frame variable my_string --dynamic-type run-target",
+ substrs=['const char *'])
# check that expr also gets it right
- self.expect("expr my_string", substrs = ['const char *'])
- self.expect("expr -d run -- my_string", substrs = ['const char *'])
+ self.expect("expr my_string", substrs=['const char *'])
+ self.expect("expr -d run -- my_string", substrs=['const char *'])
# but check that we get the real Foolie as such
- self.expect("frame variable my_foolie", substrs = ['FoolMeOnce *'])
- self.expect("frame variable my_foolie --dynamic-type run-target", substrs = ['FoolMeOnce *'])
+ self.expect("frame variable my_foolie", substrs=['FoolMeOnce *'])
+ self.expect(
+ "frame variable my_foolie --dynamic-type run-target",
+ substrs=['FoolMeOnce *'])
# check that expr also gets it right
- self.expect("expr my_foolie", substrs = ['FoolMeOnce *'])
- self.expect("expr -d run -- my_foolie", substrs = ['FoolMeOnce *'])
+ self.expect("expr my_foolie", substrs=['FoolMeOnce *'])
+ self.expect("expr -d run -- my_foolie", substrs=['FoolMeOnce *'])
# now check that assigning a true string does not break anything
self.runCmd("next")
- # check that we correctly see the const char*, even with dynamic types on
- self.expect("frame variable my_string", substrs = ['const char *'])
- self.expect("frame variable my_string --dynamic-type run-target", substrs = ['const char *'])
+ # check that we correctly see the const char*, even with dynamic types
+ # on
+ self.expect("frame variable my_string", substrs=['const char *'])
+ self.expect(
+ "frame variable my_string --dynamic-type run-target",
+ substrs=['const char *'])
# check that expr also gets it right
- self.expect("expr my_string", substrs = ['const char *'])
- self.expect("expr -d run -- my_string", substrs = ['const char *'])
+ self.expect("expr my_string", substrs=['const char *'])
+ self.expect("expr -d run -- my_string", substrs=['const char *'])
# but check that we get the real Foolie as such
- self.expect("frame variable my_foolie", substrs = ['FoolMeOnce *'])
- self.expect("frame variable my_foolie --dynamic-type run-target", substrs = ['FoolMeOnce *'])
+ self.expect("frame variable my_foolie", substrs=['FoolMeOnce *'])
+ self.expect(
+ "frame variable my_foolie --dynamic-type run-target",
+ substrs=['FoolMeOnce *'])
# check that expr also gets it right
- self.expect("expr my_foolie", substrs = ['FoolMeOnce *'])
- self.expect("expr -d run -- my_foolie", substrs = ['FoolMeOnce *'])
+ self.expect("expr my_foolie", substrs=['FoolMeOnce *'])
+ self.expect("expr -d run -- my_foolie", substrs=['FoolMeOnce *'])
diff --git a/packages/Python/lldbsuite/test/lang/objc/rdar-12408181/TestRdar12408181.py b/packages/Python/lldbsuite/test/lang/objc/rdar-12408181/TestRdar12408181.py
index 7bc92595ef38..d431e98ba797 100644
--- a/packages/Python/lldbsuite/test/lang/objc/rdar-12408181/TestRdar12408181.py
+++ b/packages/Python/lldbsuite/test/lang/objc/rdar-12408181/TestRdar12408181.py
@@ -5,13 +5,14 @@ Test that we are able to find out how many children NSWindow has
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
@skipUnlessDarwin
class Rdar12408181TestCase(TestBase):
@@ -35,15 +36,29 @@ class Rdar12408181TestCase(TestBase):
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
- lldbutil.run_break_set_by_file_and_line (self, self.main_source, self.line, num_expected_locations=1, loc_exact=True)
+ lldbutil.run_break_set_by_file_and_line(
+ self,
+ self.main_source,
+ self.line,
+ num_expected_locations=1,
+ loc_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
- if self.frame().EvaluateExpression('(void*)_CGSDefaultConnection()').GetValueAsUnsigned() != 0:
+ if self.frame().EvaluateExpression(
+ '(void*)_CGSDefaultConnection()').GetValueAsUnsigned() != 0:
window = self.frame().FindVariable("window")
window_dynamic = window.GetDynamicValue(lldb.eDynamicCanRunTarget)
- self.assertTrue(window.GetNumChildren() > 1, "NSWindow (static) only has 1 child!")
- self.assertTrue(window_dynamic.GetNumChildren() > 1, "NSWindow (dynamic) only has 1 child!")
- self.assertTrue(window.GetChildAtIndex(0).IsValid(), "NSWindow (static) has an invalid child")
- self.assertTrue(window_dynamic.GetChildAtIndex(0).IsValid(), "NSWindow (dynamic) has an invalid child")
+ self.assertTrue(
+ window.GetNumChildren() > 1,
+ "NSWindow (static) only has 1 child!")
+ self.assertTrue(
+ window_dynamic.GetNumChildren() > 1,
+ "NSWindow (dynamic) only has 1 child!")
+ self.assertTrue(
+ window.GetChildAtIndex(0).IsValid(),
+ "NSWindow (static) has an invalid child")
+ self.assertTrue(
+ window_dynamic.GetChildAtIndex(0).IsValid(),
+ "NSWindow (dynamic) has an invalid child")
else:
self.skipTest('no WindowServer connection')
diff --git a/packages/Python/lldbsuite/test/lang/objc/real-definition/TestRealDefinition.py b/packages/Python/lldbsuite/test/lang/objc/real-definition/TestRealDefinition.py
index c8f9a9c82c61..820ddcd9ec6a 100644
--- a/packages/Python/lldbsuite/test/lang/objc/real-definition/TestRealDefinition.py
+++ b/packages/Python/lldbsuite/test/lang/objc/real-definition/TestRealDefinition.py
@@ -3,13 +3,14 @@
from __future__ import print_function
-
-import os, time
+import os
+import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class TestRealDefinition(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -22,29 +23,35 @@ class TestRealDefinition(TestBase):
self.build()
self.common_setup()
- line = line_number('Foo.m', '// Set breakpoint where Bar is an interface')
- lldbutil.run_break_set_by_file_and_line (self, 'Foo.m', line, num_expected_locations=1, loc_exact=True);
+ line = line_number(
+ 'Foo.m', '// Set breakpoint where Bar is an interface')
+ lldbutil.run_break_set_by_file_and_line(
+ self, 'Foo.m', 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'])
# Run and stop at Foo
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
- substrs = [' resolved, hit count = 1'])
+ substrs=[' resolved, hit count = 1'])
self.runCmd("continue", RUN_SUCCEEDED)
# Run at stop at main
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
- substrs = [' resolved, hit count = 1'])
-
+ substrs=[' resolved, hit count = 1'])
+
# This should display correctly.
- self.expect("frame variable foo->_bar->_hidden_ivar", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["(NSString *)", "foo->_bar->_hidden_ivar = 0x"])
+ self.expect(
+ "frame variable foo->_bar->_hidden_ivar",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "(NSString *)",
+ "foo->_bar->_hidden_ivar = 0x"])
@skipUnlessDarwin
def test_frame_var_after_stop_at_implementation(self):
@@ -54,29 +61,35 @@ class TestRealDefinition(TestBase):
self.build()
self.common_setup()
- line = line_number('Bar.m', '// Set breakpoint where Bar is an implementation')
- lldbutil.run_break_set_by_file_and_line (self, 'Bar.m', line, num_expected_locations=1, loc_exact=True)
+ line = line_number(
+ 'Bar.m', '// Set breakpoint where Bar is an implementation')
+ lldbutil.run_break_set_by_file_and_line(
+ self, 'Bar.m', 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'])
# Run and stop at Foo
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
- substrs = [' resolved, hit count = 1'])
+ substrs=[' resolved, hit count = 1'])
self.runCmd("continue", RUN_SUCCEEDED)
# Run at stop at main
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
- substrs = [' resolved, hit count = 1'])
+ substrs=[' resolved, hit count = 1'])
# This should display correctly.
- self.expect("frame variable foo->_bar->_hidden_ivar", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["(NSString *)", "foo->_bar->_hidden_ivar = 0x"])
+ self.expect(
+ "frame variable foo->_bar->_hidden_ivar",
+ VARIABLES_DISPLAYED_CORRECTLY,
+ substrs=[
+ "(NSString *)",
+ "foo->_bar->_hidden_ivar = 0x"])
def common_setup(self):
exe = os.path.join(os.getcwd(), "a.out")
@@ -84,4 +97,5 @@ class TestRealDefinition(TestBase):
# Break inside the foo function which takes a bar_ptr argument.
line = line_number('main.m', '// Set breakpoint in main')
- lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
+ lldbutil.run_break_set_by_file_and_line(
+ self, "main.m", line, num_expected_locations=1, loc_exact=True)
diff --git a/packages/Python/lldbsuite/test/lang/objc/self/TestObjCSelf.py b/packages/Python/lldbsuite/test/lang/objc/self/TestObjCSelf.py
index 004563c55be2..48c4313375c1 100644
--- a/packages/Python/lldbsuite/test/lang/objc/self/TestObjCSelf.py
+++ b/packages/Python/lldbsuite/test/lang/objc/self/TestObjCSelf.py
@@ -6,10 +6,11 @@ from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ObjCSelfTestCase(TestBase):
-
+
mydir = TestBase.compute_mydir(__file__)
-
+
@skipUnlessDarwin
def test_with_run_command(self):
"""Test that the appropriate member variables are available when stopped in Objective-C class and instance methods"""
@@ -22,16 +23,17 @@ class ObjCSelfTestCase(TestBase):
self.runCmd("process launch", RUN_SUCCEEDED)
self.expect("expression -- m_a = 2",
- startstr = "(int) $0 = 2")
-
+ startstr="(int) $0 = 2")
+
self.runCmd("process continue")
-
+
# This would be disallowed if we enforced const. But we don't.
self.expect("expression -- m_a = 2",
error=True)
-
- self.expect("expression -- s_a",
- startstr = "(int) $1 = 5")
+
+ self.expect("expression -- s_a",
+ startstr="(int) $1 = 5")
def set_breakpoint(self, line):
- lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
+ lldbutil.run_break_set_by_file_and_line(
+ self, "main.m", line, num_expected_locations=1, loc_exact=True)
diff --git a/packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py b/packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
index 7c294ef8cc64..97b137818a07 100644
--- a/packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
+++ b/packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
@@ -3,9 +3,9 @@
from __future__ import print_function
-
import unittest2
-import os, time
+import os
+import time
import platform
from distutils.version import StrictVersion
@@ -15,6 +15,7 @@ from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class ObjCSingleEntryDictionaryTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -32,37 +33,46 @@ class ObjCSingleEntryDictionaryTestCase(TestBase):
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'])
d1 = self.frame().FindVariable("d1")
d1.SetPreferSyntheticValue(True)
d1.SetPreferDynamicValue(lldb.eDynamicCanRunTarget)
-
- self.assertTrue(d1.GetNumChildren() == 1, "dictionary has != 1 child elements")
+
+ self.assertTrue(
+ d1.GetNumChildren() == 1,
+ "dictionary has != 1 child elements")
pair = d1.GetChildAtIndex(0)
pair.SetPreferSyntheticValue(True)
pair.SetPreferDynamicValue(lldb.eDynamicCanRunTarget)
-
- self.assertTrue(pair.GetNumChildren() == 2, "pair has != 2 child elements")
-
+
+ self.assertTrue(
+ pair.GetNumChildren() == 2,
+ "pair has != 2 child elements")
+
key = pair.GetChildMemberWithName("key")
value = pair.GetChildMemberWithName("value")
-
+
key.SetPreferSyntheticValue(True)
key.SetPreferDynamicValue(lldb.eDynamicCanRunTarget)
value.SetPreferSyntheticValue(True)
value.SetPreferDynamicValue(lldb.eDynamicCanRunTarget)
-
- self.assertTrue(key.GetSummary() == '@"key"', "key doesn't contain key")
- self.assertTrue(value.GetSummary() == '@"value"', "value doesn't contain value")
+
+ self.assertTrue(
+ key.GetSummary() == '@"key"',
+ "key doesn't contain key")
+ self.assertTrue(
+ value.GetSummary() == '@"value"',
+ "value doesn't contain value")
diff --git a/packages/Python/lldbsuite/test/lang/objc/unicode-string/TestUnicodeString.py b/packages/Python/lldbsuite/test/lang/objc/unicode-string/TestUnicodeString.py
new file mode 100644
index 000000000000..c9986aafd7d1
--- /dev/null
+++ b/packages/Python/lldbsuite/test/lang/objc/unicode-string/TestUnicodeString.py
@@ -0,0 +1,6 @@
+from lldbsuite.test import lldbinline
+from lldbsuite.test import decorators
+
+lldbinline.MakeInlineTest(
+ __file__, globals(), [
+ decorators.skipUnlessDarwin])
diff --git a/packages/Python/lldbsuite/test/lang/objc/unicode-string/main.m b/packages/Python/lldbsuite/test/lang/objc/unicode-string/main.m
new file mode 100644
index 000000000000..e55eb1ede9b4
--- /dev/null
+++ b/packages/Python/lldbsuite/test/lang/objc/unicode-string/main.m
@@ -0,0 +1,5 @@
+#import <Foundation/Foundation.h>
+
+int main() {
+ NSLog(@"凸"); //% self.expect("po @\"凹\"", DATA_TYPES_DISPLAYED_CORRECTLY, substrs = ["凹"])
+}
diff --git a/packages/Python/lldbsuite/test/lang/objc/variadic_methods/TestVariadicMethods.py b/packages/Python/lldbsuite/test/lang/objc/variadic_methods/TestVariadicMethods.py
index 791ce27dad00..804905106dfc 100644
--- a/packages/Python/lldbsuite/test/lang/objc/variadic_methods/TestVariadicMethods.py
+++ b/packages/Python/lldbsuite/test/lang/objc/variadic_methods/TestVariadicMethods.py
@@ -1,4 +1,6 @@
from lldbsuite.test import lldbinline
from lldbsuite.test import decorators
-lldbinline.MakeInlineTest(__file__, globals(), [decorators.skipIfFreeBSD,decorators.skipIfLinux,decorators.skipIfWindows])
+lldbinline.MakeInlineTest(
+ __file__, globals(), [
+ decorators.skipIfFreeBSD, decorators.skipIfLinux, decorators.skipIfWindows])