diff options
author | Johan Dahlin <johan@src.gnome.org> | 2008-08-09 13:17:00 +0000 |
---|---|---|
committer | Johan Dahlin <johan@src.gnome.org> | 2008-08-09 13:17:00 +0000 |
commit | 55ca12bd3905d633c871c1b73b97968c55c88d0f (patch) | |
tree | 16b3ba7e72e782f0e4fc7fe61d7eb857786c5c3f /gcov.mak | |
parent | e48a8b65b61dade42f23a3549ceb1b08afbe227b (diff) | |
download | gobject-introspection-55ca12bd3905d633c871c1b73b97968c55c88d0f.tar.gz |
Clean up gcov integration a bit
svn path=/trunk/; revision=342
Diffstat (limited to 'gcov.mak')
-rw-r--r-- | gcov.mak | 48 |
1 files changed, 36 insertions, 12 deletions
@@ -1,21 +1,45 @@ +# -*- Mode: makefile -*- if GI_GCOV_ENABLED -.PHONEY: coverage-report +clean-gcov: + find -name "*.gcda" -o -name "*.gcov" -delete + +clean-gcno: + find -name "*.gcno" -delete + +gcov-all: + @for dir in $(GCOV_DIRS); do \ + cd $(abs_srcdir)/$$dir && \ + for file in *.c; do \ + gcov -f -p -o `find $(abs_builddir)/$$dir -newer $$file -name "*-$${file/.c/.gcda}" -print0 | sed -e 's/\.gcda/\.o/'` $$file > /dev/null; \ + done \ + done + +coverage-report.txt: clean clean-gcov all check gcov-all + @rm -f $(top_builddir)/coverage-report.txt + @echo -e "=== Coverage Report ===\n" >> $(top_builddir)/coverage-report.txt + @for dir in $(GCOV_DIRS); do \ + echo "Module '$$dir':" >> $(top_builddir)/coverage-report.txt; \ + $(MAKE) -C $$dir coverage-report; \ + done + coverage-report: @total_covered=0; total_lines=0; \ for file in $(GCOVSOURCES); do \ - if test -f $$file.gcov; then \ - covered=`grep -e '[0-9]\+:' $$file.gcov | wc -l` ; \ - uncovered=`grep '#####:' $$file.gcov | wc -l`; \ - lines=$$(($$covered + $$uncovered)); \ - total_covered=$$((total_covered + covered)); \ - total_lines=$$((total_lines + lines)); \ - echo -n " $$file: $$covered / $$lines"; \ - echo " ($$((($$covered * 100) / $$lines))%)"; \ - fi \ + if test -f $$file.gcov; then \ + covered=`grep -e '[0-9]\+:' $$file.gcov | wc -l` ; \ + uncovered=`grep '#####:' $$file.gcov | wc -l`; \ + lines=$$(($$covered + $$uncovered)); \ + total_covered=$$((total_covered + covered)); \ + total_lines=$$((total_lines + lines)); \ + echo -n " $$file: $$covered / $$lines"; \ + echo " ($$((($$covered * 100) / $$lines))%)"; \ + fi \ done >> $(top_builddir)/coverage-report.txt; \ echo -e " Total coverage:"\ - "$$((($$total_covered * 100) / $$total_lines))%\n" \ - >> $(top_builddir)/coverage-report.txt + "$$((($$total_covered * 100) / $$total_lines))%\n" \ + >> $(top_builddir)/coverage-report.txt + +.PHONEY: coverage-report gcov-all coverage-report.txt endif |