summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@kernel.org>2022-03-16 15:59:58 +0100
committerPetri Latvala <petri.latvala@intel.com>2022-03-21 18:34:59 +0200
commitc078ba892ba931aa2f54e4760b8306cde8b3ba51 (patch)
treea4a4b824d416e6057ae1cee81f5c102d3feaae0b /scripts
parent4c6eab51e1078f273ed6e53d8490166089592392 (diff)
scripts/code_cov_gather_on_build.sh: Improve the script
- speedup the script by allowing Sparse file detection instead of libz compression; - use realpath for the paths to allow running them from everywhere; - Speedup tarball generation by limiting the source file scope to the DRM subsystem; - Indent with tabs instead of spaces. Reviewed-by: Tomi Sarvela <tomi.p.sarvela@intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/code_cov_gather_on_build.sh34
1 files changed, 25 insertions, 9 deletions
diff --git a/scripts/code_cov_gather_on_build.sh b/scripts/code_cov_gather_on_build.sh
index 99c436f7..eebee89f 100755
--- a/scripts/code_cov_gather_on_build.sh
+++ b/scripts/code_cov_gather_on_build.sh
@@ -4,20 +4,36 @@ KSRC=$1
KOBJ=$2
DEST=$3
+# Limit scope in order to speedup tarball creation
+GCOV_SCOPE=drivers/gpu/drm/
+
if [ -z "$KSRC" ] || [ -z "$KOBJ" ] || [ -z "$DEST" ]; then
- echo "Usage: $0 <ksrc directory> <kobj directory> <output.tar.gz>" >&2
- exit 1
+ echo "Usage: $0 <ksrc directory> <kobj directory> <output.tar[.gz]>" >&2
+ exit 1
+fi
+
+if [ "x$(echo $DEST|grep '\.gz')" != "x" ]; then
+ TAR_COMPRESS="z"
+else
+ # gcno files are sparsed. So, if no compression is used, store the
+ # results as a sparse file, in order to save disk space
+ TAR_COMPRESS="S"
fi
-KSRC=$(cd $KSRC; printf "all:\n\t@echo \${CURDIR}\n" | make -f -)
-KOBJ=$(cd $KOBJ; printf "all:\n\t@echo \${CURDIR}\n" | make -f -)
+KSRC=$(realpath $KSRC)
+KOBJ=$(realpath $KOBJ)
+
+# Source files
+SRCS="${KSRC}/include ${KSRC}/arch/x86/include $(find ${KSRC}/${GCOV_SCOPE} -name '*.[ch]')"
+
+# Generated gcno files and links
+OBJS="$(find $KOBJ/${GCOV_SCOPE} \( -name '*.gcno' -o -name '*.[ch]' -o -type l \) -a -perm /u+r,g+r)"
-find $KSRC $KOBJ \( -name '*.gcno' -o -name '*.[ch]' -o -type l \) -a \
- -perm /u+r,g+r | tar cfz $DEST -P -T -
+tar cf${TAR_COMPRESS} $DEST $SRCS $OBJS
if [ $? -eq 0 ] ; then
- echo "$DEST successfully created, copy to test system and unpack with:"
- echo " tar xfz $DEST -P"
+ echo "$DEST successfully created, copy to test system and unpack with:"
+ echo " tar xf${TAR_COMPRESS} $DEST"
else
- echo "Could not create file $DEST"
+ echo "Could not create file $DEST"
fi