From 9d18629ef94f45d0561184e98364ff7fbdb27072 Mon Sep 17 00:00:00 2001
From: Olivier Dion <olivier.dion@savoirfairelinux.com>
Date: Thu, 13 May 2021 10:05:48 -0400
Subject: [PATCH] Makefile.am: Add XML/JSON coverage outputs

GitLab: https://git.jami.net/savoirfairelinux/ring-project/-/issues/1187
Signed-off-by: Olivier Dion <olivier.dion@savoirfairelinux.com>
Change-Id: Ia75aa07a4adfb4ef434db6191d9b73190e47e7e6
---
 Makefile.am | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 7798cd3711..1719af5a8d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -16,21 +16,25 @@ EXTRA_DIST = m4/libtool.m4 \
 			 contrib/bootstrap \
 			 contrib/src
 
-precoverage:
+coverage-html:
 	$(AM_V_at)lcov --no-external --capture --initial --directory $(top_builddir) --output-file dring-coverage-base.info
-
-coverage: precoverage check
 	$(AM_V_at)lcov --no-external --capture --directory $(top_builddir) --output-file dring-coverage-tests.info
 	$(AM_V_at)lcov --add-tracefile dring-coverage-base.info --add-tracefile dring-coverage-tests.info --output-file dring-coverage.info
-	$(AM_V_at)lcov --remove dring-coverage.info '/contrib/*' '/usr/include/*' '/bin/*' '/foo/bin/*' '/foo/contrib/*' --output-file dring-coverage-filtered.info
-	$(MKDIR_P) html-output
-	genhtml -o html-output dring-coverage-filtered.info
+	$(AM_V_at)lcov --remove dring-coverage.info "$(abs_top_builddir)/contrib/*"  --output-file dring-coverage-filtered.info
+	$(MKDIR_P) html-coverage-output
+	genhtml -o html-coverage-output dring-coverage-filtered.info
+
+coverage-%:
+	gcovr --filter src --filter test --$*-pretty --$* --output $*-coverage-output.$*
 
 coverage-clean:
 	$(AM_V_at)lcov --directory $(top_builddir) --zerocounters
-	$(AM_V_at)rm -rf dring-coverage-filtered.info
-	$(AM_V_at)rm -rf html-output
-	$(AM_V_at)find -name '*.gcda' -exec rm -f {} +
-	$(AM_V_at)find -name '*.gcno' -exec rm -f {} +
+	$(AM_V_at)rm -f *.info
+	$(AM_V_at)rm -rf *-coverage-output
+
+coverage-cleaner: coverage-clean
+	$(AM_V_at)find -name '*.gcda' -delete -or -name "*.gcno" -delete
+
+all-coverage: coverage-clean coverage-html coverage-xml coverage-json
 
-.PHONY: precoverage coverage coverage-clean
+.PHONY: all-coverage coverage-html coverage-json coverage-xml coverage-clean coverage-cleaner
-- 
GitLab