diff options
author | Kristofer Jonsson <kristofer.jonsson@arm.com> | 2022-04-13 15:00:36 +0200 |
---|---|---|
committer | Kristofer Jonsson <kristofer.jonsson@arm.com> | 2022-04-26 16:26:54 +0200 |
commit | 3a353a3f1df7a24d2437ee218a4f5bbb2146796c (patch) | |
tree | a7f097c338cc71c31647b1d875bf1c4c9c041eb5 /tools/gcov/coverage_report.sh | |
parent | fc49559b7800bd13652102b779adcdecccd520e3 (diff) | |
download | ethos-u-linux-driver-stack-3a353a3f1df7a24d2437ee218a4f5bbb2146796c.tar.gz |
Coverage
Add scripts for gathering coverage data on target, and analyzing
coverage info on host.
Change-Id: I3bb2d0ec3757ce077638a8780779daa84cd48686
Diffstat (limited to 'tools/gcov/coverage_report.sh')
-rwxr-xr-x | tools/gcov/coverage_report.sh | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tools/gcov/coverage_report.sh b/tools/gcov/coverage_report.sh new file mode 100755 index 0000000..5acbca2 --- /dev/null +++ b/tools/gcov/coverage_report.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env bash + +# +# Copyright (c) 2022 Arm Limited. +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the License); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an AS IS BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +set -o errexit +set -o pipefail +set -o errtrace + +GCDA=$1 +OUT_DIR=$2 +LDS_DIR="$(realpath "$(dirname "$(dirname "$(dirname "$0")")")")" + +usage() { + echo "Usage: $0 <gcov.tar.gz> <outdir>" >&2 + exit 1 +} + +# Verify arguments to the script +if [ ! -e "${GCDA}" ] || [ -z "${OUT_DIR}" ] +then + usage +fi + +# Recreate output directory +if [ -d "${OUT_DIR}" ] +then + rm -rf "${OUT_DIR}" +fi + +mkdir "${OUT_DIR}" + +# Extract gcda files from the archive +find "${LDS_DIR}/kernel" -name "*.gcda" -delete +tar -C "${LDS_DIR}" -zxf "${GCDA}" + +# Analyze coverage and generate HTML report +lcov -c -o "${OUT_DIR}/coverage.info" -d "${LDS_DIR}/kernel" +lcov --rc lcov_branch_coverage=1 --remove "${OUT_DIR}/coverage.info" \ + '*/kernel/arch/*' '*/kernel/include/*' \ + > "${OUT_DIR}/coverage.filtered.info" +genhtml -o "${OUT_DIR}" "${OUT_DIR}/coverage.filtered.info" |