mirror of https://github.com/mongodb/mongo
36 lines
1.2 KiB
Bash
Executable File
36 lines
1.2 KiB
Bash
Executable File
set +o errexit
|
|
|
|
if [ -z "${GCOV_TOOL:-}" ]; then
|
|
echo "No coverage tool defined. Set the gcov_tool expansion in evergreen.yml" >&2
|
|
exit 1
|
|
fi
|
|
|
|
cd src
|
|
if [ -d "./build" ]; then
|
|
file_list=$(find ./build -type f -name "*.gcda")
|
|
if [ -n "$file_list" ]; then
|
|
for gcda_file in $file_list; do
|
|
echo "Processing file $gcda_file"
|
|
${GCOV_TOOL[@]} -i "$gcda_file"
|
|
base_name=$(echo "$gcda_file" | rev | cut -f1 -d '/' | cut -f2 -d '.' | rev)
|
|
gcov_file=$base_name.gcda.gcov
|
|
if [ -f "$gcov_file" ]; then
|
|
# Add a prefix to the intermediate file, since it does not have a unique name.
|
|
# Convert the '/' to '#' in the file path.
|
|
file_prefix=$(echo "$gcda_file" | sed -e 's,^\./,,' | rev | cut -f2- -d '/' | rev | tr -s '/' '#')
|
|
new_gcov_file="$file_prefix #$base_name.gcda.gcov"
|
|
if [ ! -f "$new_gcov_file" ]; then
|
|
echo "Renaming gcov intermediate file $gcov_file to $new_gcov_file"
|
|
mv "$gcov_file" "$new_gcov_file"
|
|
else
|
|
# We treat this as a fatal condition and remove all of the coverage files.
|
|
echo "Not renaming $gcov_file as $new_gcov_file already exists!"
|
|
rm -f ./*.gcda.gcov
|
|
exit 1
|
|
fi
|
|
fi
|
|
rm "$gcda_file"
|
|
done
|
|
fi
|
|
fi
|