[libcxx-commits] [PATCH] D99726: [libc++] Fix codesigning in run.py

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu Apr 1 06:48:49 PDT 2021


ldionne created this revision.
Herald added a subscriber: arichardson.
ldionne requested review of this revision.
Herald added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.

Without this patch, we'd always try to codesign the first argument in
the command line, which in some cases is not something we can codesign
(e.g. `bash` for some .sh.cpp tests).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D99726

Files:
  libcxx/utils/run.py


Index: libcxx/utils/run.py
===================================================================
--- libcxx/utils/run.py
+++ libcxx/utils/run.py
@@ -29,13 +29,18 @@
     args = parser.parse_args()
     commandLine = args.command
 
-    # Do any necessary codesigning.
+    # HACK:
+    # If an argument is a file that ends in `.tmp.exe`, assume it is the name
+    # of an executable generated by a test file. We call these test-executables
+    # below. This allows us to do custom processing like codesigning test-executables.
+    # It's also possible for there to be no such executable, for example in the case
+    # of a .sh.cpp test.
+    isTestExe = lambda exe: exe.endswith('.tmp.exe') and os.path.exists(exe)
+
+    # Do any necessary codesigning of test-executables found in the command line.
     if args.codesign_identity:
-        exe = commandLine[0]
-        rc = subprocess.call(['xcrun', 'codesign', '-f', '-s', args.codesign_identity, exe], env={})
-        if rc != 0:
-            sys.stderr.write('Failed to codesign: ' + exe)
-            return rc
+        for exe in filter(isTestExe, commandLine):
+            subprocess.check_call(['xcrun', 'codesign', '-f', '-s', args.codesign_identity, exe], env={})
 
     # Extract environment variables into a dictionary
     env = {k : v  for (k, v) in map(lambda s: s.split('=', 1), args.env)}


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D99726.334676.patch
Type: text/x-patch
Size: 1361 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210401/5d2685ab/attachment.bin>


More information about the libcxx-commits mailing list