diff options
-rwxr-xr-x | scripts/code_cov_gather_on_build.sh | 34 |
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 |