| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | #!/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=$1for fn in src/or/*.c src/common/*.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}/src_*-${F}.o`    ONS_WILDCARD_LITERAL="${DN}/src_*-${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 [ -n $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"    fidone
 |