tor/scripts/test/coverage
Nick Mathewson 192b312c97 Fix coverage script.
It was looking for object files made with the old automake
directorations, but those changed when we split up our libraries.

Fixes bug 29435; bugfix on 0.3.5.1-alpha.
2019-02-08 10:43:38 -05:00

47 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
# Copyright 2013 The Tor Project, Inc.
# See LICENSE for licensing information.
# coverage -- run gcov on the appropriate set of object files to extract
# coverage information.
dst=$1
for fn in src/core/*/*.c src/feature/*/*.c src/app/*/*.c src/lib/*/*.c; do
BN=`basename $fn`
DN=`dirname $fn`
F=`echo $BN | sed -e 's/\.c$//;'`
GC="${BN}.gcov"
# Figure out the object file names
ONS=$(echo "${DN}"/*testing_a-"${F}".o)
ONS_WILDCARD_LITERAL="${DN}/*testing_a-${F}.o"
# If the wildcard didn't expand, no files
if [ "$ONS" != "${ONS_WILDCARD_LITERAL}" ]
then
for on in $ONS; do
# We should have a gcno file
GCNO=`echo $on | sed -e 's/\.o$/\.gcno/;'`
if [ -e $GCNO ]
then
# No need to test for gcda, since gcov assumes no execution
# if it's absent
rm -f $GC
gcov -o $on $fn
if [ -e $GC ]
then
if [ -d "$dst" ]
then
mv $GC $dst/$GC
fi
else
echo "gcov -o $on $fn didn't make a .gcov file"
fi
else
echo "Couldn't find gcno file for $on"
fi
done
else
echo "No object file found matching source file $fn"
fi
done