summaryrefslogtreecommitdiff
path: root/scripts/code_cov_gather_on_build
blob: eebee89f9f1c7eb47560bc0121d194a89c9f7dc7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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