Use SetMacXcodePath in tools/coverage.py
This is needed on the mac bots when xcode isn't in the standard place in
order to run otool.
Bug: 861357
Change-Id: Idbad0b07afdf1b7b214735b6a7db1371427ef145
Reviewed-on: https://chromium-review.googlesource.com/c/1479293
Commit-Queue: Brad Hall <[email protected]>
Reviewed-by: Yuke Liao <[email protected]>
Cr-Commit-Position: refs/heads/master@{#635319}
diff --git a/tools/code_coverage/coverage.py b/tools/code_coverage/coverage.py
index 7cf2d3d..16e5f55 100755
--- a/tools/code_coverage/coverage.py
+++ b/tools/code_coverage/coverage.py
@@ -799,6 +799,16 @@
os.makedirs(coverage_utils.GetCoverageReportRootDirPath(OUTPUT_DIR))
+def _SetMacXcodePath():
+ """Set DEVELOPER_DIR to the path to hermetic Xcode.app on Mac OS X."""
+ if sys.platform != 'darwin':
+ return
+
+ xcode_path = os.path.join(SRC_ROOT_PATH, 'build', 'mac_files', 'Xcode.app')
+ if os.path.exists(xcode_path):
+ os.environ['DEVELOPER_DIR'] = xcode_path
+
+
def _ParseCommandArguments():
"""Adds and parses relevant arguments for tool comands.
@@ -986,6 +996,11 @@
profdata_file_path = args.profdata_file
binary_paths = _GetBinaryPathsFromTargets(args.targets, args.build_dir)
+ # DEVELOPER_DIR needs to be set when Xcode isn't in a standard location
+ # and xcode-select wasn't run. This path needs to be set prior to calling
+ # otool which happens on mac in coverage_utils.GetSharedLibraries().
+ _SetMacXcodePath()
+
binary_paths.extend(
coverage_utils.GetSharedLibraries(binary_paths, BUILD_DIR))