diff options
author | Jason Molenda <jmolenda@apple.com> | 2017-09-22 22:34:53 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2017-09-22 22:34:53 +0000 |
commit | 0187a8f6f99d22bf2ce7727e705be4c18e8d6fe4 (patch) | |
tree | 95d5c0a42ec723578ffa47571ac0b7c6c0ef9a05 /lldb/packages/Python/lldbsuite/test | |
parent | df963a38a9e27fc43b485dfdf52bc1b090087e06 (diff) | |
download | bcm5719-llvm-0187a8f6f99d22bf2ce7727e705be4c18e8d6fe4.tar.gz bcm5719-llvm-0187a8f6f99d22bf2ce7727e705be4c18e8d6fe4.zip |
Initial patchset to get the testsuite running against armv7 and arm64 iOS devices.
Normal customer devices won't be able to run these devices, we're hoping to get
a public facing bot set up at some point. Both devices pass the testsuite without
any errors or failures.
I have seen some instability with the armv7 test runs, I may submit additional patches
to address this. arm64 looks good.
I'll be watching the bots for the rest of today; if any problems are introduced by
this patch I'll revert it - if anyone sees a problem with their bot that I don't
see, please do the same. I know it's a rather large patch.
One change I had to make specifically for iOS devices was that debugserver can't
create files. There were several tests that launch the inferior process redirecting
its output to a file, then they retrieve the file. They were not trying to test
file redirection in these tests, so I rewrote those to write their output to a file
directly.
llvm-svn: 314038
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
88 files changed, 486 insertions, 163 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py index 2a36ee4b370..eee44fca12f 100644 --- a/lldb/packages/Python/lldbsuite/test/decorators.py +++ b/lldb/packages/Python/lldbsuite/test/decorators.py @@ -545,6 +545,23 @@ def skipIfiOSSimulator(func): return "skip on the iOS Simulator" if configuration.lldb_platform_name == 'ios-simulator' else None return skipTestIfFn(is_ios_simulator)(func) +def skipIfiOS(func): + return skipIfPlatform(["ios"])(func) + +def skipIftvOS(func): + return skipIfPlatform(["tvos"])(func) + +def skipIfwatchOS(func): + return skipIfPlatform(["watchos"])(func) + +def skipIfbridgeOS(func): + return skipIfPlatform(["bridgeos"])(func) + +def skipIfDarwinEmbedded(func): + """Decorate the item to skip tests that should be skipped on Darwin armv7/arm64 targets.""" + return skipIfPlatform( + lldbplatform.translate( + lldbplatform.darwin_embedded))(func) def skipIfFreeBSD(func): """Decorate the item to skip tests that should be skipped on FreeBSD.""" diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py b/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py index a2d149f4b49..16736f79852 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py +++ b/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py @@ -44,5 +44,13 @@ class ExprCommandCallFunctionTestCase(TestBase): # Calling this function now succeeds, but we follow the typedef return type through to # const char *, and thus don't invoke the Summary formatter. - self.expect("print str.c_str()", - substrs=['Hello world']) + + # clang's libstdc++ on ios arm64 inlines std::string::c_str() always; + # skip this part of the test. + triple = self.dbg.GetSelectedPlatform().GetTriple() + do_cstr_test = True + if triple == "arm64-apple-ios" or triple == "arm64-apple-tvos" or triple == "armv7k-apple-watchos" or triple == "arm64-apple-bridgeos": + do_cstr_test = False + if do_cstr_test: + self.expect("print str.c_str()", + substrs=['Hello world']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py b/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py index 74991999d92..445979f5c70 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py +++ b/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py @@ -58,7 +58,10 @@ class ExprCharTestCase(TestBase): @expectedFailureAll( archs=[ "i[3-6]86", - "x86_64"], + "x86_64", + "arm64", + 'armv7', + 'armv7k'], bugnumber="llvm.org/pr23069, <rdar://problem/28721938>") @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr21765") @expectedFailureAll(triple='mips*', bugnumber="llvm.org/pr23069") diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py b/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py index b99fb727e8a..ba00ce32e5c 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py +++ b/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py @@ -26,6 +26,7 @@ class PersistObjCPointeeType(TestBase): bugnumber='http://llvm.org/pr23504', oslist=['macosx'], compiler='clang', compiler_version=['<', '7.0.0']) @skipIf(archs=["i386", "i686"]) + @skipIf(debug_info="gmodules", archs=['arm64', 'armv7', 'armv7k']) # compile error with gmodules for iOS def test_with(self): """Test that we can p *objcObject""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile index 4464e2ee9f5..b6592745356 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile +++ b/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile @@ -3,4 +3,4 @@ LEVEL = ../../make OBJC_SOURCES := main.m include $(LEVEL)/Makefile.rules -LDFLAGS += -framework Cocoa +LDFLAGS += -framework Foundation diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m b/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m index 3dbb024b280..9c79f850bf2 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m +++ b/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m @@ -1,4 +1,4 @@ -#import <Cocoa/Cocoa.h> +#import <Foundation/Foundation.h> int main() { diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/avoids-fd-leak/TestFdLeak.py b/lldb/packages/Python/lldbsuite/test/functionalities/avoids-fd-leak/TestFdLeak.py index 867b6053a57..a4e3948e81c 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/avoids-fd-leak/TestFdLeak.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/avoids-fd-leak/TestFdLeak.py @@ -34,6 +34,7 @@ class AvoidsFdLeakTestCase(TestBase): # here. @skipIfWindows @skipIfTargetAndroid() # Android have some other file descriptors open by the shell + @skipIfDarwinEmbedded # <rdar://problem/33888742> # debugserver on ios has an extra fd open on launch def test_fd_leak_basic(self): self.do_test([]) @@ -45,6 +46,7 @@ class AvoidsFdLeakTestCase(TestBase): # here. @skipIfWindows @skipIfTargetAndroid() # Android have some other file descriptors open by the shell + @skipIfDarwinEmbedded # <rdar://problem/33888742> # debugserver on ios has an extra fd open on launch def test_fd_leak_log(self): self.do_test(["log enable -f '/dev/null' lldb commands"]) @@ -76,6 +78,7 @@ class AvoidsFdLeakTestCase(TestBase): # here. @skipIfWindows @skipIfTargetAndroid() # Android have some other file descriptors open by the shell + @skipIfDarwinEmbedded # <rdar://problem/33888742> # debugserver on ios has an extra fd open on launch def test_fd_leak_multitarget(self): self.build() exe = os.path.join(os.getcwd(), "a.out") diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/nsindexpath/TestDataFormatterNSIndexPath.py b/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/nsindexpath/TestDataFormatterNSIndexPath.py index 2d66a941ed3..750e2946073 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/nsindexpath/TestDataFormatterNSIndexPath.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/nsindexpath/TestDataFormatterNSIndexPath.py @@ -46,6 +46,7 @@ class NSIndexPathDataFormatterTestCase(TestBase): @skipUnlessDarwin @expectedFailureAll(archs=['i386'], bugnumber="rdar://28656605") + @expectedFailureAll(archs=['armv7', 'armv7k'], bugnumber="rdar://problem/34561607") # NSIndexPath formatter isn't working for 32-bit arm def test_nsindexpath_with_run_command(self): """Test formatters for NSIndexPath.""" self.appkit_tester_impl(self.nsindexpath_data_formatter_commands) diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py b/lldb/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py index e5d81d8cefc..cee472ccb51 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py @@ -45,7 +45,7 @@ class DisassemblyTestCase(TestBase): if arch in ["", 'x86_64', 'i386', 'i686']: breakpoint_opcodes = ["int3"] instructions = [' mov', ' addl ', 'ret'] - elif arch in ["arm", "aarch64"]: + elif arch in ["arm", "aarch64", "arm64", "armv7", "armv7k"]: breakpoint_opcodes = ["brk", "udf"] instructions = [' add ', ' ldr ', ' str '] elif re.match("mips", arch): diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/exec/TestExec.py b/lldb/packages/Python/lldbsuite/test/functionalities/exec/TestExec.py index 65271c3894b..fcab7bba6e2 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/exec/TestExec.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/exec/TestExec.py @@ -28,6 +28,7 @@ class ExecTestCase(TestBase): @skipUnlessDarwin @expectedFailureAll(archs=['i386'], bugnumber="rdar://28656532") + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://problem/34559552") # this exec test has problems on ios systems def test(self): if self.getArchitecture() == 'x86_64': source = os.path.join(os.getcwd(), "main.cpp") @@ -97,5 +98,10 @@ class ExecTestCase(TestBase): threads = lldbutil.get_threads_stopped_at_breakpoint( process, breakpoint) + if self.TraceOn(): + for t in process.threads: + print(t) + if t.GetStopReason() != lldb.eStopReasonBreakpoint: + self.runCmd("bt") self.assertTrue(len(threads) == 1, "Stopped at breakpoint in exec'ed process.") diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/array/TestArray.py b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/array/TestArray.py index 46264f3dfe8..276760d3057 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/array/TestArray.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/array/TestArray.py @@ -15,6 +15,7 @@ class TestArray(TestBase): mydir = TestBase.compute_mydir(__file__) @skipUnlessDarwin + @skipIfDarwinEmbedded # <rdar://problem/33842388> frame diagnose doesn't work for armv7 or arm64 def test_array(self): TestBase.setUp(self) self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/bad-reference/TestBadReference.py b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/bad-reference/TestBadReference.py index dd8ff949fa9..6529e11fafa 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/bad-reference/TestBadReference.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/bad-reference/TestBadReference.py @@ -15,6 +15,7 @@ class TestBadReference(TestBase): mydir = TestBase.compute_mydir(__file__) @skipUnlessDarwin + @skipIfDarwinEmbedded # <rdar://problem/33842388> frame diagnose doesn't work for armv7 or arm64 def test_bad_reference(self): TestBase.setUp(self) self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/complicated-expression/TestComplicatedExpression.py b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/complicated-expression/TestComplicatedExpression.py index a8708169bb3..2e6fad5e1fd 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/complicated-expression/TestComplicatedExpression.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/complicated-expression/TestComplicatedExpression.py @@ -15,6 +15,7 @@ class TestDiagnoseDereferenceArgument(TestBase): mydir = TestBase.compute_mydir(__file__) @skipUnlessDarwin + @skipIfDarwinEmbedded # <rdar://problem/33842388> frame diagnose doesn't work for armv7 or arm64 def test_diagnose_dereference_argument(self): TestBase.setUp(self) self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/dereference-argument/TestDiagnoseDereferenceArgument.py b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/dereference-argument/TestDiagnoseDereferenceArgument.py index 80128eec1f7..7839a47a8f4 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/dereference-argument/TestDiagnoseDereferenceArgument.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/dereference-argument/TestDiagnoseDereferenceArgument.py @@ -15,6 +15,7 @@ class TestDiagnoseDereferenceArgument(TestBase): mydir = TestBase.compute_mydir(__file__) @skipUnlessDarwin + @skipIfDarwinEmbedded # <rdar://problem/33842388> frame diagnose doesn't work for armv7 or arm64 def test_diagnose_dereference_argument(self): TestBase.setUp(self) self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/dereference-function-return/TestDiagnoseDereferenceFunctionReturn.py b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/dereference-function-return/TestDiagnoseDereferenceFunctionReturn.py index 5e097afdc9b..8e5cd430293 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/dereference-function-return/TestDiagnoseDereferenceFunctionReturn.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/dereference-function-return/TestDiagnoseDereferenceFunctionReturn.py @@ -15,6 +15,7 @@ class TestDiagnoseDereferenceFunctionReturn(TestBase): mydir = TestBase.compute_mydir(__file__) @skipUnlessDarwin + @skipIfDarwinEmbedded # <rdar://problem/33842388> frame diagnose doesn't work for armv7 or arm64 @expectedFailureAll(oslist=['macosx'], archs=['i386'], bugnumber="rdar://28656408") def test_diagnose_dereference_function_return(self): TestBase.setUp(self) diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/dereference-this/TestDiagnoseDereferenceThis.py b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/dereference-this/TestDiagnoseDereferenceThis.py index 233c9e403bd..201923fb89d 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/dereference-this/TestDiagnoseDereferenceThis.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/dereference-this/TestDiagnoseDereferenceThis.py @@ -15,6 +15,7 @@ class TestDiagnoseDereferenceThis(TestBase): mydir = TestBase.compute_mydir(__file__) @skipUnlessDarwin + @skipIfDarwinEmbedded # <rdar://problem/33842388> frame diagnose doesn't work for armv7 or arm64 def test_diagnose_dereference_this(self): TestBase.setUp(self) self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/inheritance/TestDiagnoseInheritance.py b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/inheritance/TestDiagnoseInheritance.py index 267223ad085..08ef1c7fc5e 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/inheritance/TestDiagnoseInheritance.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/inheritance/TestDiagnoseInheritance.py @@ -15,6 +15,7 @@ class TestDiagnoseInheritance(TestBase): mydir = TestBase.compute_mydir(__file__) @skipUnlessDarwin + @skipIfDarwinEmbedded # <rdar://problem/33842388> frame diagnose doesn't work for armv7 or arm64 def test_diagnose_inheritance(self): TestBase.setUp(self) self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/local-variable/TestLocalVariable.py b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/local-variable/TestLocalVariable.py index a1a17c94176..e962c2673fa 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/local-variable/TestLocalVariable.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/local-variable/TestLocalVariable.py @@ -15,6 +15,7 @@ class TestLocalVariable(TestBase): mydir = TestBase.compute_mydir(__file__) @skipUnlessDarwin + @skipIfDarwinEmbedded # <rdar://problem/33842388> frame diagnose doesn't work for armv7 or arm64 def test_local_variable(self): TestBase.setUp(self) self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/virtual-method-call/TestDiagnoseDereferenceVirtualMethodCall.py b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/virtual-method-call/TestDiagnoseDereferenceVirtualMethodCall.py index adf092d8615..bc11bd1afb7 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/virtual-method-call/TestDiagnoseDereferenceVirtualMethodCall.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/frame-diagnose/virtual-method-call/TestDiagnoseDereferenceVirtualMethodCall.py @@ -15,6 +15,7 @@ class TestDiagnoseVirtualMethodCall(TestBase): mydir = TestBase.compute_mydir(__file__) @skipUnlessDarwin + @skipIfDarwinEmbedded # <rdar://problem/33842388> frame diagnose doesn't work for armv7 or arm64 def test_diagnose_virtual_method_call(self): TestBase.setUp(self) self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py b/lldb/packages/Python/lldbsuite/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py index 0ebb99d3fd4..43fa5f9d33f 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py @@ -22,6 +22,7 @@ class LaunchWithShellExpandTestCase(TestBase): "linux", "freebsd"], bugnumber="llvm.org/pr24778 llvm.org/pr22627") + @skipIfDarwinEmbedded # iOS etc don't launch the binary via a shell, so arg expansion won't happen def test(self): self.build() exe = os.path.join(os.getcwd(), "a.out") diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/load_unload/Makefile b/lldb/packages/Python/lldbsuite/test/functionalities/load_unload/Makefile index 779745c4d26..31572f2b82a 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/load_unload/Makefile +++ b/lldb/packages/Python/lldbsuite/test/functionalities/load_unload/Makefile @@ -12,6 +12,7 @@ a.out: lib_a lib_b lib_c lib_d hidden_lib_d lib_%: $(MAKE) -f $*.mk + if [ "$(OS)" = "Darwin" -a -f libloadunload_d.dylib ]; then install_name_tool -id @executable_path/libloadunload_d.dylib libloadunload_d.dylib; fi hidden_lib_d: $(MAKE) -C hidden diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/load_unload/TestLoadUnload.py b/lldb/packages/Python/lldbsuite/test/functionalities/load_unload/TestLoadUnload.py index 027968a727f..8e548e11658 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/load_unload/TestLoadUnload.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/load_unload/TestLoadUnload.py @@ -56,10 +56,14 @@ class LoadUnloadTestCase(TestBase): Does nothing in case of non-remote platforms. """ if lldb.remote_platform: - cwd = os.getcwd() - shlibs = ['libloadunload_a.so', 'libloadunload_b.so', - 'libloadunload_c.so', 'libloadunload_d.so'] + ext = 'so' + if self.platformIsDarwin(): + ext = 'dylib' + + shlibs = ['libloadunload_a.' + ext, 'libloadunload_b.' + ext, + 'libloadunload_c.' + ext, 'libloadunload_d.' + ext] wd = lldb.remote_platform.GetWorkingDirectory() + cwd = os.getcwd() for f in shlibs: err = lldb.remote_platform.Put( lldb.SBFileSpec(os.path.join(cwd, f)), @@ -69,7 +73,7 @@ class LoadUnloadTestCase(TestBase): "Unable copy '%s' to '%s'.\n>>> %s" % (f, wd, err.GetCString())) if hidden_dir: - shlib = 'libloadunload_d.so' + shlib = 'libloadunload_d.' + ext hidden_dir = os.path.join(wd, 'hidden') hidden_file = os.path.join(hidden_dir, shlib) err = lldb.remote_platform.MakeDirectory(hidden_dir) diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/mtc/simple/TestMTCSimple.py b/lldb/packages/Python/lldbsuite/test/functionalities/mtc/simple/TestMTCSimple.py index 6a779ecfac5..808011f0fe9 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/mtc/simple/TestMTCSimple.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/mtc/simple/TestMTCSimple.py @@ -17,6 +17,7 @@ class MTCSimpleTestCase(TestBase): mydir = TestBase.compute_mydir(__file__) @skipUnlessDarwin + @skipIfDarwinEmbedded # Test file depends on AppKit which is not present on iOS etc. def test(self): self.mtc_dylib_path = findMainThreadCheckerDylib() if self.mtc_dylib_path == "": diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py b/lldb/packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py index f3910f12bab..c4d372cd3d3 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py @@ -23,6 +23,7 @@ class ProcessAttachTestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True @skipIfiOSSimulator + @expectedFailureAll(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], bugnumber="<rdar://problem/34538611>") # old lldb-server has race condition, launching an inferior and then launching debugserver in quick succession sometimes fails def test_attach_to_process_by_id(self): """Test attach by process id""" self.build() @@ -39,6 +40,7 @@ class ProcessAttachTestCase(TestBase): process = target.GetProcess() self.assertTrue(process, PROCESS_IS_VALID) + @expectedFailureAll(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], bugnumber="<rdar://problem/34538611>") # old lldb-server has race condition, launching an inferior and then launching debugserver in quick succession sometimes fails def test_attach_to_process_from_different_dir_by_id(self): """Test attach by process id""" try: @@ -65,6 +67,7 @@ class ProcessAttachTestCase(TestBase): process = target.GetProcess() self.assertTrue(process, PROCESS_IS_VALID) + @expectedFailureAll(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], bugnumber="<rdar://problem/34538611>") # old lldb-server has race condition, launching an inferior and then launching debugserver in quick succession sometimes fails def test_attach_to_process_by_name(self): """Test attach by process name""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/process_attach/attach_denied/TestAttachDenied.py b/lldb/packages/Python/lldbsuite/test/functionalities/process_attach/attach_denied/TestAttachDenied.py index 071f5d57c78..5465b7155f5 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/process_attach/attach_denied/TestAttachDenied.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/process_attach/attach_denied/TestAttachDenied.py @@ -21,6 +21,7 @@ class AttachDeniedTestCase(TestBase): @skipIfWindows @skipIfiOSSimulator + @skipIfDarwinEmbedded # ptrace(ATTACH_REQUEST...) won't work on ios/tvos/etc def test_attach_to_process_by_id_denied(self): """Test attach by process id denied""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/process_group/TestChangeProcessGroup.py b/lldb/packages/Python/lldbsuite/test/functionalities/process_group/TestChangeProcessGroup.py index 00b4d415340..91436446ad9 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/process_group/TestChangeProcessGroup.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/process_group/TestChangeProcessGroup.py @@ -23,6 +23,7 @@ class ChangeProcessGroupTestCase(TestBase): @skipIfFreeBSD # Times out on FreeBSD llvm.org/pr23731 @skipIfWindows # setpgid call does not exist on Windows @expectedFailureAndroid("http://llvm.org/pr23762", api_levels=[16]) + @expectedFailureAll(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], bugnumber="<rdar://problem/34538611>") # old lldb-server has race condition, launching an inferior and then launching debugserver in quick succession sometimes fails def test_setpgid(self): self.build() exe = os.path.join(os.getcwd(), 'a.out') diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py b/lldb/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py index fe6ce2c25a3..8c33687f688 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py @@ -45,7 +45,7 @@ class RegisterCommandsTestCase(TestBase): self.runCmd("register read xmm0") self.runCmd("register read ymm15") # may be available self.runCmd("register read bnd0") # may be available - elif self.getArchitecture() in ['arm']: + elif self.getArchitecture() in ['arm', 'armv7', 'arm64']: self.runCmd("register read s0") self.runCmd("register read q15") # may be available @@ -84,7 +84,10 @@ class RegisterCommandsTestCase(TestBase): if self.getArchitecture() in ['amd64', 'i386', 'x86_64']: gpr = "eax" vector = "xmm0" - elif self.getArchitecture() in ['arm']: + elif self.getArchitecture() in ['arm64', 'aarch64']: + gpr = "w0" + vector = "v0" + elif self.getArchitecture() in ['arm', 'armv7']: gpr = "r0" vector = "q0" @@ -317,6 +320,34 @@ class RegisterCommandsTestCase(TestBase): ("xmm15", "{0x01 0x02 0x03 0x00 0x00 0x00 0x00 0x00 0x09 0x0a 0x2f 0x2f 0x2f 0x2f 0x0e 0x0f}", False)) + elif self.getArchitecture() in ['arm64', 'aarch64']: + reg_list = [ + # reg value + # must-have + ("fpsr", "0xfbf79f9f", True), + ("s0", "1.25", True), + ("s31", "0.75", True), + ("d1", "123", True), + ("d17", "987", False), + ("v1", "{0x01 0x02 0x03 0x00 0x00 0x00 0x00 0x00 0x09 0x0a 0x2f 0x2f 0x2f 0x2f 0x2f 0x2f}", True), + ("v14", + "{0x01 0x02 0x03 0x00 0x00 0x00 0x00 0x00 0x09 0x0a 0x2f 0x2f 0x2f 0x2f 0x0e 0x0f}", + False), + ] + elif self.getArchitecture() in ['armv7', 'armv7k'] and self.platformIsDarwin(): + reg_list = [ + # reg value + # must-have + ("fpsr", "0xfbf79f9f", True), + ("s0", "1.25", True), + ("s31", "0.75", True), + ("d1", "123", True), + ("d17", "987", False), + ("q1", "{0x01 0x02 0x03 0x00 0x00 0x00 0x00 0x00 0x09 0x0a 0x2f 0x2f 0x2f 0x2f 0x2f 0x2f}", True), + ("q14", + "{0x01 0x02 0x03 0x00 0x00 0x00 0x00 0x00 0x09 0x0a 0x2f 0x2f 0x2f 0x2f 0x0e 0x0f}", + False), + ] elif self.getArchitecture() in ['arm']: reg_list = [ # reg value diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/return-value/TestReturnValue.py b/lldb/packages/Python/lldbsuite/test/functionalities/return-value/TestReturnValue.py index 1750bd31b3d..606a71ff501 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/return-value/TestReturnValue.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/return-value/TestReturnValue.py @@ -22,6 +22,10 @@ class ReturnValueTestCase(TestBase): return ("clang" in self.getCompiler() and self.getArchitecture() == "aarch64" and self.getPlatform() == "linux") + # ABIMacOSX_arm can't fetch simple values inside a structure + def affected_by_radar_34562999(self): + return (self.getArchitecture() == 'armv7' or self.getArchitecture() == 'armv7k') and self.platformIsDarwin() + @expectedFailureAll(oslist=["freebsd"], archs=["i386"]) @expectedFailureAll(oslist=["macosx"], archs=["i386"], bugnumber="<rdar://problem/28719652>") @expectedFailureAll( @@ -142,33 +146,34 @@ class ReturnValueTestCase(TestBase): #self.assertTrue(in_float == return_float) - self.return_and_test_struct_value("return_one_int") - self.return_and_test_struct_value("return_two_int") - self.return_and_test_struct_value("return_three_int") - self.return_and_test_struct_value("return_four_int") - if not self.affected_by_pr33042(): - self.return_and_test_struct_value("return_five_int") - - self.return_and_test_struct_value("return_two_double") - self.return_and_test_struct_value("return_one_double_two_float") - self.return_and_test_struct_value("return_one_int_one_float_one_int") - - self.return_and_test_struct_value("return_one_pointer") - self.return_and_test_struct_value("return_two_pointer") - self.return_and_test_struct_value("return_one_float_one_pointer") - self.return_and_test_struct_value("return_one_int_one_pointer") - self.return_and_test_struct_value("return_three_short_one_float") - - self.return_and_test_struct_value("return_one_int_one_double") - self.return_and_test_struct_value("return_one_int_one_double_one_int") - self.return_and_test_struct_value( - "return_one_short_one_double_one_short") - self.return_and_test_struct_value("return_one_float_one_int_one_float") - self.return_and_test_struct_value("return_two_float") - # I am leaving out the packed test until we have a way to tell CLANG - # about alignment when reading DWARF for packed types. - #self.return_and_test_struct_value ("return_one_int_one_double_packed") - self.return_and_test_struct_value("return_one_int_one_long") + if not self.affected_by_radar_34562999(): + self.return_and_test_struct_value("return_one_int") + self.return_and_test_struct_value("return_two_int") + self.return_and_test_struct_value("return_three_int") + self.return_and_test_struct_value("return_four_int") + if not self.affected_by_pr33042(): + self.return_and_test_struct_value("return_five_int") + + self.return_and_test_struct_value("return_two_double") + self.return_and_test_struct_value("return_one_double_two_float") + self.return_and_test_struct_value("return_one_int_one_float_one_int") + + self.return_and_test_struct_value("return_one_pointer") + self.return_and_test_struct_value("return_two_pointer") + self.return_and_test_struct_value("return_one_float_one_pointer") + self.return_and_test_struct_value("return_one_int_one_pointer") + self.return_and_test_struct_value("return_three_short_one_float") + + self.return_and_test_struct_value("return_one_int_one_double") + self.return_and_test_struct_value("return_one_int_one_double_one_int") + self.return_and_test_struct_value( + "return_one_short_one_double_one_short") + self.return_and_test_struct_value("return_one_float_one_int_one_float") + self.return_and_test_struct_value("return_two_float") + # I am leaving out the packed test until we have a way to tell CLANG + # about alignment when reading DWARF for packed types. + #self.return_and_test_struct_value ("return_one_int_one_double_packed") + self.return_and_test_struct_value("return_one_int_one_long") @expectedFailureAll(oslist=["freebsd"], archs=["i386"]) @expectedFailureAll(oslist=["macosx"], archs=["i386"], bugnumber="<rdar://problem/28719652>") @@ -181,6 +186,7 @@ class ReturnValueTestCase(TestBase): archs=["i386"]) @expectedFailureAll(compiler=["gcc"], archs=["x86_64", "i386"]) @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24778") + @skipIfDarwinEmbedded # <rdar://problem/33976032> ABIMacOSX_arm64 doesn't get structs this big correctly def test_vector_values(self): self.build() exe = os.path.join(os.getcwd(), "a.out") diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py b/lldb/packages/Python/lldbsuite/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py index b0b2e609ba6..7ec934f26e0 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py @@ -52,6 +52,7 @@ class ReturnValueTestCase(TestBase): "3.9"], archs=["i386"], bugnumber="llvm.org/pr28549") + @expectedFailureAll(oslist=["ios", "tvos", "bridgeos"], bugnumber="<rdar://problem/34026777>") # lldb doesn't step past last source line in function on arm64 def test_step_in_with_python(self): """Test stepping in using avoid-no-debug with dwarf.""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/stop-hook/TestStopHookMechanism.py b/lldb/packages/Python/lldbsuite/test/functionalities/stop-hook/TestStopHookMechanism.py index fa5c6de0565..74088581bad 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/stop-hook/TestStopHookMechanism.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/stop-hook/TestStopHookMechanism.py @@ -39,6 +39,7 @@ class StopHookMechanismTestCase(TestBase): @expectedFailureAll( hostoslist=["windows"], bugnumber="llvm.org/pr22274: need a pexpect replacement for windows") + @skipIf(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], archs=['armv7', 'armv7k']) # <rdar://problem/34582291> problem with armv7 and step-over and stop-hook firing on ios etc systems def test(self): """Test the stop-hook mechanism.""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py b/lldb/packages/Python/lldbsuite/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py index fb6208a0d3e..442887ed4e1 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py @@ -23,6 +23,7 @@ class CreateAfterAttachTestCase(TestBase): # Occasionally hangs on Windows, may be same as other issues. @skipIfWindows @skipIfiOSSimulator + @expectedFailureAll(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], bugnumber="<rdar://problem/34538611>") # old lldb-server has race condition, launching an inferior and then launching debugserver in quick succession sometimes fails def test_create_after_attach_with_popen(self): """Test thread creation after process attach.""" self.build(dictionary=self.getBuildFlags(use_cpp11=False)) @@ -33,6 +34,7 @@ class CreateAfterAttachTestCase(TestBase): @skipIfRemote @skipIfWindows # Windows doesn't have fork. @skipIfiOSSimulator + @expectedFailureAll(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], bugnumber="<rdar://problem/34538611>") # old lldb-server has race condition, launching an inferior and then launching debugserver in quick succession sometimes fails def test_create_after_attach_with_fork(self): """Test thread creation after process attach.""" self.build(dictionary=self.getBuildFlags(use_cpp11=False)) diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py b/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py index 0377b0c0a80..8f004e6d319 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py @@ -20,6 +20,7 @@ class ThreadSpecificBreakTestCase(TestBase): @add_test_categories(['pyapi']) @expectedFailureAll(oslist=["windows"]) + @expectedFailureAll(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], archs=['armv7', 'armv7k'], bugnumber='rdar://problem/34563920') # armv7 ios problem - breakpoint with tid qualifier isn't working def test_python(self): """Test that we obey thread conditioned breakpoints.""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break_plus_condition/TestThreadSpecificBpPlusCondition.py b/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break_plus_condition/TestThreadSpecificBpPlusCondition.py index da9ba59f992..3eddaca3e30 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break_plus_condition/TestThreadSpecificBpPlusCondition.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break_plus_condition/TestThreadSpecificBpPlusCondition.py @@ -24,6 +24,7 @@ class ThreadSpecificBreakPlusConditionTestCase(TestBase): # hits break in another thread in testrun @expectedFailureAll(oslist=['freebsd'], bugnumber='llvm.org/pr18522') @add_test_categories(['pyapi']) + @expectedFailureAll(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], archs=['armv7', 'armv7k'], bugnumber='rdar://problem/34563348') # Two threads seem to end up with the same my_value when built for armv7. def test_python(self): """Test that we obey thread conditioned breakpoints.""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py b/lldb/packages/Python/lldbsuite/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py index e35bb966c91..0997c3a0b23 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py @@ -19,6 +19,7 @@ class SigtrampUnwind(TestBase): # On different platforms the "_sigtramp" and "__kill" frames are likely to be different. # This test could probably be adapted to run on linux/*bsd easily enough. @skipUnlessDarwin + @expectedFailureAll(oslist=["ios", "tvos", "bridgeos"], bugnumber="<rdar://problem/34006863>") # lldb skips 1 frame on arm64 above _sigtramp def test(self): """Test that we can backtrace correctly with _sigtramp on the stack""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/multi_watchpoint_slots/TestWatchpointMultipleSlots.py b/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/multi_watchpoint_slots/TestWatchpointMultipleSlots.py index 2e58cb893b7..4c949ecea19 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/multi_watchpoint_slots/TestWatchpointMultipleSlots.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/multi_watchpoint_slots/TestWatchpointMultipleSlots.py @@ -67,9 +67,12 @@ class WatchpointSlotsTestCase(TestBase): # The hit count should be 0 initially. self.expect("watchpoint list -v 1", substrs=['hit_count = 0']) - # Try setting a watchpoint at byteArray[1] - self.expect("watchpoint set variable byteArray[1]", error=True, - substrs=['Watchpoint creation failed']) + # debugserver on ios doesn't give an error, it creates another watchpoint, + # only expect errors on non-darwin platforms. + if not self.platformIsDarwin(): + # Try setting a watchpoint at byteArray[1] + self.expect("watchpoint set variable byteArray[1]", error=True, + substrs=['Watchpoint creation failed']) self.runCmd("process continue") @@ -90,8 +93,13 @@ class WatchpointSlotsTestCase(TestBase): # We should be stopped due to the watchpoint. # The stop reason of the thread should be watchpoint. - self.expect("thread list -v", STOPPED_DUE_TO_WATCHPOINT, - substrs=['stopped', 'stop reason = watchpoint 3']) + if self.platformIsDarwin(): + # On darwin we'll hit byteArray[3] which is watchpoint 2 + self.expect("thread list -v", STOPPED_DUE_TO_WATCHPOINT, + substrs=['stopped', 'stop reason = watchpoint 2']) + else: + self.expect("thread list -v", STOPPED_DUE_TO_WATCHPOINT, + substrs=['stopped', 'stop reason = watchpoint 3']) # Resume inferior. self.runCmd("process continue") diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py b/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py index 15657708ce4..ee87df3aa27 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py @@ -29,6 +29,7 @@ class TestStepOverWatchpoint(TestBase): bugnumber="llvm.org/pr24446: WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows") # Read-write watchpoints not supported on SystemZ @expectedFailureAll(archs=['s390x']) + @expectedFailureAll(oslist=["ios", "tvos", "bridgeos"], bugnumber="<rdar://problem/34027183>") # watchpoint tests aren't working on arm64 def test(self): """Test stepping over watchpoints.""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/lang/c/inlines/main.c b/lldb/packages/Python/lldbsuite/test/lang/c/inlines/main.c index f45e4e2b149..415f97aedbd 100644 --- a/lldb/packages/Python/lldbsuite/test/lang/c/inlines/main.c +++ b/lldb/packages/Python/lldbsuite/test/lang/c/inlines/main.c @@ -14,7 +14,7 @@ void test2(int b) { void test1(int a) { printf("test1(%d)\n", a); - test2(a+1);//% self.dbg.HandleCommand("step") + test2(a+1);//% self.runCmd("step") //% self.expect("expression b", DATA_TYPES_DISPLAYED_CORRECTLY, substrs = ["24"]) } diff --git a/lldb/packages/Python/lldbsuite/test/lang/c/tls_globals/TestTlsGlobals.py b/lldb/packages/Python/lldbsuite/test/lang/c/tls_globals/TestTlsGlobals.py index c6952d4d904..4388d95840e 100644 --- a/lldb/packages/Python/lldbsuite/test/lang/c/tls_globals/TestTlsGlobals.py +++ b/lldb/packages/Python/lldbsuite/test/lang/c/tls_globals/TestTlsGlobals.py @@ -49,7 +49,9 @@ class TlsGlobalTestCase(TestBase): """Test thread-local storage.""" self.build() exe = os.path.join(os.getcwd(), "a.out") - self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET) + target = self.dbg.CreateTarget(exe) + if self.platformIsDarwin(): + self.registerSharedLibrariesWithTarget(target, ['liba.dylib']) line1 = line_number('main.c', '// thread breakpoint') lldbutil.run_break_set_by_file_and_line( diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile b/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile index 3d24348618d..2d6de6f1514 100644 --- a/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile +++ b/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile @@ -1,6 +1,20 @@ LEVEL = ../../../make -CFLAGS = -g -O0 +CC ?= clang +ifeq "$(ARCH)" "" + ARCH = x86_64 +endif + +ifeq "$(OS)" "" + OS = $(shell uname -s) +endif + +CFLAGS ?= -g -O0 + +ifeq "$(OS)" "Darwin" + CFLAGS += -arch $(ARCH) +endif + LDFLAGS = $(CFLAGS) -lobjc -framework Foundation all: a.out libTest.dylib libTestExt.dylib diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestConflictingDefinition.py b/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestConflictingDefinition.py index 564a1e15c06..df3a41fedf6 100644 --- a/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestConflictingDefinition.py +++ b/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestConflictingDefinition.py @@ -21,6 +21,7 @@ class TestRealDefinition(TestBase): if self.getArchitecture() == 'i386': self.skipTest("requires modern objc runtime") self.build() + self.shlib_names = ["libTestExt.dylib", "libTest.dylib"] self.common_setup() line = line_number('TestExt/TestExt.m', '// break here') @@ -46,4 +47,7 @@ class TestRealDefinition(TestBase): def common_setup(self): exe = os.path.join(os.getcwd(), "a.out") + target = self.dbg.CreateTarget(exe) + self.registerSharedLibrariesWithTarget(target, self.shlib_names) + self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET) diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile b/lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile index 329ceabeea9..bd940ab148c 100644 --- a/lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile +++ b/lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile @@ -1,12 +1,28 @@ LEVEL = ../../../make -myclass.o: myclass.h myclass.m - $(CC) myclass.m -c -o myclass.o +CC ?= clang +ifeq "$(ARCH)" "" + ARCH = x86_64 +endif -repro: myclass.o repro.m - $(CC) -g -O0 myclass.o repro.m -framework Foundation +ifeq "$(OS)" "" + OS = $(shell uname -s) +endif -cleanup: - rm -r myclass.o +CFLAGS ?= -g -O0 +CFLAGS_NO_DEBUG = +ifeq "$(OS)" "Darwin" + CFLAGS += -arch $(ARCH) + CFLAGS_NO_DEBUG += -arch $(ARCH) +endif + +all: aout + +aout: + $(CC) $(CFLAGS_NO_DEBUG) myclass.m -c -o myclass.o + $(CC) $(CFLAGS) myclass.o repro.m -framework Foundation + +clean:: + rm -f myclass.o include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py b/lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py index 79b7ee5dbfb..ab01c61375a 100644 --- a/lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py +++ b/lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py @@ -33,12 +33,7 @@ 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""" - execute_command("make repro") - - def cleanup(): - execute_command("make cleanup") - self.addTearDownHook(cleanup) - + self.build() exe = os.path.join(os.getcwd(), "a.out") # Create a target from the debugger. diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py index 75f726340ef..650923a729e 100644 --- a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py +++ b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py @@ -25,6 +25,7 @@ class TestObjCStructArgument(TestBase): @skipUnlessDarwin @add_test_categories(['pyapi']) + @skipIf(debug_info=no_match(["gmodules"]), oslist=['ios', 'watchos', 'tvos', 'bridgeos'], archs=['armv7', 'arm64']) # this test program only builds for ios with -gmodules def test_with_python_api(self): """Test passing structs to Objective-C methods.""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m index f013c560239..337ab3408ce 100644 --- a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m +++ b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m @@ -1,4 +1,10 @@ #import <Foundation/Foundation.h> +#include <TargetConditionals.h> + +#if TARGET_OS_IPHONE +@import CoreGraphics; +typedef CGRect NSRect; +#endif struct things_to_sum { int a; diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py b/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py index 26afe71d1de..d1956d46e7b 100644 --- a/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py +++ b/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py @@ -46,13 +46,13 @@ class Rdar10967107TestCase(TestBase): 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 -raw-output my_string", substrs=['const char *']) self.expect( - "frame variable my_string --dynamic-type run-target", + "frame variable my_string --raw-output --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("e -R -- my_string", substrs=['const char *']) + self.expect("expr -R -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( diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatform.py b/lldb/packages/Python/lldbsuite/test/lldbplatform.py index 84c027d88ff..23d93e19d94 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbplatform.py +++ b/lldb/packages/Python/lldbsuite/test/lldbplatform.py @@ -12,8 +12,8 @@ import six import use_lldb_suite import lldb -windows, linux, macosx, darwin, ios, darwin_all, freebsd, netbsd, bsd_all, android = range( - 10) +windows, linux, macosx, darwin, ios, tvos, watchos, bridgeos, darwin_all, darwin_embedded, freebsd, netbsd, bsd_all, android = range( + 14) __name_lookup = { windows: ["windows"], @@ -21,7 +21,11 @@ __name_lookup = { macosx: ["macosx"], darwin: ["darwin"], ios: ["ios"], - darwin_all: ["macosx", "darwin", "ios"], + tvos: ["tvos"], + watchos: ["watchos"], + bridgeos: ["bridgeos"], + darwin_all: ["macosx", "darwin", "ios", "tvos", "watchos", "bridgeos"], + darwin_embedded: ["ios", "tvos", "watchos", "bridgeos"], freebsd: ["freebsd"], netbsd: ["netbsd"], bsd_all: ["freebsd", "netbsd"], diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py index 4f45643241e..90319b30f67 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py +++ b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py @@ -25,9 +25,9 @@ def check_first_register_readable(test_case): if arch in ['x86_64', 'i386']: test_case.expect("register read eax", substrs=['eax = 0x']) - elif arch in ['arm']: + elif arch in ['arm', 'armv7', 'armv7k']: test_case.expect("register read r0", substrs=['r0 = 0x']) - elif arch in ['aarch64']: + elif arch in ['aarch64', 'arm64']: test_case.expect("register read x0", substrs=['x0 = 0x']) elif re.match("mips", arch): test_case.expect("register read zero", substrs=['zero = 0x']) diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index f1d65cf2076..cc1e97286ba 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -706,7 +706,7 @@ class Base(unittest2.TestCase): # This function removes all files from the current working directory while leaving # the directories in place. The cleaup is required to reduce the disk space required - # by the test suit while leaving the directories untached is neccessary because + # by the test suite while leaving the directories untouched is neccessary because # sub-directories might belong to an other test def clean_working_directory(): # TODO: Make it working on Windows when we need it for remote debugging support diff --git a/lldb/packages/Python/lldbsuite/test/macosx/add-dsym/Makefile b/lldb/packages/Python/lldbsuite/test/macosx/add-dsym/Makefile index 4e4aa71de2a..3a363ab98c1 100644 --- a/lldb/packages/Python/lldbsuite/test/macosx/add-dsym/Makefile +++ b/lldb/packages/Python/lldbsuite/test/macosx/add-dsym/Makefile @@ -1,9 +1,22 @@ CC ?= clang +ifeq "$(ARCH)" "" + ARCH = x86_64 +endif + +ifeq "$(OS)" "" + OS = $(shell uname -s) +endif + +CFLAGS ?= -g -O0 + +ifeq "$(OS)" "Darwin" + CFLAGS += -arch $(ARCH) +endif all: clean mkdir hide.app mkdir hide.app/Contents - $(CC) -g main.c + $(CC) $(CFLAGS) -g main.c mv a.out.dSYM hide.app/Contents strip -x a.out diff --git a/lldb/packages/Python/lldbsuite/test/macosx/indirect_symbol/TestIndirectSymbols.py b/lldb/packages/Python/lldbsuite/test/macosx/indirect_symbol/TestIndirectSymbols.py index e717e2ecdd9..afca8bcc0de 100644 --- a/lldb/packages/Python/lldbsuite/test/macosx/indirect_symbol/TestIndirectSymbols.py +++ b/lldb/packages/Python/lldbsuite/test/macosx/indirect_symbol/TestIndirectSymbols.py @@ -31,6 +31,11 @@ class TestIndirectFunctions(TestBase): target = self.dbg.CreateTarget(exe) self.assertTrue(target, VALID_TARGET) + if self.platformIsDarwin(): + lib1 = os.path.join(os.getcwd(), 'libindirect.dylib') + lib2 = os.path.join(os.getcwd(), 'libreexport.dylib') + self.registerSharedLibrariesWithTarget(target, [lib1, lib2]) + self.main_source_spec = lldb.SBFileSpec(self.main_source) break1 = target.BreakpointCreateBySourceRegex( diff --git a/lldb/packages/Python/lldbsuite/test/macosx/nslog/TestDarwinNSLogOutput.py b/lldb/packages/Python/lldbsuite/test/macosx/nslog/TestDarwinNSLogOutput.py index 1e9596785f9..c2a27c57089 100644 --- a/lldb/packages/Python/lldbsuite/test/macosx/nslog/TestDarwinNSLogOutput.py +++ b/lldb/packages/Python/lldbsuite/test/macosx/nslog/TestDarwinNSLogOutput.py @@ -14,17 +14,19 @@ import platform import re import sys -from lldbsuite.test import decorators +from lldbsuite.test.decorators import * from lldbsuite.test import lldbtest from lldbsuite.test import lldbtest_config -@decorators.skipUnlessDarwin class DarwinNSLogOutputTestCase(lldbtest.TestBase): NO_DEBUG_INFO_TESTCASE = True mydir = lldbtest.TestBase.compute_mydir(__file__) + @skipUnlessDarwin + @skipIfRemote # this test is currently written using lldb commands & assumes running on local system + def setUp(self): # Call super's setUp(). super(DarwinNSLogOutputTestCase, self).setUp() diff --git a/lldb/packages/Python/lldbsuite/test/macosx/thread-names/TestInterruptThreadNames.py b/lldb/packages/Python/lldbsuite/test/macosx/thread-names/TestInterruptThreadNames.py index b6612b26bde..ae2916c92de 100644 --- a/lldb/packages/Python/lldbsuite/test/macosx/thread-names/TestInterruptThreadNames.py +++ b/lldb/packages/Python/lldbsuite/test/macosx/thread-names/TestInterruptThreadNames.py @@ -70,7 +70,14 @@ class TestInterruptThreadNames(TestBase): inferior_set_up = lldb.SBValue() retry = 5 while retry > 0: - time.sleep(1) + arch = self.getArchitecture() + # when running the testsuite against a remote arm device, it may take + # a little longer for the process to start up. Use a "can't possibly take + # longer than this" value. + if arch == 'arm64' or arch == 'armv7': + time.sleep(10) + else: + time.sleep(1) process.SendAsyncInterrupt() self.assertTrue(self.wait_for_stop(process, listener), "Check that process is paused") inferior_set_up = process.GetTarget().CreateValueFromExpression("threads_up_and_running", "threads_up_and_running") diff --git a/lldb/packages/Python/lldbsuite/test/macosx/universal/TestUniversal.py b/lldb/packages/Python/lldbsuite/test/macosx/universal/TestUniversal.py index 988611935c1..9a690e3ebb0 100644 --- a/lldb/packages/Python/lldbsuite/test/macosx/universal/TestUniversal.py +++ b/lldb/packages/Python/lldbsuite/test/macosx/universal/TestUniversal.py @@ -26,6 +26,7 @@ class UniversalTestCase(TestBase): @skipUnlessDarwin @unittest2.skipUnless(hasattr(os, "uname") and os.uname()[4] in [ 'i386', 'x86_64'], "requires i386 or x86_64") + @skipIfDarwinEmbedded # this test file assumes we're targetting an x86 system def test_sbdebugger_create_target_with_file_and_target_triple(self): """Test the SBDebugger.CreateTargetWithFileAndTargetTriple() API.""" # Invoke the default build rule. @@ -47,6 +48,7 @@ class UniversalTestCase(TestBase): @skipUnlessDarwin @unittest2.skipUnless(hasattr(os, "uname") and os.uname()[4] in [ 'i386', 'x86_64'], "requires i386 or x86_64") + @skipIfDarwinEmbedded # this test file assumes we're targetting an x86 system def test_process_launch_for_universal(self): """Test process launch of a universal binary.""" from lldbsuite.test.lldbutil import print_registers @@ -117,6 +119,7 @@ class UniversalTestCase(TestBase): @skipUnlessDarwin @unittest2.skipUnless(hasattr(os, "uname") and os.uname()[4] in [ 'i386', 'x86_64'], "requires i386 or x86_64") + @skipIfDarwinEmbedded # this test file assumes we're targetting an x86 system def test_process_attach_with_wrong_arch(self): """Test that when we attach to a binary from the wrong fork of a universal binary, we fix up the ABI correctly.""" # Now keep the architecture at 32 bit, but switch the binary we launch to diff --git a/lldb/packages/Python/lldbsuite/test/make/Makefile.rules b/lldb/packages/Python/lldbsuite/test/make/Makefile.rules index a7b94ef5738..d5a13f857b9 100644 --- a/lldb/packages/Python/lldbsuite/test/make/Makefile.rules +++ b/lldb/packages/Python/lldbsuite/test/make/Makefile.rules @@ -225,7 +225,7 @@ CXXFLAGS += $(subst -fmodules,, $(CFLAGS)) LD = $(CC) LDFLAGS ?= $(CFLAGS) LDFLAGS += $(LD_EXTRAS) $(ARCH_LDFLAGS) -ifeq (,$(filter $(OS), Windows_NT Android)) +ifeq (,$(filter $(OS), Windows_NT Android Darwin)) ifneq (,$(filter YES,$(ENABLE_THREADS))) LDFLAGS += -pthread endif diff --git a/lldb/packages/Python/lldbsuite/test/python_api/exprpath_synthetic/main.mm b/lldb/packages/Python/lldbsuite/test/python_api/exprpath_synthetic/main.mm index f7383a5a14d..9d4630dc7c4 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/exprpath_synthetic/main.mm +++ b/lldb/packages/Python/lldbsuite/test/python_api/exprpath_synthetic/main.mm @@ -6,7 +6,7 @@ // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// -#import <Cocoa/Cocoa.h> +#import <Foundation/Foundation.h> #include <vector> int main (int argc, char const *argv[]) diff --git a/lldb/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py b/lldb/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py index 06ca772073a..a2d2cf12cdc 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py @@ -90,7 +90,7 @@ class FrameAPITestCase(TestBase): # Make sure on arm targets we dont mismatch PC value on the basis of thumb bit. # Frame PC will not have thumb bit set in case of a thumb # instruction as PC. - if self.getArchitecture() in ['arm']: + if self.getArchitecture() in ['arm', 'armv7', 'armv7k']: pc_value_int &= ~1 self.assertTrue( pc_value_int == frame.GetPC(), diff --git a/lldb/packages/Python/lldbsuite/test/python_api/hello_world/TestHelloWorld.py b/lldb/packages/Python/lldbsuite/test/python_api/hello_world/TestHelloWorld.py index 44dd4a61850..fb4e54aa0bc 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/hello_world/TestHelloWorld.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/hello_world/TestHelloWorld.py @@ -79,6 +79,7 @@ class HelloWorldTestCase(TestBase): @add_test_categories(['pyapi']) @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24600") @skipIfiOSSimulator + @expectedFailureAll(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], bugnumber="<rdar://problem/34538611>") # old lldb-server has race condition, launching an inferior and then launching debugserver in quick succession sometimes fails def test_with_attach_to_process_with_id_api(self): """Create target, spawn a process, and attach to it with process id.""" self.build(dictionary=self.d) @@ -108,6 +109,7 @@ class HelloWorldTestCase(TestBase): @add_test_categories(['pyapi']) @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24600") @skipIfiOSSimulator + @expectedFailureAll(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], bugnumber="<rdar://problem/34538611>") # old lldb-server has race condition, launching an inferior and then launching debugserver in quick succession sometimes fails def test_with_attach_to_process_with_name_api(self): """Create target, spawn a process, and attach to it with process name.""" self.build(dictionary=self.d) diff --git a/lldb/packages/Python/lldbsuite/test/python_api/hello_world/main.c b/lldb/packages/Python/lldbsuite/test/python_api/hello_world/main.c index 1b942d0db15..001e9c01e6e 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/hello_world/main.c +++ b/lldb/packages/Python/lldbsuite/test/python_api/hello_world/main.c @@ -1,5 +1,5 @@ #include <stdio.h> - +#include <unistd.h> int main(int argc, char const *argv[]) { lldb_enable_attach(); @@ -10,9 +10,8 @@ int main(int argc, char const *argv[]) // Waiting to be attached by the debugger, otherwise. char line[100]; - while (fgets(line, sizeof(line), stdin)) { // Waiting to be attached... - printf("input line=>%s\n", line); - } + while (1) + sleep (1); // Waiting to be attached... printf("Exiting now\n"); } diff --git a/lldb/packages/Python/lldbsuite/test/python_api/lldbutil/iter/TestRegistersIterator.py b/lldb/packages/Python/lldbsuite/test/python_api/lldbutil/iter/TestRegistersIterator.py index 49a78888ad8..a19cc5c375f 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/lldbutil/iter/TestRegistersIterator.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/lldbutil/iter/TestRegistersIterator.py @@ -76,17 +76,18 @@ class RegistersIteratorTestCase(TestBase): REGs = lldbutil.get_ESRs(frame) if self.platformIsDarwin(): - num = len(REGs) - if self.TraceOn(): - print( - "\nNumber of exception state registers: %d" % - num) - for reg in REGs: - self.assertTrue(reg) + if self.getArchitecture() != 'armv7' and self.getArchitecture() != 'armv7k': + num = len(REGs) if self.TraceOn(): print( - "%s => %s" % - (reg.GetName(), reg.GetValue())) + "\nNumber of exception state registers: %d" % + num) + for reg in REGs: + self.assertTrue(reg) + if self.TraceOn(): + print( + "%s => %s" % + (reg.GetName(), reg.GetValue())) else: self.assertIsNone(REGs) @@ -99,7 +100,8 @@ class RegistersIteratorTestCase(TestBase): REGs = lldbutil.get_registers( frame, "Exception State Registers") if self.platformIsDarwin(): - self.assertIsNotNone(REGs) + if self.getArchitecture() != 'armv7' and self.getArchitecture() != 'armv7k': + self.assertIsNotNone(REGs) else: self.assertIsNone(REGs) diff --git a/lldb/packages/Python/lldbsuite/test/python_api/process/io/TestProcessIO.py b/lldb/packages/Python/lldbsuite/test/python_api/process/io/TestProcessIO.py index 5314930ff99..71f77b36880 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/process/io/TestProcessIO.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/process/io/TestProcessIO.py @@ -59,6 +59,7 @@ class ProcessIOTestCase(TestBase): @skipIfWindows # stdio manipulation unsupported on Windows @add_test_categories(['pyapi']) @expectedFlakeyLinux(bugnumber="llvm.org/pr26437") + @skipIfDarwinEmbedded # debugserver can't create/write files on the device def test_stdout_redirection(self): """Exercise SBLaunchInfo::AddOpenFileAction() for STDOUT without specifying STDIN or STDERR.""" self.build() @@ -72,6 +73,7 @@ class ProcessIOTestCase(TestBase): @skipIfWindows # stdio manipulation unsupported on Windows @add_test_categories(['pyapi']) @expectedFlakeyLinux(bugnumber="llvm.org/pr26437") + @skipIfDarwinEmbedded # debugserver can't create/write files on the device def test_stderr_redirection(self): """Exercise SBLaunchInfo::AddOpenFileAction() for STDERR without specifying STDIN or STDOUT.""" self.build() @@ -85,6 +87,7 @@ class ProcessIOTestCase(TestBase): @skipIfWindows # stdio manipulation unsupported on Windows @add_test_categories(['pyapi']) @expectedFlakeyLinux(bugnumber="llvm.org/pr26437") + @skipIfDarwinEmbedded # debugserver can't create/write files on the device def test_stdout_stderr_redirection(self): """Exercise SBLaunchInfo::AddOpenFileAction() for STDOUT and STDERR without redirecting STDIN.""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/python_api/sbtype_typeclass/main.m b/lldb/packages/Python/lldbsuite/test/python_api/sbtype_typeclass/main.m index 599d36107f4..6ac70d1d06b 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/sbtype_typeclass/main.m +++ b/lldb/packages/Python/lldbsuite/test/python_api/sbtype_typeclass/main.m @@ -6,7 +6,7 @@ // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// -#import <Cocoa/Cocoa.h> +#import <Foundation/Foundation.h> @interface ThisClassTestsThings : NSObject @end diff --git a/lldb/packages/Python/lldbsuite/test/python_api/watchpoint/TestWatchpointIter.py b/lldb/packages/Python/lldbsuite/test/python_api/watchpoint/TestWatchpointIter.py index 33f1be77ad5..7ce312f52de 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/watchpoint/TestWatchpointIter.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/watchpoint/TestWatchpointIter.py @@ -19,6 +19,10 @@ class WatchpointIteratorTestCase(TestBase): mydir = TestBase.compute_mydir(__file__) + # hardware watchpoints are not reported with a hardware index # on armv7 on ios devices + def affected_by_radar_34564183(self): + return (self.getArchitecture() == 'armv7' or self.getArchitecture() == 'armv7k') and self.platformIsDarwin() + def setUp(self): # Call super's setUp(). TestBase.setUp(self) @@ -99,7 +103,8 @@ class WatchpointIteratorTestCase(TestBase): # meaningful hardware index at this point. Exercise the printed repr of # SBWatchpointLocation. print(watchpoint) - self.assertTrue(watchpoint.GetHardwareIndex() != -1) + if not self.affected_by_radar_34564183(): + self.assertTrue(watchpoint.GetHardwareIndex() != -1) # SBWatchpoint.GetDescription() takes a description level arg. print(lldbutil.get_description(watchpoint, lldb.eDescriptionLevelFull)) diff --git a/lldb/packages/Python/lldbsuite/test/settings/TestSettings.py b/lldb/packages/Python/lldbsuite/test/settings/TestSettings.py index a8bd57341ed..5e1cd44c01b 100644 --- a/lldb/packages/Python/lldbsuite/test/settings/TestSettings.py +++ b/lldb/packages/Python/lldbsuite/test/settings/TestSettings.py @@ -215,6 +215,7 @@ class SettingsCommandTestCase(TestBase): self.expect("disassemble -n numberfn", substrs=["5ah"]) + @skipIfDarwinEmbedded # <rdar://problem/34446098> debugserver on ios etc can't write files def test_run_args_and_env_vars(self): """Test that run-args and env-vars are passed to the launched process.""" self.build() @@ -286,6 +287,7 @@ class SettingsCommandTestCase(TestBase): "The host environment variable 'MY_HOST_ENV_VAR1' successfully passed.", "The host environment variable 'MY_HOST_ENV_VAR2' successfully passed."]) + @skipIfDarwinEmbedded # <rdar://problem/34446098> debugserver on ios etc can't write files def test_set_error_output_path(self): """Test that setting target.error/output-path for the launched process works.""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/settings/quoting/TestQuoting.py b/lldb/packages/Python/lldbsuite/test/settings/quoting/TestQuoting.py index b193c81e644..02110d1684f 100644 --- a/lldb/packages/Python/lldbsuite/test/settings/quoting/TestQuoting.py +++ b/lldb/packages/Python/lldbsuite/test/settings/quoting/TestQuoting.py @@ -82,16 +82,16 @@ class SettingsCommandTestCase(TestBase): exe = os.path.join(os.getcwd(), "a.out") self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET) - self.runCmd("process launch -o stdout.txt -- " + args_in) + self.runCmd("process launch -- " + args_in) if lldb.remote_platform: - src_file_spec = lldb.SBFileSpec('stdout.txt', False) - dst_file_spec = lldb.SBFileSpec('stdout.txt', True) + src_file_spec = lldb.SBFileSpec('output.txt', False) + dst_file_spec = lldb.SBFileSpec('output.txt', True) lldb.remote_platform.Get(src_file_spec, dst_file_spec) - with open('stdout.txt', 'r') as f: + with open('output.txt', 'r') as f: output = f.read() - self.RemoveTempFile("stdout.txt") + self.RemoveTempFile("output.txt") self.assertEqual(output, args_out) diff --git a/lldb/packages/Python/lldbsuite/test/settings/quoting/main.c b/lldb/packages/Python/lldbsuite/test/settings/quoting/main.c index 6e01c2d1cd8..5e3e34f84a6 100644 --- a/lldb/packages/Python/lldbsuite/test/settings/quoting/main.c +++ b/lldb/packages/Python/lldbsuite/test/settings/quoting/main.c @@ -1,13 +1,21 @@ #include <stdio.h> #include <string.h> +#include <stdlib.h> /* This program writes its arguments (separated by '\0') to stdout. */ int main(int argc, char const *argv[]) { int i; + + FILE *output = fopen ("output.txt", "w"); + if (output == NULL) + exit (1); + for (i = 1; i < argc; ++i) - fwrite(argv[i], strlen(argv[i])+1, 1, stdout); + fwrite(argv[i], strlen(argv[i])+1, 1, output); + + fclose (output); return 0; } diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py index 4e03d557b7a..80ceadb6f26 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py @@ -15,6 +15,7 @@ class MiExecTestCase(lldbmi_testcase.MiTestCaseBase): mydir = TestBase.compute_mydir(__file__) + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races @expectedFailureAll( @@ -37,6 +38,7 @@ class MiExecTestCase(lldbmi_testcase.MiTestCaseBase): # Test that lldb-mi is ready to execute next commands self.expect(self.child_prompt, exactly=True) + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_exec_abort(self): @@ -87,6 +89,7 @@ class MiExecTestCase(lldbmi_testcase.MiTestCaseBase): self.expect("\^done") self.expect("\*stopped,reason=\"exited-normally\"") + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_exec_arguments_set(self): @@ -131,6 +134,7 @@ class MiExecTestCase(lldbmi_testcase.MiTestCaseBase): self.runCmd("-interpreter-exec command \"print argv[4]\"") self.expect("\\\"fourth=\\\\\\\"4th arg\\\\\\\"\\\"", exactly=True) + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_exec_arguments_reset(self): @@ -159,6 +163,7 @@ class MiExecTestCase(lldbmi_testcase.MiTestCaseBase): self.runCmd("-data-evaluate-expression argc") self.expect("\^done,value=\"1\"") + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_exec_next(self): @@ -214,6 +219,7 @@ class MiExecTestCase(lldbmi_testcase.MiTestCaseBase): self.runCmd("-exec-next --frame 10") #self.expect("\^error: Frame index 10 is out of range") + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_exec_next_instruction(self): @@ -273,6 +279,7 @@ class MiExecTestCase(lldbmi_testcase.MiTestCaseBase): self.runCmd("-exec-next-instruction --frame 10") #self.expect("\^error: Frame index 10 is out of range") + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_exec_step(self): @@ -355,6 +362,7 @@ class MiExecTestCase(lldbmi_testcase.MiTestCaseBase): self.runCmd("-exec-step --frame 10") #self.expect("\^error: Frame index 10 is out of range") + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_exec_step_instruction(self): @@ -430,6 +438,7 @@ class MiExecTestCase(lldbmi_testcase.MiTestCaseBase): self.runCmd("-exec-step-instruction --frame 10") #self.expect("\^error: Frame index 10 is out of range") + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_exec_finish(self): diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py index 7dcebb172d3..f3a27724686 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py @@ -16,6 +16,7 @@ class MiDataTestCase(lldbmi_testcase.MiTestCaseBase): mydir = TestBase.compute_mydir(__file__) + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_data_disassemble(self): @@ -86,6 +87,7 @@ class MiDataTestCase(lldbmi_testcase.MiTestCaseBase): self.expect(["{address=\"0x[0-9a-f]+\",func-name=\"hello_world\(\)\",offset=\"[0-9]+\",size=\"[0-9]+\",inst=\".+?; \\\\\"Hello, World!\\\\\\\\n\\\\\"\"}", "{address=\"0x[0-9a-f]+\",func-name=\"hello_world\(\)\",offset=\"[0-9]+\",size=\"[0-9]+\",inst=\".+?; symbol stub for: printf\"}"]) + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_data_read_memory_bytes_global(self): @@ -128,6 +130,7 @@ class MiDataTestCase(lldbmi_testcase.MiTestCaseBase): "\^done,memory=\[{begin=\"0x0*%x\",offset=\"0x0+\",end=\"0x0*%x\",contents=\"2021222300\"}\]" % (addr, addr + size)) + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_data_read_memory_bytes_local(self): @@ -267,6 +270,7 @@ class MiDataTestCase(lldbmi_testcase.MiTestCaseBase): self.runCmd('-data-read-memory-bytes --thread 1 &array') self.expect(r'\^error') + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_data_list_register_names(self): @@ -293,6 +297,7 @@ class MiDataTestCase(lldbmi_testcase.MiTestCaseBase): self.runCmd("-data-list-register-names 0") self.expect("\^done,register-names=\[\".+?\"\]") + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_data_list_register_values(self): @@ -321,6 +326,7 @@ class MiDataTestCase(lldbmi_testcase.MiTestCaseBase): self.expect( "\^done,register-values=\[{number=\"0\",value=\"0x[0-9a-f]+\"}\]") + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_data_info_line(self): @@ -375,6 +381,7 @@ class MiDataTestCase(lldbmi_testcase.MiTestCaseBase): self.runCmd("-data-info-line main.cpp:0") self.expect("\^error,msg=\"error: zero is an invalid line number") + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_data_evaluate_expression(self): diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/signal/TestMiSignal.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/signal/TestMiSignal.py index 597969dd6c5..cea5e6f96e9 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/signal/TestMiSignal.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/signal/TestMiSignal.py @@ -170,6 +170,7 @@ class MiSignalTestCase(lldbmi_testcase.MiTestCaseBase): "\*stopped,reason=\"exception-received\",exception=\"invalid address \(fault address: 0x0\)\",thread-id=\"1\",stopped-threads=\"all\""]) @skipUnlessDarwin + @skipIfRemote # We do not currently support remote debugging via the MI. def test_lldbmi_stopped_when_segfault_remote(self): """Test that 'lldb-mi --interpreter' notifies after it was stopped when segfault occurred (remote).""" diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/stack/TestMiStack.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/stack/TestMiStack.py index 454597c1c5d..c5c10bc139f 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/stack/TestMiStack.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/stack/TestMiStack.py @@ -17,6 +17,7 @@ class MiStackTestCase(lldbmi_testcase.MiTestCaseBase): @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races + @skipIfRemote # We do not currently support remote debugging via the MI. def test_lldbmi_stack_list_arguments(self): """Test that 'lldb-mi --interpreter' can shows arguments.""" @@ -89,6 +90,7 @@ class MiStackTestCase(lldbmi_testcase.MiTestCaseBase): @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races + @skipIfRemote # We do not currently support remote debugging via the MI. def test_lldbmi_stack_list_locals(self): """Test that 'lldb-mi --interpreter' can shows local variables.""" @@ -243,6 +245,7 @@ class MiStackTestCase(lldbmi_testcase.MiTestCaseBase): @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races + @skipIfRemote # We do not currently support remote debugging via the MI. def test_lldbmi_stack_list_variables(self): """Test that 'lldb-mi --interpreter' can shows local variables and arguments.""" @@ -389,6 +392,7 @@ class MiStackTestCase(lldbmi_testcase.MiTestCaseBase): @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races + @skipIfRemote # We do not currently support remote debugging via the MI. def test_lldbmi_stack_info_depth(self): """Test that 'lldb-mi --interpreter' can shows depth of the stack.""" @@ -423,6 +427,7 @@ class MiStackTestCase(lldbmi_testcase.MiTestCaseBase): @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races @skipUnlessDarwin + @skipIfRemote # We do not currently support remote debugging via the MI. def test_lldbmi_stack_info_frame(self): """Test that 'lldb-mi --interpreter' can show information about current frame.""" @@ -465,6 +470,7 @@ class MiStackTestCase(lldbmi_testcase.MiTestCaseBase): @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races + @skipIfRemote # We do not currently support remote debugging via the MI. def test_lldbmi_stack_list_frames(self): """Test that 'lldb-mi --interpreter' can lists the frames on the stack.""" @@ -488,6 +494,7 @@ class MiStackTestCase(lldbmi_testcase.MiTestCaseBase): @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races + @skipIfRemote # We do not currently support remote debugging via the MI. def test_lldbmi_stack_select_frame(self): """Test that 'lldb-mi --interpreter' can choose current frame.""" diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py index 7673846d6df..80b925993d3 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py @@ -14,6 +14,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase): mydir = TestBase.compute_mydir(__file__) + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_executable_option_file(self): @@ -59,6 +60,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase): # Test that lldb-mi is ready when executable was loaded self.expect(self.child_prompt, exactly=True) + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_executable_option_absolute_path(self): @@ -83,6 +85,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase): self.expect("\^running") self.expect("\*stopped,reason=\"exited-normally\"") + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_executable_option_relative_path(self): @@ -126,6 +129,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase): # Test that lldb-mi is ready when executable was loaded self.expect(self.child_prompt, exactly=True) + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races @skipIfLinux # llvm.org/pr22841: lldb-mi tests fail on all Linux buildbots @@ -168,6 +172,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase): self.expect("\^done,value=\"10\"") self.expect(self.child_prompt, exactly=True) + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races @skipIfLinux # llvm.org/pr22841: lldb-mi tests fail on all Linux buildbots @@ -232,6 +237,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase): # Test that lldb-mi is ready after execution of --source start_script self.expect(self.child_prompt, exactly=True) + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_log_option(self): @@ -264,6 +270,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase): for f in logFile: os.remove(f) + @skipIfRemote # We do not currently support remote debugging via the MI. @skipIfWindows # llvm.org/pr24452: Get lldb-mi tests working on Windows @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races def test_lldbmi_log_directory_option(self): diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteAttach.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteAttach.py index e53d80b48f9..1696b599de6 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteAttach.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteAttach.py @@ -12,6 +12,7 @@ class TestGdbRemoteAttach(gdbremote_testcase.GdbRemoteTestCaseBase): mydir = TestBase.compute_mydir(__file__) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def attach_with_vAttach(self): # Start the inferior, start the debug monitor, nothing is attached yet. procs = self.prep_debug_monitor_and_inferior( diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py index ffabefc70f8..3c87ee61ab6 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py @@ -13,6 +13,7 @@ class TestGdbRemoteAuxvSupport(gdbremote_testcase.GdbRemoteTestCaseBase): AUXV_SUPPORT_FEATURE_NAME = "qXfer:auxv:read" + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def has_auxv_support(self): inferior_args = ["message:main entered", "sleep:5"] procs = self.prep_debug_monitor_and_inferior( diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py index dc2b99f54bd..94e81963483 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py @@ -11,6 +11,7 @@ class TestGdbRemoteExpeditedRegisters( gdbremote_testcase.GdbRemoteTestCaseBase): mydir = TestBase.compute_mydir(__file__) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def gather_expedited_registers(self): # Setup the stub and set the gdb remote command stream. diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteHostInfo.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteHostInfo.py index d84511d5427..464cdce5e9e 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteHostInfo.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteHostInfo.py @@ -98,12 +98,14 @@ class TestGdbRemoteHostInfo(GdbRemoteTestCaseBase): "qHostInfo is missing the following required " "keys: " + str(missing_keys)) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet @debugserver_test def test_qHostInfo_returns_at_least_one_key_val_pair_debugserver(self): self.init_debugserver_test() self.build() self.get_qHostInfo_response() + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet @llgs_test def test_qHostInfo_returns_at_least_one_key_val_pair_llgs(self): self.init_llgs_test() @@ -111,6 +113,7 @@ class TestGdbRemoteHostInfo(GdbRemoteTestCaseBase): self.get_qHostInfo_response() @skipUnlessDarwin + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet @debugserver_test def test_qHostInfo_contains_darwin_required_keys_debugserver(self): self.init_debugserver_test() @@ -119,6 +122,7 @@ class TestGdbRemoteHostInfo(GdbRemoteTestCaseBase): self.validate_darwin_minimum_host_info_keys(host_info_dict) @skipUnlessDarwin + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet @llgs_test def test_qHostInfo_contains_darwin_required_keys_llgs(self): self.init_llgs_test() diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteKill.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteKill.py index c3ecf5bc24d..6b8ed3b4c50 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteKill.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteKill.py @@ -11,6 +11,7 @@ from lldbsuite.test import lldbutil class TestGdbRemoteKill(gdbremote_testcase.GdbRemoteTestCaseBase): mydir = TestBase.compute_mydir(__file__) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def attach_commandline_kill_after_initial_stop(self): procs = self.prep_debug_monitor_and_inferior() diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteProcessInfo.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteProcessInfo.py index 21af255cfd9..4f7123d789a 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteProcessInfo.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteProcessInfo.py @@ -36,6 +36,7 @@ class TestGdbRemoteProcessInfo(gdbremote_testcase.GdbRemoteTestCaseBase): self.assertTrue(lldbgdbserverutils.process_is_running(pid, True)) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qProcessInfo_returns_running_process_debugserver(self): self.init_debugserver_test() self.build() @@ -67,6 +68,7 @@ class TestGdbRemoteProcessInfo(gdbremote_testcase.GdbRemoteTestCaseBase): self.assertEqual(reported_pid, procs["inferior"].pid) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_attach_commandline_qProcessInfo_reports_correct_pid_debugserver( self): self.init_debugserver_test() @@ -99,6 +101,7 @@ class TestGdbRemoteProcessInfo(gdbremote_testcase.GdbRemoteTestCaseBase): self.assertTrue(endian in ["little", "big", "pdp"]) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qProcessInfo_reports_valid_endian_debugserver(self): self.init_debugserver_test() self.build() @@ -159,6 +162,7 @@ class TestGdbRemoteProcessInfo(gdbremote_testcase.GdbRemoteTestCaseBase): @skipUnlessDarwin @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qProcessInfo_contains_cputype_cpusubtype_debugserver_darwin(self): self.init_debugserver_test() self.build() @@ -180,6 +184,7 @@ class TestGdbRemoteProcessInfo(gdbremote_testcase.GdbRemoteTestCaseBase): @skipUnlessDarwin @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qProcessInfo_does_not_contain_triple_debugserver_darwin(self): self.init_debugserver_test() self.build() diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteRegisterState.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteRegisterState.py index b484bdcc4d5..3d9bb1d21bf 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteRegisterState.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteRegisterState.py @@ -12,6 +12,7 @@ class TestGdbRemoteRegisterState(gdbremote_testcase.GdbRemoteTestCaseBase): mydir = TestBase.compute_mydir(__file__) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def grp_register_save_restore_works(self, with_suffix): # Start up the process, use thread suffix, grab main thread id. inferior_args = ["message:main entered", "sleep:5"] diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteSingleStep.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteSingleStep.py index bcb632dd4ef..f4e1851ff98 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteSingleStep.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteSingleStep.py @@ -11,6 +11,7 @@ class TestGdbRemoteSingleStep(gdbremote_testcase.GdbRemoteTestCaseBase): mydir = TestBase.compute_mydir(__file__) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet @debugserver_test def test_single_step_only_steps_one_instruction_with_s_debugserver(self): self.init_debugserver_test() diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py index b361b9e6d91..2bf0952e902 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py @@ -175,6 +175,7 @@ class TestGdbRemoteThreadsInStopReply( context = self.expect_gdbremote_sequence() self.assertIsNotNone(context) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet @debugserver_test def test_QListThreadsInStopReply_supported_debugserver(self): self.init_debugserver_test() @@ -196,6 +197,7 @@ class TestGdbRemoteThreadsInStopReply( self.ENABLE_THREADS_IN_STOP_REPLY_ENTRIES, thread_count) self.assertEqual(len(stop_reply_threads), thread_count) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet @debugserver_test def test_stop_reply_reports_multiple_threads_debugserver(self): self.init_debugserver_test() @@ -216,6 +218,7 @@ class TestGdbRemoteThreadsInStopReply( stop_reply_threads = self.gather_stop_reply_threads(None, thread_count) self.assertEqual(len(stop_reply_threads), 0) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet @debugserver_test def test_no_QListThreadsInStopReply_supplies_no_threads_debugserver(self): self.init_debugserver_test() @@ -252,6 +255,7 @@ class TestGdbRemoteThreadsInStopReply( for tid in threads: self.assertTrue(tid in stop_reply_threads) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet @debugserver_test def test_stop_reply_reports_correct_threads_debugserver(self): self.init_debugserver_test() @@ -290,6 +294,7 @@ class TestGdbRemoteThreadsInStopReply( self.set_inferior_startup_launch() self.stop_reply_contains_thread_pcs(5) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet @debugserver_test def test_stop_reply_contains_thread_pcs_debugserver(self): self.init_debugserver_test() diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py index 74e4849b0cb..647e57832b0 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py @@ -15,6 +15,8 @@ class TestGdbRemote_qThreadStopInfo(gdbremote_testcase.GdbRemoteTestCaseBase): mydir = TestBase.compute_mydir(__file__) THREAD_COUNT = 5 + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet + @skipIfDarwinEmbedded # <rdar://problem/27005337> def gather_stop_replies_via_qThreadStopInfo(self, thread_count): # Set up the inferior args. inferior_args = [] diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemote_vCont.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemote_vCont.py index 9d0645c5b99..f0380c7167e 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemote_vCont.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemote_vCont.py @@ -39,54 +39,63 @@ class TestGdbRemote_vCont(gdbremote_testcase.GdbRemoteTestCaseBase): def vCont_supports_S(self): self.vCont_supports_mode("S") + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") @debugserver_test def test_vCont_supports_c_debugserver(self): self.init_debugserver_test() self.build() self.vCont_supports_c() + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") @llgs_test def test_vCont_supports_c_llgs(self): self.init_llgs_test() self.build() self.vCont_supports_c() + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") @debugserver_test def test_vCont_supports_C_debugserver(self): self.init_debugserver_test() self.build() self.vCont_supports_C() + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") @llgs_test def test_vCont_supports_C_llgs(self): self.init_llgs_test() self.build() self.vCont_supports_C() + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") @debugserver_test def test_vCont_supports_s_debugserver(self): self.init_debugserver_test() self.build() self.vCont_supports_s() + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") @llgs_test def test_vCont_supports_s_llgs(self): self.init_llgs_test() self.build() self.vCont_supports_s() + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") @debugserver_test def test_vCont_supports_S_debugserver(self): self.init_debugserver_test() self.build() self.vCont_supports_S() + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") @llgs_test def test_vCont_supports_S_llgs(self): self.init_llgs_test() self.build() self.vCont_supports_S() + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") @debugserver_test def test_single_step_only_steps_one_instruction_with_Hc_vCont_s_debugserver( self): @@ -109,6 +118,7 @@ class TestGdbRemote_vCont(gdbremote_testcase.GdbRemoteTestCaseBase): "aarch64"], bugnumber="llvm.org/pr24739") @skipIf(triple='^mips') + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") def test_single_step_only_steps_one_instruction_with_Hc_vCont_s_llgs(self): self.init_llgs_test() self.build() @@ -116,6 +126,7 @@ class TestGdbRemote_vCont(gdbremote_testcase.GdbRemoteTestCaseBase): self.single_step_only_steps_one_instruction( use_Hc_packet=True, step_instruction="vCont;s") + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") @debugserver_test def test_single_step_only_steps_one_instruction_with_vCont_s_thread_debugserver( self): @@ -138,6 +149,7 @@ class TestGdbRemote_vCont(gdbremote_testcase.GdbRemoteTestCaseBase): "aarch64"], bugnumber="llvm.org/pr24739") @skipIf(triple='^mips') + @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") def test_single_step_only_steps_one_instruction_with_vCont_s_thread_llgs( self): self.init_llgs_test() diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestLldbGdbServer.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestLldbGdbServer.py index 6f36fbea470..a4f306efdc9 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestLldbGdbServer.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestLldbGdbServer.py @@ -29,6 +29,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod mydir = TestBase.compute_mydir(__file__) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_exe_starts_debugserver(self): self.init_debugserver_test() server = self.connect_to_debug_monitor() @@ -46,6 +47,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.expect_gdbremote_sequence() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_start_no_ack_mode_debugserver(self): self.init_debugserver_test() self.start_no_ack_mode() @@ -68,6 +70,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.expect_gdbremote_sequence() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_thread_suffix_supported_debugserver(self): self.init_debugserver_test() self.thread_suffix_supported() @@ -89,6 +92,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.expect_gdbremote_sequence() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_list_threads_in_stop_reply_supported_debugserver(self): self.init_debugserver_test() self.list_threads_in_stop_reply_supported() @@ -114,6 +118,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.expect_gdbremote_sequence() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_c_packet_works_debugserver(self): self.init_debugserver_test() self.build() @@ -146,6 +151,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.assertIsNotNone(context) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_inferior_print_exit_debugserver(self): self.init_debugserver_test() self.build() @@ -181,6 +187,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.expect_gdbremote_sequence() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_first_launch_stop_reply_thread_matches_first_qC_debugserver(self): self.init_debugserver_test() self.build() @@ -216,6 +223,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod procs["inferior"].pid, False)) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_attach_commandline_continue_app_exits_debugserver(self): self.init_debugserver_test() self.build() @@ -254,6 +262,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod @debugserver_test @expectedFailureDarwin("llvm.org/pr25486") + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qRegisterInfo_returns_one_valid_result_debugserver(self): self.init_debugserver_test() self.build() @@ -286,6 +295,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod @debugserver_test @expectedFailureDarwin("llvm.org/pr25486") + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qRegisterInfo_returns_all_valid_results_debugserver(self): self.init_debugserver_test() self.build() @@ -332,6 +342,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.assertTrue('flags' in generic_regs) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qRegisterInfo_contains_required_generics_debugserver(self): self.init_debugserver_test() self.build() @@ -367,6 +378,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.assertTrue(len(register_sets) >= 1) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qRegisterInfo_contains_at_least_one_register_set_debugserver( self): self.init_debugserver_test() @@ -446,6 +458,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.assertEqual(len(threads), 1) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qThreadInfo_contains_thread_launch_debugserver(self): self.init_debugserver_test() self.build() @@ -460,6 +473,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.qThreadInfo_contains_thread() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qThreadInfo_contains_thread_attach_debugserver(self): self.init_debugserver_test() self.build() @@ -502,6 +516,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.assertEqual(threads[0], QC_thread_id) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qThreadInfo_matches_qC_launch_debugserver(self): self.init_debugserver_test() self.build() @@ -516,6 +531,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.qThreadInfo_matches_qC() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qThreadInfo_matches_qC_attach_debugserver(self): self.init_debugserver_test() self.build() @@ -579,6 +595,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod reg_index += 1 @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_p_returns_correct_data_size_for_each_qRegisterInfo_launch_debugserver( self): self.init_debugserver_test() @@ -595,6 +612,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.p_returns_correct_data_size_for_each_qRegisterInfo() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_p_returns_correct_data_size_for_each_qRegisterInfo_attach_debugserver( self): self.init_debugserver_test() @@ -643,6 +661,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.assertEqual(int(context.get("thread_id"), 16), thread) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_Hg_switches_to_3_threads_launch_debugserver(self): self.init_debugserver_test() self.build() @@ -657,6 +676,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.Hg_switches_to_3_threads() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_Hg_switches_to_3_threads_attach_debugserver(self): self.init_debugserver_test() self.build() @@ -783,6 +803,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod @unittest2.expectedFailure() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_Hc_then_Csignal_signals_correct_thread_launch_debugserver(self): self.init_debugserver_test() self.build() @@ -852,6 +873,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.assertEqual(read_contents, MEMORY_CONTENTS) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_m_packet_reads_memory_debugserver(self): self.init_debugserver_test() self.build() @@ -877,6 +899,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.expect_gdbremote_sequence() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qMemoryRegionInfo_is_supported_debugserver(self): self.init_debugserver_test() self.build() @@ -939,6 +962,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.assert_address_within_memory_region(code_address, mem_region_dict) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qMemoryRegionInfo_reports_code_address_as_executable_debugserver( self): self.init_debugserver_test() @@ -1003,6 +1027,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod stack_address, mem_region_dict) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qMemoryRegionInfo_reports_stack_address_as_readable_writeable_debugserver( self): self.init_debugserver_test() @@ -1067,6 +1092,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.assert_address_within_memory_region(heap_address, mem_region_dict) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qMemoryRegionInfo_reports_heap_address_as_readable_writeable_debugserver( self): self.init_debugserver_test() @@ -1215,6 +1241,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.assertIsNotNone(context) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_software_breakpoint_set_and_remove_work_debugserver(self): self.init_debugserver_test() if self.getArchitecture() == "arm": @@ -1241,6 +1268,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod @skipUnlessPlatform(oslist=['linux']) @expectedFailureAndroid @skipIf(archs=no_match(['arm', 'aarch64'])) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_hardware_breakpoint_set_and_remove_work_debugserver(self): self.init_debugserver_test() if self.getArchitecture() == "arm": @@ -1280,6 +1308,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.assertTrue(len(supported_dict) > 0) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_qSupported_returns_known_stub_features_debugserver(self): self.init_debugserver_test() self.build() @@ -1353,6 +1382,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod self.assertEqual(printed_message, TEST_MESSAGE + "X") @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_written_M_content_reads_back_correctly_debugserver(self): self.init_debugserver_test() self.build() @@ -1402,6 +1432,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod # Come back to this. I have the test rigged to verify that at least some # of the bit-flip writes work. @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_P_writes_all_gpr_registers_debugserver(self): self.init_debugserver_test() self.build() @@ -1526,6 +1557,7 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcod # Note: as of this moment, a hefty number of the GPR writes are failing # with E32 (everything except rax-rdx, rdi, rsi, rbp). @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_P_and_p_thread_suffix_work_debugserver(self): self.init_debugserver_test() self.build() diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/commandline/TestStubReverseConnect.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/commandline/TestStubReverseConnect.py index c1a63af5424..102f2e344af 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/commandline/TestStubReverseConnect.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/commandline/TestStubReverseConnect.py @@ -84,6 +84,7 @@ class TestStubReverseConnect(gdbremote_testcase.GdbRemoteTestCaseBase): stub_socket.shutdown(socket.SHUT_RDWR) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_reverse_connect_works_debugserver(self): self.init_debugserver_test(use_named_pipe=False) self.set_inferior_startup_launch() diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/exit-code/TestGdbRemoteExitCode.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/exit-code/TestGdbRemoteExitCode.py index e77f2b7acec..5ef4249bd24 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/exit-code/TestGdbRemoteExitCode.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/exit-code/TestGdbRemoteExitCode.py @@ -53,6 +53,7 @@ class TestGdbRemoteExitCode(GdbRemoteTestCaseBase): self.fail("failed to launch inferior: " + fail_reason) @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_start_inferior_debugserver(self): self.init_debugserver_test() self.build() @@ -80,6 +81,7 @@ class TestGdbRemoteExitCode(GdbRemoteTestCaseBase): self.expect_gdbremote_sequence() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_inferior_exit_0_debugserver(self): self.init_debugserver_test() self.build() @@ -112,6 +114,7 @@ class TestGdbRemoteExitCode(GdbRemoteTestCaseBase): self.expect_gdbremote_sequence() @debugserver_test + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def test_inferior_exit_42_debugserver(self): self.init_debugserver_test() self.build() diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py index b417b3292e7..e905a85cc4d 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py @@ -11,6 +11,7 @@ from lldbsuite.test import lldbutil class TestGdbRemoteAbort(gdbremote_testcase.GdbRemoteTestCaseBase): mydir = TestBase.compute_mydir(__file__) + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def inferior_abort_received(self): procs = self.prep_debug_monitor_and_inferior(inferior_args=["abort"]) self.assertIsNotNone(procs) diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py index 5bbca3c146d..316d5d7b82b 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py @@ -13,6 +13,7 @@ class TestGdbRemoteSegFault(gdbremote_testcase.GdbRemoteTestCaseBase): GDB_REMOTE_STOP_CODE_BAD_ACCESS = 0x91 + @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet def inferior_seg_fault_received(self, expected_signo): procs = self.prep_debug_monitor_and_inferior( inferior_args=["segfault"]) diff --git a/lldb/packages/Python/lldbsuite/test/types/AbstractBase.py b/lldb/packages/Python/lldbsuite/test/types/AbstractBase.py index 044a085e020..ee548954a74 100644 --- a/lldb/packages/Python/lldbsuite/test/types/AbstractBase.py +++ b/lldb/packages/Python/lldbsuite/test/types/AbstractBase.py @@ -98,7 +98,7 @@ class GenericTester(TestBase): remote_path = lldbutil.append_to_process_working_directory( "lldb-stdout-redirect.txt") self.runCmd( - 'process launch -o {remote}'.format(remote=remote_path)) + 'process launch -- {remote}'.format(remote=remote_path)) # copy remote_path to local host self.runCmd('platform get-file {remote} "{local}"'.format( remote=remote_path, local=self.golden_filename)) diff --git a/lldb/packages/Python/lldbsuite/test/types/basic_type.cpp b/lldb/packages/Python/lldbsuite/test/types/basic_type.cpp index 1651815fa0c..3102806ab5b 100644 --- a/lldb/packages/Python/lldbsuite/test/types/basic_type.cpp +++ b/lldb/packages/Python/lldbsuite/test/types/basic_type.cpp @@ -89,6 +89,16 @@ typedef struct a_union_nonzero_tag { int main (int argc, char const *argv[]) { + FILE *out = stdout; + + // By default, output to stdout + // If a filename is provided as the command line argument, + // output to that file. + if (argc == 2 && argv[1] && argv[1][0] != '\0') + { + out = fopen (argv[1], "w"); + } + T a = T_VALUE_1; T* a_ptr = &a; T& a_ref = a; @@ -123,89 +133,93 @@ main (int argc, char const *argv[]) a_union_zero_t a_union_zero_array_unbounded[] = {{ T_VALUE_1 }, { T_VALUE_2 }}; #ifdef T_PRINTF_FORMAT - printf ("%s: a = '" T_PRINTF_FORMAT "'\n", T_CSTR, a); - printf ("%s*: %p => *a_ptr = '" T_PRINTF_FORMAT "'\n", T_CSTR, a_ptr, *a_ptr); - printf ("%s&: @%p => a_ref = '" T_PRINTF_FORMAT "'\n", T_CSTR, &a_ref, a_ref); - - printf ("%s[2]: a_array_bounded[0] = '" T_PRINTF_FORMAT "'\n", T_CSTR, a_array_bounded[0]); - printf ("%s[2]: a_array_bounded[1] = '" T_PRINTF_FORMAT "'\n", T_CSTR, a_array_bounded[1]); - - printf ("%s[]: a_array_unbounded[0] = '" T_PRINTF_FORMAT "'\n", T_CSTR, a_array_unbounded[0]); - printf ("%s[]: a_array_unbounded[1] = '" T_PRINTF_FORMAT "'\n", T_CSTR, a_array_unbounded[1]); - - printf ("(a_class) a_class_instance.m_a = '" T_PRINTF_FORMAT "'\n", a_class_instance.get_a()); - printf ("(a_class) a_class_instance.m_b = '" T_PRINTF_FORMAT "'\n", a_class_instance.get_b()); - printf ("(a_class*) a_class_ptr = %p, a_class_ptr->m_a = '" T_PRINTF_FORMAT "'\n", a_class_ptr, a_class_ptr->get_a()); - printf ("(a_class*) a_class_ptr = %p, a_class_ptr->m_b = '" T_PRINTF_FORMAT "'\n", a_class_ptr, a_class_ptr->get_b()); - printf ("(a_class&) a_class_ref = %p, a_class_ref.m_a = '" T_PRINTF_FORMAT "'\n", &a_class_ref, a_class_ref.get_a()); - printf ("(a_class&) a_class_ref = %p, a_class_ref.m_b = '" T_PRINTF_FORMAT "'\n", &a_class_ref, a_class_ref.get_b()); - - printf ("(a_struct_t) a_struct.a = '" T_PRINTF_FORMAT "'\n", a_struct.a); - printf ("(a_struct_t) a_struct.b = '" T_PRINTF_FORMAT "'\n", a_struct.b); - printf ("(a_struct_t*) a_struct_ptr = %p, a_struct_ptr->a = '" T_PRINTF_FORMAT "'\n", a_struct_ptr, a_struct_ptr->a); - printf ("(a_struct_t*) a_struct_ptr = %p, a_struct_ptr->b = '" T_PRINTF_FORMAT "'\n", a_struct_ptr, a_struct_ptr->b); - printf ("(a_struct_t&) a_struct_ref = %p, a_struct_ref.a = '" T_PRINTF_FORMAT "'\n", &a_struct_ref, a_struct_ref.a); - printf ("(a_struct_t&) a_struct_ref = %p, a_struct_ref.b = '" T_PRINTF_FORMAT "'\n", &a_struct_ref, a_struct_ref.b); + fprintf (out, "%s: a = '" T_PRINTF_FORMAT "'\n", T_CSTR, a); + fprintf (out, "%s*: %p => *a_ptr = '" T_PRINTF_FORMAT "'\n", T_CSTR, a_ptr, *a_ptr); + fprintf (out, "%s&: @%p => a_ref = '" T_PRINTF_FORMAT "'\n", T_CSTR, &a_ref, a_ref); + + fprintf (out, "%s[2]: a_array_bounded[0] = '" T_PRINTF_FORMAT "'\n", T_CSTR, a_array_bounded[0]); + fprintf (out, "%s[2]: a_array_bounded[1] = '" T_PRINTF_FORMAT "'\n", T_CSTR, a_array_bounded[1]); + + fprintf (out, "%s[]: a_array_unbounded[0] = '" T_PRINTF_FORMAT "'\n", T_CSTR, a_array_unbounded[0]); + fprintf (out, "%s[]: a_array_unbounded[1] = '" T_PRINTF_FORMAT "'\n", T_CSTR, a_array_unbounded[1]); + + fprintf (out, "(a_class) a_class_instance.m_a = '" T_PRINTF_FORMAT "'\n", a_class_instance.get_a()); + fprintf (out, "(a_class) a_class_instance.m_b = '" T_PRINTF_FORMAT "'\n", a_class_instance.get_b()); + fprintf (out, "(a_class*) a_class_ptr = %p, a_class_ptr->m_a = '" T_PRINTF_FORMAT "'\n", a_class_ptr, a_class_ptr->get_a()); + fprintf (out, "(a_class*) a_class_ptr = %p, a_class_ptr->m_b = '" T_PRINTF_FORMAT "'\n", a_class_ptr, a_class_ptr->get_b()); + fprintf (out, "(a_class&) a_class_ref = %p, a_class_ref.m_a = '" T_PRINTF_FORMAT "'\n", &a_class_ref, a_class_ref.get_a()); + fprintf (out, "(a_class&) a_class_ref = %p, a_class_ref.m_b = '" T_PRINTF_FORMAT "'\n", &a_class_ref, a_class_ref.get_b()); + + fprintf (out, "(a_struct_t) a_struct.a = '" T_PRINTF_FORMAT "'\n", a_struct.a); + fprintf (out, "(a_struct_t) a_struct.b = '" T_PRINTF_FORMAT "'\n", a_struct.b); + fprintf (out, "(a_struct_t*) a_struct_ptr = %p, a_struct_ptr->a = '" T_PRINTF_FORMAT "'\n", a_struct_ptr, a_struct_ptr->a); + fprintf (out, "(a_struct_t*) a_struct_ptr = %p, a_struct_ptr->b = '" T_PRINTF_FORMAT "'\n", a_struct_ptr, a_struct_ptr->b); + fprintf (out, "(a_struct_t&) a_struct_ref = %p, a_struct_ref.a = '" T_PRINTF_FORMAT "'\n", &a_struct_ref, a_struct_ref.a); + fprintf (out, "(a_struct_t&) a_struct_ref = %p, a_struct_ref.b = '" T_PRINTF_FORMAT "'\n", &a_struct_ref, a_struct_ref.b); - printf ("(a_union_zero_t) a_union_zero.a = '" T_PRINTF_FORMAT "'\n", a_union_zero.a); - printf ("(a_union_zero_t*) a_union_zero_ptr = %p, a_union_zero_ptr->a = '" T_PRINTF_FORMAT "'\n", a_union_zero_ptr, a_union_zero_ptr->a); - printf ("(a_union_zero_t&) a_union_zero_ref = %p, a_union_zero_ref.a = '" T_PRINTF_FORMAT "'\n", &a_union_zero_ref, a_union_zero_ref.a); + fprintf (out, "(a_union_zero_t) a_union_zero.a = '" T_PRINTF_FORMAT "'\n", a_union_zero.a); + fprintf (out, "(a_union_zero_t*) a_union_zero_ptr = %p, a_union_zero_ptr->a = '" T_PRINTF_FORMAT "'\n", a_union_zero_ptr, a_union_zero_ptr->a); + fprintf (out, "(a_union_zero_t&) a_union_zero_ref = %p, a_union_zero_ref.a = '" T_PRINTF_FORMAT "'\n", &a_union_zero_ref, a_union_zero_ref.a); - printf ("(a_union_nonzero_t) a_union_nonzero.u.a = '" T_PRINTF_FORMAT "'\n", a_union_nonzero.u.a); - printf ("(a_union_nonzero_t*) a_union_nonzero_ptr = %p, a_union_nonzero_ptr->u.a = '" T_PRINTF_FORMAT "'\n", a_union_nonzero_ptr, a_union_nonzero_ptr->u.a); - printf ("(a_union_nonzero_t&) a_union_nonzero_ref = %p, a_union_nonzero_ref.u.a = '" T_PRINTF_FORMAT "'\n", &a_union_nonzero_ref, a_union_nonzero_ref.u.a); + fprintf (out, "(a_union_nonzero_t) a_union_nonzero.u.a = '" T_PRINTF_FORMAT "'\n", a_union_nonzero.u.a); + fprintf (out, "(a_union_nonzero_t*) a_union_nonzero_ptr = %p, a_union_nonzero_ptr->u.a = '" T_PRINTF_FORMAT "'\n", a_union_nonzero_ptr, a_union_nonzero_ptr->u.a); + fprintf (out, "(a_union_nonzero_t&) a_union_nonzero_ref = %p, a_union_nonzero_ref.u.a = '" T_PRINTF_FORMAT "'\n", &a_union_nonzero_ref, a_union_nonzero_ref.u.a); - printf ("(a_struct_t[2]) a_struct_array_bounded[0].a = '" T_PRINTF_FORMAT "'\n", a_struct_array_bounded[0].a); - printf ("(a_struct_t[2]) a_struct_array_bounded[0].b = '" T_PRINTF_FORMAT "'\n", a_struct_array_bounded[0].b); - printf ("(a_struct_t[2]) a_struct_array_bounded[1].a = '" T_PRINTF_FORMAT "'\n", a_struct_array_bounded[1].a); - printf ("(a_struct_t[2]) a_struct_array_bounded[1].b = '" T_PRINTF_FORMAT "'\n", a_struct_array_bounded[1].b); + fprintf (out, "(a_struct_t[2]) a_struct_array_bounded[0].a = '" T_PRINTF_FORMAT "'\n", a_struct_array_bounded[0].a); + fprintf (out, "(a_struct_t[2]) a_struct_array_bounded[0].b = '" T_PRINTF_FORMAT "'\n", a_struct_array_bounded[0].b); + fprintf (out, "(a_struct_t[2]) a_struct_array_bounded[1].a = '" T_PRINTF_FORMAT "'\n", a_struct_array_bounded[1].a); + fprintf (out, "(a_struct_t[2]) a_struct_array_bounded[1].b = '" T_PRINTF_FORMAT "'\n", a_struct_array_bounded[1].b); - printf ("(a_struct_t[]) a_struct_array_unbounded[0].a = '" T_PRINTF_FORMAT "'\n", a_struct_array_unbounded[0].a); - printf ("(a_struct_t[]) a_struct_array_unbounded[0].b = '" T_PRINTF_FORMAT "'\n", a_struct_array_unbounded[0].b); - printf ("(a_struct_t[]) a_struct_array_unbounded[1].a = '" T_PRINTF_FORMAT "'\n", a_struct_array_unbounded[1].a); - printf ("(a_struct_t[]) a_struct_array_unbounded[1].b = '" T_PRINTF_FORMAT "'\n", a_struct_array_unbounded[1].b); + fprintf (out, "(a_struct_t[]) a_struct_array_unbounded[0].a = '" T_PRINTF_FORMAT "'\n", a_struct_array_unbounded[0].a); + fprintf (out, "(a_struct_t[]) a_struct_array_unbounded[0].b = '" T_PRINTF_FORMAT "'\n", a_struct_array_unbounded[0].b); + fprintf (out, "(a_struct_t[]) a_struct_array_unbounded[1].a = '" T_PRINTF_FORMAT "'\n", a_struct_array_unbounded[1].a); + fprintf (out, "(a_struct_t[]) a_struct_array_unbounded[1].b = '" T_PRINTF_FORMAT "'\n", a_struct_array_unbounded[1].b); - printf ("(a_union_zero_t[2]) a_union_zero_array_bounded[0].a = '" T_PRINTF_FORMAT "'\n", a_union_zero_array_bounded[0].a); - printf ("(a_union_zero_t[2]) a_union_zero_array_bounded[1].a = '" T_PRINTF_FORMAT "'\n", a_union_zero_array_bounded[1].a); + fprintf (out, "(a_union_zero_t[2]) a_union_zero_array_bounded[0].a = '" T_PRINTF_FORMAT "'\n", a_union_zero_array_bounded[0].a); + fprintf (out, "(a_union_zero_t[2]) a_union_zero_array_bounded[1].a = '" T_PRINTF_FORMAT "'\n", a_union_zero_array_bounded[1].a); - printf ("(a_union_zero_t[]) a_union_zero_array_unbounded[0].a = '" T_PRINTF_FORMAT "'\n", a_union_zero_array_unbounded[0].a); - printf ("(a_union_zero_t[]) a_union_zero_array_unbounded[1].a = '" T_PRINTF_FORMAT "'\n", a_union_zero_array_unbounded[1].a); + fprintf (out, "(a_union_zero_t[]) a_union_zero_array_unbounded[0].a = '" T_PRINTF_FORMAT "'\n", a_union_zero_array_unbounded[0].a); + fprintf (out, "(a_union_zero_t[]) a_union_zero_array_unbounded[1].a = '" T_PRINTF_FORMAT "'\n", a_union_zero_array_unbounded[1].a); #endif puts("About to exit, break here to check values..."); // Here is the line we will break on to check variables. #ifdef TEST_BLOCK_CAPTURED_VARS void (^myBlock)() = ^() { - printf ("%s: a = '" T_PRINTF_FORMAT "'\n", T_CSTR, a); - printf ("%s*: %p => *a_ptr = '" T_PRINTF_FORMAT "'\n", T_CSTR, a_ptr, *a_ptr); - printf ("%s&: @%p => a_ref = '" T_PRINTF_FORMAT "'\n", T_CSTR, &a_ref, a_ref); - - printf ("(a_class) a_class_instance.m_a = '" T_PRINTF_FORMAT "'\n", a_class_instance.get_a()); - printf ("(a_class) a_class_instance.m_b = '" T_PRINTF_FORMAT "'\n", a_class_instance.get_b()); - printf ("(a_class*) a_class_ptr = %p, a_class_ptr->m_a = '" T_PRINTF_FORMAT "'\n", a_class_ptr, a_class_ptr->get_a()); - printf ("(a_class*) a_class_ptr = %p, a_class_ptr->m_b = '" T_PRINTF_FORMAT "'\n", a_class_ptr, a_class_ptr->get_b()); - printf ("(a_class&) a_class_ref = %p, a_class_ref.m_a = '" T_PRINTF_FORMAT "'\n", &a_class_ref, a_class_ref.get_a()); - printf ("(a_class&) a_class_ref = %p, a_class_ref.m_b = '" T_PRINTF_FORMAT "'\n", &a_class_ref, a_class_ref.get_b()); + fprintf (out, "%s: a = '" T_PRINTF_FORMAT "'\n", T_CSTR, a); + fprintf (out, "%s*: %p => *a_ptr = '" T_PRINTF_FORMAT "'\n", T_CSTR, a_ptr, *a_ptr); + fprintf (out, "%s&: @%p => a_ref = '" T_PRINTF_FORMAT "'\n", T_CSTR, &a_ref, a_ref); + + fprintf (out, "(a_class) a_class_instance.m_a = '" T_PRINTF_FORMAT "'\n", a_class_instance.get_a()); + fprintf (out, "(a_class) a_class_instance.m_b = '" T_PRINTF_FORMAT "'\n", a_class_instance.get_b()); + fprintf (out, "(a_class*) a_class_ptr = %p, a_class_ptr->m_a = '" T_PRINTF_FORMAT "'\n", a_class_ptr, a_class_ptr->get_a()); + fprintf (out, "(a_class*) a_class_ptr = %p, a_class_ptr->m_b = '" T_PRINTF_FORMAT "'\n", a_class_ptr, a_class_ptr->get_b()); + fprintf (out, "(a_class&) a_class_ref = %p, a_class_ref.m_a = '" T_PRINTF_FORMAT "'\n", &a_class_ref, a_class_ref.get_a()); + fprintf (out, "(a_class&) a_class_ref = %p, a_class_ref.m_b = '" T_PRINTF_FORMAT "'\n", &a_class_ref, a_class_ref.get_b()); - printf ("(a_struct_t) a_struct.a = '" T_PRINTF_FORMAT "'\n", a_struct.a); - printf ("(a_struct_t) a_struct.b = '" T_PRINTF_FORMAT "'\n", a_struct.b); - printf ("(a_struct_t*) a_struct_ptr = %p, a_struct_ptr->a = '" T_PRINTF_FORMAT "'\n", a_struct_ptr, a_struct_ptr->a); - printf ("(a_struct_t*) a_struct_ptr = %p, a_struct_ptr->b = '" T_PRINTF_FORMAT "'\n", a_struct_ptr, a_struct_ptr->b); - printf ("(a_struct_t&) a_struct_ref = %p, a_struct_ref.a = '" T_PRINTF_FORMAT "'\n", &a_struct_ref, a_struct_ref.a); - printf ("(a_struct_t&) a_struct_ref = %p, a_struct_ref.b = '" T_PRINTF_FORMAT "'\n", &a_struct_ref, a_struct_ref.b); + fprintf (out, "(a_struct_t) a_struct.a = '" T_PRINTF_FORMAT "'\n", a_struct.a); + fprintf (out, "(a_struct_t) a_struct.b = '" T_PRINTF_FORMAT "'\n", a_struct.b); + fprintf (out, "(a_struct_t*) a_struct_ptr = %p, a_struct_ptr->a = '" T_PRINTF_FORMAT "'\n", a_struct_ptr, a_struct_ptr->a); + fprintf (out, "(a_struct_t*) a_struct_ptr = %p, a_struct_ptr->b = '" T_PRINTF_FORMAT "'\n", a_struct_ptr, a_struct_ptr->b); + fprintf (out, "(a_struct_t&) a_struct_ref = %p, a_struct_ref.a = '" T_PRINTF_FORMAT "'\n", &a_struct_ref, a_struct_ref.a); + fprintf (out, "(a_struct_t&) a_struct_ref = %p, a_struct_ref.b = '" T_PRINTF_FORMAT "'\n", &a_struct_ref, a_struct_ref.b); - printf ("(a_union_zero_t) a_union_zero.a = '" T_PRINTF_FORMAT "'\n", a_union_zero.a); - printf ("(a_union_zero_t*) a_union_zero_ptr = %p, a_union_zero_ptr->a = '" T_PRINTF_FORMAT "'\n", a_union_zero_ptr, a_union_zero_ptr->a); - printf ("(a_union_zero_t&) a_union_zero_ref = %p, a_union_zero_ref.a = '" T_PRINTF_FORMAT "'\n", &a_union_zero_ref, a_union_zero_ref.a); + fprintf (out, "(a_union_zero_t) a_union_zero.a = '" T_PRINTF_FORMAT "'\n", a_union_zero.a); + fprintf (out, "(a_union_zero_t*) a_union_zero_ptr = %p, a_union_zero_ptr->a = '" T_PRINTF_FORMAT "'\n", a_union_zero_ptr, a_union_zero_ptr->a); + fprintf (out, "(a_union_zero_t&) a_union_zero_ref = %p, a_union_zero_ref.a = '" T_PRINTF_FORMAT "'\n", &a_union_zero_ref, a_union_zero_ref.a); - printf ("(a_union_nonzero_t) a_union_nonzero.u.a = '" T_PRINTF_FORMAT "'\n", a_union_nonzero.u.a); - printf ("(a_union_nonzero_t*) a_union_nonzero_ptr = %p, a_union_nonzero_ptr->u.a = '" T_PRINTF_FORMAT "'\n", a_union_nonzero_ptr, a_union_nonzero_ptr->u.a); - printf ("(a_union_nonzero_t&) a_union_nonzero_ref = %p, a_union_nonzero_ref.u.a = '" T_PRINTF_FORMAT "'\n", &a_union_nonzero_ref, a_union_nonzero_ref.u.a); + fprintf (out, "(a_union_nonzero_t) a_union_nonzero.u.a = '" T_PRINTF_FORMAT "'\n", a_union_nonzero.u.a); + fprintf (out, "(a_union_nonzero_t*) a_union_nonzero_ptr = %p, a_union_nonzero_ptr->u.a = '" T_PRINTF_FORMAT "'\n", a_union_nonzero_ptr, a_union_nonzero_ptr->u.a); + fprintf (out, "(a_union_nonzero_t&) a_union_nonzero_ref = %p, a_union_nonzero_ref.u.a = '" T_PRINTF_FORMAT "'\n", &a_union_nonzero_ref, a_union_nonzero_ref.u.a); - printf ("That's All Folks!\n"); // Break here to test block captured variables. + fprintf (out, "That's All Folks!\n"); // Break here to test block captured variables. }; myBlock(); #endif + + if (out != stdout) + fclose (out); + return 0; } |