diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile.am | 5 | ||||
-rwxr-xr-x | test/create-coverage-report.sh | 57 |
2 files changed, 62 insertions, 0 deletions
diff --git a/test/Makefile.am b/test/Makefile.am new file mode 100644 index 0000000..b37166c --- /dev/null +++ b/test/Makefile.am @@ -0,0 +1,5 @@ + +EXTRA_DIST = create-coverage-report.sh + +clean-local : + rm -f *~ diff --git a/test/create-coverage-report.sh b/test/create-coverage-report.sh new file mode 100755 index 0000000..336a5bd --- /dev/null +++ b/test/create-coverage-report.sh @@ -0,0 +1,57 @@ +#!/bin/sh + +TOTAL_ACTUAL=0 +TOTAL_COVERED=0 +TOTAL_SOURCE=0 + +MODULE=$1 +shift + +echo "==============================================================================" +echo "Test coverage for module $MODULE:" +echo "==============================================================================" + +while [ $# -gt 0 ] ; do + gcov $1 -o .libs/ > /dev/null + + SOURCE=`cat $1 |wc -l` + ACTUAL=`grep -v " -:" $1.gcov |wc -l` + NOT_COVERED=`grep " #####:" $1.gcov |wc -l` + COVERED=$(($ACTUAL - $NOT_COVERED)) + PERCENT=$((100 * $COVERED / $ACTUAL)) + + TOTAL_SOURCE=$(($TOTAL_SOURCE + $SOURCE)) + TOTAL_ACTUAL=$(($TOTAL_ACTUAL + $ACTUAL)) + TOTAL_COVERED=$(($TOTAL_COVERED + $COVERED)) + + echo -n "$1" + + n=${#1} + while [ $n -lt 55 ] ; do + echo -n " " + n=$(($n + 1)) + done + + echo -n " : " + + if [ $PERCENT -lt 10 ] ; then + echo -n " $PERCENT%" + elif [ $PERCENT -lt 100 ] ; then + echo -n " $PERCENT%" + else + echo -n "100%" + fi + + echo " ($COVERED of $ACTUAL)" + + shift +done + +TOTAL_PERCENT=$((100 * $TOTAL_COVERED / $TOTAL_ACTUAL)) + +echo +echo "Source lines : $TOTAL_SOURCE" +echo "Actual statements : $TOTAL_ACTUAL" +echo "Executed statements : $TOTAL_COVERED" +echo "Test coverage : $TOTAL_PERCENT%" +echo |