From 7d8468e01fcb13240b069446d92e27704cab8ff9 Mon Sep 17 00:00:00 2001
From: Guillaume Pasero <guillaume.pasero@c-s.fr>
Date: Mon, 8 Jul 2019 16:49:55 +0200
Subject: [PATCH] CI: use a wrapper script to generate coverage report

---
 .gitlab-ci.yml     |  2 +-
 CI/otb_coverage.sh | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100755 CI/otb_coverage.sh

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1c0357e127..5206c98317 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -227,7 +227,7 @@ ubuntu-xdk-qa-code-coverage:
                ctest -V -S CI/main_qa.cmake
                      -DIMAGE_NAME:string=ubuntu-18.04-llvm-qa
                      -DQA:BOOL=ON
-    - gcovr -x -o build/coverage_report.xml -r . --gcov-executable="llvm-cov gcov" build
+    - ./CI/otb_coverage.sh
     - saxon-xslt -o build/ctest_report.xml
                  build/Testing/`head -n 1 build/Testing/TAG`/Test.xml
                  CI/ctest2junit.xsl
diff --git a/CI/otb_coverage.sh b/CI/otb_coverage.sh
new file mode 100755
index 0000000000..8c9a194949
--- /dev/null
+++ b/CI/otb_coverage.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+# usage : call CI/otb_coverage.sh from source dir
+OTB_DIR="$(dirname $0)/.."
+OTB_DIR="$(readlink -f $OTB_DIR)"
+
+if [ -z "$BUILD_DIR" ]; then
+BUILD_DIR=${OTB_DIR}/build
+fi
+
+cd $BUILD_DIR
+mkdir cov_filter
+
+echo Generating gcov reports in $BUILD_DIR ...
+find $BUILD_DIR -name "*.gcda" -exec llvm-cov gcov -p '{}' > /dev/null \; 
+find . -maxdepth 1 -regex '.*#Modules#[a-zA-Z0-9]+#[a-zA-Z0-9]+#\(include\|src\|app\)#.*\.gcov' -exec mv '{}' cov_filter \;
+rm *.gcov
+cd $OTB_DIR
+
+echo Filtered $(ls $BUILD_DIR/cov_filter | wc -l) gcov reports
+
+echo Generating $BUILD_DIR/coverage_report.xml ...
+
+gcovr -r $OTB_DIR -x -g --object-directory=$BUILD_DIR/cov_filter > $BUILD_DIR/coverage_report.xml
-- 
GitLab