diff --git a/cts/cts-coverage.in b/cts/cts-coverage.in index 0fdfe918fd..ba831810a2 100644 --- a/cts/cts-coverage.in +++ b/cts/cts-coverage.in @@ -1,62 +1,68 @@ #!@BASH_PATH@ +# +# Copyright 2012-2018 Andrew Beekhof +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# -start=$PWD -test_home=`dirname $0` +start="$PWD" +test_home=$(dirname "$0") test_dir="@datadir@/@PACKAGE@/tests" if [ "$test_home" != "$test_dir" ]; then # Running against the source tree - GCOV_BASE=@abs_top_srcdir@ + GCOV_BASE="@abs_top_srcdir@" test_dir="@abs_top_srcdir@/cts" - cd @abs_top_srcdir@ + cd "@abs_top_srcdir@" || exit 1 grep with-gcov config.log - if [ $? = 0 ]; then + if [ $? -eq 0 ]; then echo "Pacemaker was built with gcov support" else echo "Re-building with gcov support" last=`grep --color=never "$.*configure" config.log | tail -n 1 | sed s:.*configure:./configure: | sed s:--no-create:--with-gcov:` eval $last fi #sudo make core core-install else GCOV_BASE=@localstatedir@/lib/pacemaker/gcov/ mkdir -p $GCOV_BASE export GCOV_PREFIX_STRIP=4 export GCOV_PREFIX=$GCOV_BASE top=`find / -name crm_internal.h 2>/dev/null | grep debug | head -n 1` if [ "x$top" = x ]; then echo "Could not locate the pacemaker headers" exit 1 fi - cd `dirname $top` - cd .. + cd "$(dirname "$top")" || exit 1 + cd .. || exit 1 echo "Creating the directory structure in $GCOV_BASE from $PWD" # The .gcno files will already be there for sources, # but we still need to create the include/ subtree find . -type d -exec mkdir -p $GCOV_BASE/\{\} \; echo "Now linking the source files into place" find . -type f -name "*.c" -exec ln -s $PWD/\{\} $GCOV_BASE\{\} \; find . -type f -name "*.h" -exec ln -s $PWD/\{\} $GCOV_BASE\{\} \; find . -type f -name "*.debug" -exec ln -s $PWD/\{\} $GCOV_BASE\{\} \; fi -cd $start +cd "$start" || exit 1 lcov -d $GCOV_BASE -z # Run all active regression tests $test_dir/cts-regression lcov -d $GCOV_BASE -c -o pacemaker.info rm -rf html mkdir html genhtml -o html pacemaker.info