mirror of
https://github.com/znc/znc.git
synced 2026-08-07 09:22:55 +02:00
Travis: Also count code coverage of modperl
This commit is contained in:
+4
-1
@@ -4,9 +4,12 @@ ignore:
|
||||
- /modules/modp*/*.cpp
|
||||
- /modules/modp*/swig*
|
||||
- /modules/modpython/znc_core.py
|
||||
- /modules/modperl/ZNC.pm
|
||||
fixes:
|
||||
- "usr/local/lib/znc/::modules/"
|
||||
codecov:
|
||||
ci:
|
||||
# Cygwin fails integration test with --coverage enabled, I don't know why
|
||||
- !appveyor
|
||||
# FreeBSD doesn't support coverage yet (can't find libprofile_rt.a)
|
||||
# FreeBSD doesn't support C++ coverage yet (can't find libprofile_rt.a)
|
||||
- !jenkins.znc.in
|
||||
|
||||
+7
-2
@@ -103,6 +103,9 @@ install:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$BUILD_WITH" == "cmake" ]]; then sudo apt-get install -y cmake; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then source ~/virtualenv/python3.5/bin/activate; fi # for pip3
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export PKG_CONFIG_PATH="/opt/python/3.5.2/lib/pkgconfig:$PKG_CONFIG_PATH" LD_LIBRARY_PATH="/opt/python/3.5.2/lib:$LD_LIBRARY_PATH"; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib); fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cpanm --notest Devel::Cover::Report::Clover; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export ZNC_MODPERL_COVERAGE=1; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sw_vers; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sysctl -a | grep cpu; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sysctl -a | grep mem; fi
|
||||
@@ -113,9 +116,9 @@ install:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" && "$BUILD_WITH" == "cmake" ]]; then brew outdated cmake || brew upgrade cmake; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew info --json=v1 --installed | jq .; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PKG_CONFIG_PATH="$(brew --prefix qt5)/lib/pkgconfig:$PKG_CONFIG_PATH"; fi
|
||||
- "echo pkg-config path: [$PKG_CONFIG_PATH]"
|
||||
- pip3 install coverage
|
||||
- export ZNC_MODPYTHON_COVERAGE=1
|
||||
- "echo pkg-config path: [$PKG_CONFIG_PATH]"
|
||||
script:
|
||||
- if [[ "$BUILD_TYPE" == "tarball" ]]; then ./make-tarball.sh --nightly znc-git-2015-01-16 /tmp/znc-tarball.tar.gz; fi
|
||||
- if [[ "$BUILD_TYPE" == "tarball" ]]; then cd /tmp; tar xvf znc-tarball.tar.gz; fi
|
||||
@@ -128,9 +131,11 @@ script:
|
||||
- make VERBOSE=1
|
||||
- env LLVM_PROFILE_FILE="$PWD/unittest.profraw" make VERBOSE=1 $UNITTEST
|
||||
- sudo make install
|
||||
- env LLVM_PROFILE_FILE="$PWD/inttest.profraw" make VERBOSE=1 $INTTEST
|
||||
# TODO: use DEVEL_COVER_OPTIONS for https://metacpan.org/pod/Devel::Cover
|
||||
- env LLVM_PROFILE_FILE="$PWD/inttest.profraw" ZNC_MODPERL_COVERAGE_OPTS="-db,$PWD/cover_db" make VERBOSE=1 $INTTEST
|
||||
- /usr/local/bin/znc --version
|
||||
after_success:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ~/perl5/bin/cover --no-gcov --report=clover; fi
|
||||
- |
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" && "$COVERAGE" == "llvm" ]]; then
|
||||
xcrun llvm-profdata merge unittest.profraw -o unittest.profdata
|
||||
|
||||
@@ -23,6 +23,16 @@ use ZNC;
|
||||
use Config;
|
||||
use lib map { /(.*)/ } split /$Config{path_sep}/ => $ENV{PERL5LIB};
|
||||
|
||||
BEGIN {
|
||||
if ($ENV{ZNC_MODPERL_COVERAGE}) {
|
||||
# Can't use DEVEL_COVER_OPTIONS because perl thinks it's tainted:
|
||||
# https://github.com/pjcj/Devel--Cover/issues/187
|
||||
my ($opts) = $ENV{ZNC_MODPERL_COVERAGE_OPTS} =~ /(.+)/;
|
||||
require Devel::Cover;
|
||||
Devel::Cover->import(split ',', $opts);
|
||||
}
|
||||
}
|
||||
|
||||
use IO::File;
|
||||
use feature 'switch', 'say';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user