diff options
Diffstat (limited to 'scripts/code_cov_gather_on_build')
-rwxr-xr-x | scripts/code_cov_gather_on_build | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/code_cov_gather_on_build b/scripts/code_cov_gather_on_build new file mode 100755 index 00000000..eebee89f --- /dev/null +++ b/scripts/code_cov_gather_on_build @@ -0,0 +1,39 @@ +#!/bin/bash + +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 +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=$(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)" + +tar cf${TAR_COMPRESS} $DEST $SRCS $OBJS + +if [ $? -eq 0 ] ; then + echo "$DEST successfully created, copy to test system and unpack with:" + echo " tar xf${TAR_COMPRESS} $DEST" +else + echo "Could not create file $DEST" +fi |