1da0c48c4Sopenharmony_ci#! /usr/bin/env bash
2da0c48c4Sopenharmony_ci
3da0c48c4Sopenharmony_ciif [ "x$1" = "x-v" ]; then
4da0c48c4Sopenharmony_ci  verbose=yes
5da0c48c4Sopenharmony_cielse
6da0c48c4Sopenharmony_ci  verbose=no
7da0c48c4Sopenharmony_cifi
8da0c48c4Sopenharmony_ci
9da0c48c4Sopenharmony_cicd ..
10da0c48c4Sopenharmony_ci
11da0c48c4Sopenharmony_cifor d in lib libasm libdw libdwfl libebl libelf backends src debuginfod; do
12da0c48c4Sopenharmony_ci  tmp=$d-data
13da0c48c4Sopenharmony_ci  cd $d
14da0c48c4Sopenharmony_ci  unused=0
15da0c48c4Sopenharmony_ci  unused_files=
16da0c48c4Sopenharmony_ci  for f in *.gcno; do
17da0c48c4Sopenharmony_ci    base="$(basename $f .gcno)"
18da0c48c4Sopenharmony_ci    if [ -f "$base.c" ]; then fc="$base.c"; else fc="$base.cxx"; fi
19da0c48c4Sopenharmony_ci    gcda="$base.gcda"
20da0c48c4Sopenharmony_ci    if [ -f "$gcda" ]; then
21da0c48c4Sopenharmony_ci      gcov -n -a "$fc" |
22da0c48c4Sopenharmony_ci      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
23da0c48c4Sopenharmony_ci    else
24da0c48c4Sopenharmony_ci      unused=$(($unused + 1))
25da0c48c4Sopenharmony_ci      unused_files="$unused_files $fc"
26da0c48c4Sopenharmony_ci    fi
27da0c48c4Sopenharmony_ci  done
28da0c48c4Sopenharmony_ci  if [ -f $tmp ]; then
29da0c48c4Sopenharmony_ci    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
30da0c48c4Sopenharmony_ci    rm -f $tmp
31da0c48c4Sopenharmony_ci  else
32da0c48c4Sopenharmony_ci    printf "%-12s   0.00%% covered       unused files: %3d\n" "$d" $unused
33da0c48c4Sopenharmony_ci  fi
34da0c48c4Sopenharmony_ci  if [ $verbose = yes ]; then
35da0c48c4Sopenharmony_ci    for f in $unused_files; do
36da0c48c4Sopenharmony_ci      printf '%-42s%s\n' '' $f
37da0c48c4Sopenharmony_ci    done
38da0c48c4Sopenharmony_ci  fi
39da0c48c4Sopenharmony_ci  cd ..
40da0c48c4Sopenharmony_cidone
41