From 9f9b8f67247c681ed65368ca0f9035b49e907f5a Mon Sep 17 00:00:00 2001
From: Roman Tsisyk <roman@tsisyk.com>
Date: Mon, 27 Feb 2017 10:06:48 +0300
Subject: [PATCH] Travis CI: re-enable code coverage analysis

---
 .travis.mk  | 17 +++++++++++++++++
 .travis.yml |  6 ++++++
 2 files changed, 23 insertions(+)

diff --git a/.travis.mk b/.travis.mk
index 9a98991120..eb3d688f15 100644
--- a/.travis.mk
+++ b/.travis.mk
@@ -41,3 +41,20 @@ test_osx: deps_osx
 	ulimit -n
 	make -j8
 	cd test && python test-run.py unit/ app/ app-tap/ box/ box-tap/
+
+coverage: deps_linux
+	sudo apt-get -q -y install lcov
+	cmake . -DCMAKE_BUILD_TYPE=Debug -DENABLE_GCOV=ON
+	make -j8
+	# Enable --long tests for coverage
+	cd test && /usr/bin/python test-run.py --long
+	lcov --compat-libtool --directory src/ --capture --output-file coverage.info.tmp
+	lcov --compat-libtool --remove coverage.info.tmp 'tests/*' 'third_party/*' '/usr/*' \
+		--output-file coverage.info
+	lcov --list coverage.info
+	@if [ -n "$(COVERALLS_TOKEN)" ]; then \
+		echo "Exporting code coverage information to coveralls.io"; \
+		gem install coveralls-lcov; \
+		echo coveralls-lcov --repo-token [FILTERED] coverage.info; \
+		coveralls-lcov -v --repo-token $(COVERALLS_TOKEN) coverage.info; \
+	fi;
diff --git a/.travis.yml b/.travis.yml
index 8752ea1e4b..30e5548d3e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -24,6 +24,7 @@ env:
     matrix:
       - TARGET=source
       - TARGET=test
+      - TARGET=coverage
       - OS=el DIST=6
       - OS=el DIST=7
       - OS=fedora DIST=24
@@ -38,6 +39,7 @@ env:
 
 matrix:
     allow_failures:
+      - TARGET=coverage
 #      - env: OS=el DIST=6
 #      - env: OS=el DIST=7
 #      - env: OS=fedora DIST=24
@@ -74,6 +76,8 @@ matrix:
         compiler: clang
       - env: TARGET=source
         compiler: clang
+      - env: TARGET=coverage
+        compiler: clang
       - env: OS=el DIST=6
         os: osx
       - env: OS=el DIST=7
@@ -98,6 +102,8 @@ matrix:
         os: osx
       - env: TARGET=source
         os: osx
+      - env: TARGET=coverage
+        os: osx
       - os: osx
         compiler: gcc
 
-- 
GitLab