summaryrefslogtreecommitdiffstats
path: root/tests/coverage.sh
blob: f09f644ff26d2d09a2cfc2406014a62a52d50b1c (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
#! /bin/bash

cd ..

for d in lib libasm libdw libdwfl libebl libelf src; do
  tmp=$d-data
  cd $d
  unused=0
  for f in *.gcno; do
    base="$(basename $f .gcno)"
    fc="$base.c"
    gcda="$base.gcda"
    if [ -f "$gcda" ]; then
      gcov -n -a "$fc" |
      gawk "/$d.$fc/ { getline; co=gensub(/.*:(.*)% .*/, \"\\\\1\", \"g\"); co=co+0.0; li=\$4+0; printf \"%-35s  %6.2f %5d\n\", \"$d/$fc\", co, li } " >> $tmp
    else
      unused=$(($unused + 1))
    fi
  done
  if [ -f $tmp ]; then
    gawk "{ copct=\$2; co=(\$3*copct)/100; toco+=(co+0); toli += (\$3+0); } END { printf \"%-12s %6.2f%% covered       unused files: %3d\n\", \"$d\", (toco*100)/toli, \"$unused\" }" $tmp
    rm -f $tmp
  else
    printf "%-12s   0.00%% covered       unused files: %3d\n" "$d" $unused
  fi
  cd ..
done