diff options
author | Enrico Granata <egranata@apple.com> | 2015-11-05 00:46:25 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2015-11-05 00:46:25 +0000 |
commit | 5f92a130ffc225c8120ae7e8fd80e695dd4e51f6 (patch) | |
tree | 8b96f078685b3914b3e413c568d52d63538644a3 /lldb/packages/Python/lldbsuite/test/dotest.py | |
parent | c77ce7b6263037f717369ce0ca95d51b31b72168 (diff) | |
download | bcm5719-llvm-5f92a130ffc225c8120ae7e8fd80e695dd4e51f6.tar.gz bcm5719-llvm-5f92a130ffc225c8120ae7e8fd80e695dd4e51f6.zip |
Teach LLDB how to directly launch processes on the iOS simulator
This allows for command-line debugging of iOS simulator binaries (as long as UI is not required, or a full UI simulator has previously been otherwise launched), as well as execution of the LLDB test suite on the iOS simulator
This is known to compile on OSX 10.11 GM - feedback from people on other platforms and/or older versions of OSX as to the buildability of this code is greatly appreciated
llvm-svn: 252112
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/dotest.py')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/dotest.py | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/dotest.py b/lldb/packages/Python/lldbsuite/test/dotest.py index cdaf8167711..313734a0400 100644 --- a/lldb/packages/Python/lldbsuite/test/dotest.py +++ b/lldb/packages/Python/lldbsuite/test/dotest.py @@ -1381,6 +1381,28 @@ def isMultiprocessTestRunner(): # test runner return not (is_inferior_test_runner or no_multiprocess_test_runner) +def getVersionForSDK(sdk): + sdk = str.lower(sdk) + full_path = seven.get_command_output('xcrun -sdk %s --show-sdk-path' % sdk) + basename = os.path.basename(full_path) + basename = os.path.splitext(basename)[0] + basename = str.lower(basename) + ver = basename.replace(sdk, '') + return ver + +def getPathForSDK(sdk): + sdk = str.lower(sdk) + full_path = seven.get_command_output('xcrun -sdk %s --show-sdk-path' % sdk) + if os.path.exists(full_path): return full_path + return None + +def setDefaultTripleForPlatform(): + if lldb_platform_name == 'ios-simulator': + triple_str = 'x86_64-apple-ios%s' % (getVersionForSDK('iphonesimulator')) + os.environ['TRIPLE'] = triple_str + return {'TRIPLE':triple_str} + return {} + def run_suite(): global just_do_benchmarks_test global dont_do_dsym_test @@ -1478,6 +1500,7 @@ def run_suite(): if lldb_platform_name: print("Setting up remote platform '%s'" % (lldb_platform_name)) lldb.remote_platform = lldb.SBPlatform(lldb_platform_name) + lldb.remote_platform_name = lldb_platform_name if not lldb.remote_platform.IsValid(): print("error: unable to create the LLDB platform named '%s'." % (lldb_platform_name)) exitTestSuite(1) @@ -1495,10 +1518,17 @@ def run_suite(): else: lldb.platform_url = None - if lldb_platform_working_dir: - print("Setting remote platform working directory to '%s'..." % (lldb_platform_working_dir)) - lldb.remote_platform.SetWorkingDirectory(lldb_platform_working_dir) - + platform_changes = setDefaultTripleForPlatform() + first = True + for key in platform_changes: + if first: + print("Environment variables setup for platform support:") + first = False + print("%s = %s" % (key,platform_changes[key])) + + if lldb_platform_working_dir: + print("Setting remote platform working directory to '%s'..." % (lldb_platform_working_dir)) + lldb.remote_platform.SetWorkingDirectory(lldb_platform_working_dir) lldb.remote_platform_working_dir = lldb_platform_working_dir lldb.DBG.SetSelectedPlatform(lldb.remote_platform) else: |