Blame tests/coverage.sh

Packit Service 97d2fb
#! /usr/bin/env bash
Packit Service 97d2fb
Packit Service 97d2fb
if [ "x$1" = "x-v" ]; then
Packit Service 97d2fb
  verbose=yes
Packit Service 97d2fb
else
Packit Service 97d2fb
  verbose=no
Packit Service 97d2fb
fi
Packit Service 97d2fb
Packit Service 97d2fb
cd ..
Packit Service 97d2fb
Packit Service 97d2fb
for d in lib libasm libdw libdwfl libebl libelf backends src debuginfod; do
Packit Service 97d2fb
  tmp=$d-data
Packit Service 97d2fb
  cd $d
Packit Service 97d2fb
  unused=0
Packit Service 97d2fb
  unused_files=
Packit Service 97d2fb
  for f in *.gcno; do
Packit Service 97d2fb
    base="$(basename $f .gcno)"
Packit Service 97d2fb
    if [ -f "$base.c" ]; then fc="$base.c"; else fc="$base.cxx"; fi
Packit Service 97d2fb
    gcda="$base.gcda"
Packit Service 97d2fb
    if [ -f "$gcda" ]; then
Packit Service 97d2fb
      gcov -n -a "$fc" |
Packit Service 97d2fb
      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
Packit Service 97d2fb
    else
Packit Service 97d2fb
      unused=$(($unused + 1))
Packit Service 97d2fb
      unused_files="$unused_files $fc"
Packit Service 97d2fb
    fi
Packit Service 97d2fb
  done
Packit Service 97d2fb
  if [ -f $tmp ]; then
Packit Service 97d2fb
    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
Packit Service 97d2fb
    rm -f $tmp
Packit Service 97d2fb
  else
Packit Service 97d2fb
    printf "%-12s   0.00%% covered       unused files: %3d\n" "$d" $unused
Packit Service 97d2fb
  fi
Packit Service 97d2fb
  if [ $verbose = yes ]; then
Packit Service 97d2fb
    for f in $unused_files; do
Packit Service 97d2fb
      printf '%-42s%s\n' '' $f
Packit Service 97d2fb
    done
Packit Service 97d2fb
  fi
Packit Service 97d2fb
  cd ..
Packit Service 97d2fb
done