Merge branch 'coverage'

This commit is contained in:
Alexey Sokolov
2017-06-23 23:43:04 +01:00
4 changed files with 26 additions and 6 deletions
+4 -1
View File
@@ -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
View File
@@ -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
-3
View File
@@ -112,9 +112,6 @@ class CModPerl : public CModule {
return false;
}
PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
PSTART;
PCALL("ZNC::Core::Init");
PEND;
return true;
}
+15
View File
@@ -18,6 +18,21 @@ use 5.010;
use strict;
use warnings;
use ZNC;
# From http://search.cpan.org/dist/perl5lib/lib/perl5lib.pm
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';