gcov: make it possible to use GCov from a toolchain
When using a tool from a toolchain COVERAGE_GCOV_PATH will be a relative path. To make it work on different working directories it's required to convert the path to an absolute one.
Closes #11490.
PiperOrigin-RevId: 313371088
diff --git a/tools/test/collect_cc_coverage.sh b/tools/test/collect_cc_coverage.sh
index 3e95c57..181433b 100755
--- a/tools/test/collect_cc_coverage.sh
+++ b/tools/test/collect_cc_coverage.sh
@@ -56,7 +56,15 @@
# we would need to invoke it with "llvm-cov gcov").
# For more details see https://llvm.org/docs/CommandGuide/llvm-cov.html.
GCOV="${COVERAGE_DIR}/gcov"
- ln -s "${COVERAGE_GCOV_PATH}" "${GCOV}"
+ if [ ! -f "${COVERAGE_GCOV_PATH}" ]; then
+ echo "GCov does not exist at the given path: '${COVERAGE_GCOV_PATH}'"
+ exit 1
+ fi
+ # When using a tool from a toolchain COVERAGE_GCOV_PATH will be a relative
+ # path. To make it work on different working directories it's required to
+ # convert the path to an absolute one.
+ COVERAGE_GCOV_PATH_ABS="$(cd "${COVERAGE_GCOV_PATH%/*}" && pwd)/${COVERAGE_GCOV_PATH##*/}"
+ ln -s "${COVERAGE_GCOV_PATH_ABS}" "${GCOV}"
}
# Computes code coverage data using the clang generated metadata found under