Author: adrian Date: Thu Aug 23 10:19:08 2018 New Revision: 340548 URL: http://llvm.org/viewvc/llvm-project?rev=340548&view=rev Log: lldbtest.py: Work around macOS SIP when testing ASANified builds.
Modified: lldb/trunk/lit/Suite/lldbtest.py Modified: lldb/trunk/lit/Suite/lldbtest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Suite/lldbtest.py?rev=340548&r1=340547&r2=340548&view=diff ============================================================================== --- lldb/trunk/lit/Suite/lldbtest.py (original) +++ lldb/trunk/lit/Suite/lldbtest.py Thu Aug 23 10:19:08 2018 @@ -9,6 +9,14 @@ import lit.TestRunner import lit.util from lit.formats.base import TestFormat +def getBuildDir(cmd): + found = False + for arg in cmd: + if found: + return arg + if arg == '--build-dir': + found = True + return None class LLDBTest(TestFormat): def __init__(self, dotest_cmd): @@ -49,6 +57,18 @@ class LLDBTest(TestFormat): # python exe as the first parameter of the command. cmd = [sys.executable] + self.dotest_cmd + [testPath, '-p', testFile] + # The macOS system integrity protection (SIP) doesn't allow injecting + # libraries into system binaries, but this can be worked around by + # copying the binary into a different location. + if test.config.environment['DYLD_INSERT_LIBRARIES'] and \ + sys.executable.startswith('/System/'): + builddir = getBuildDir(cmd) + assert(builddir) + copied_python = os.path.join(builddir, 'copied-system-python') + import shutil + shutil.copy(sys.executable, os.path.join(builddir, copied_python)) + cmd[0] = copied_python + try: out, err, exitCode = lit.util.executeCommand( cmd, _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits