Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4e9dcc8
Updating coveralls setup
oshadura Oct 29, 2017
9ccdf87
Updating coveralls setup with gem version
oshadura Oct 29, 2017
f2ac033
Reducing Travis output
oshadura Oct 29, 2017
fefbc2d
Tunning gcov variables setup
oshadura Oct 29, 2017
454ff47
Fixing typos
oshadura Oct 30, 2017
24a6730
Changing linker flags
oshadura Oct 30, 2017
d5d3cf4
Changing files to be submitted for coverall reports
oshadura Oct 30, 2017
5af810e
Adding extra .gcno files from nightlies ROOT
oshadura Nov 1, 2017
66024d2
Fixing names after Travis update
oshadura Nov 1, 2017
f4a1baf
Forgoten unpacking procedure for .gcno files
oshadura Nov 1, 2017
ee05679
Adding extra fixes
oshadura Nov 2, 2017
23167e9
Switching to ROOT externals
oshadura Nov 2, 2017
975db3b
Fixing typos
oshadura Nov 2, 2017
9f91a54
Enabling output back for LCOV
oshadura Nov 2, 2017
b32e8e4
Ignoring errors from LCOV
oshadura Nov 2, 2017
2d23a11
Updating lcov setup to cleanup not used files from coverage reports
oshadura Nov 8, 2017
bab516f
Fixing ROOT installation HEAD hash
oshadura Nov 8, 2017
41515fd
Trying to change ROOT source path to freshly cloned ROOT repo
oshadura Nov 8, 2017
8267935
Changing install and build path from Ubuntu nodes for coveralls submi…
oshadura Nov 8, 2017
8df9edf
Retesting older lcov version (1.12)
oshadura Nov 8, 2017
5df59e3
Fixing typo with the path
oshadura Nov 8, 2017
d1ad984
Extending set of removed files from lcov reports
oshadura Nov 9, 2017
bac852f
VecCore seems to be not installed into ROOT sources, taking out from …
oshadura Nov 9, 2017
b0f0b6c
Updating LCOV generation according documentation: only one geninfo_ad…
oshadura Nov 9, 2017
de35939
Fixes to lcov reports generated part
oshadura Nov 15, 2017
d068e3d
Fixing errors with output of lcov
oshadura Nov 15, 2017
50b8e4e
Changing source encoding for coveralls-lcov, updating set of files to…
oshadura Nov 16, 2017
1df7fc8
Adding travis_wait_log for complex lcov case
oshadura Jan 5, 2018
aab71b7
Changing LANG in a list of locale definition files
oshadura Jan 9, 2018
0cc22d3
Adding travis_wait_log for coveralls-lcov command
oshadura Jan 10, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 93 additions & 17 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ matrix:
# queue faster while not blocking Linux builds from occuring.

# Coverage
- env: CXX=g++ CC=gcc BUILD_TYPE=Debug EXTRA_OPTS="-DCoverage=On"
- env: CXX=g++ CC=gcc BUILD_TYPE=Debug EXTRA_OPTS="-Dcoverage=ON"
compiler: gcc
addons:
apt:
Expand Down Expand Up @@ -112,18 +112,24 @@ before_install:
- sudo mkdir -p /cvmfs/sft-nightlies.cern.ch
- sudo mount -t cvmfs sft-nightlies.cern.ch /cvmfs/sft-nightlies.cern.ch
- ls /cvmfs/sft-nightlies.cern.ch
- sudo mkdir -p /cvmfs/sft.cern.ch
- sudo mount -t cvmfs sft.cern.ch /cvmfs/sft.cern.ch
- ls /cvmfs/sft.cern.ch
# Install coveralls
- sudo gem install coveralls-lcov -v 1.5.1
- sudo gem install lcoveralls
# Install GSL 2.0
# FIXME: We should have it somewhere in cvmfs.
- sudo add-apt-repository -y ppa:tsvetko.tsvetkov/trusty-backports && sudo apt-get update
- sudo apt-get install libgsl2
#- sudo add-apt-repository -y ppa:tsvetko.tsvetkov/trusty-backports && sudo apt-get update
#- sudo apt-get install libgsl2
- source /cvmfs/sft.cern.ch/lcg/views/LCG_rootext20170929/x86_64-ubuntu1404-gcc48-opt/setup.sh
- sudo locale-gen en_US.UTF-8

install:
- |
pwd
HOME_FOLDER=$(pwd)/../
export GCOV_PREFIX_STRIP=0
export GCOV_PREFIX=`pwd`
if [ "${EXTRA_OPTS}" == "-DCoverage=On" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
if [ "${EXTRA_OPTS}" == "-Dcoverage=ON" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
PATH=~/.local/bin:${PATH};
pip install --user --upgrade pip;
pip install --user cpp-coveralls;
Expand All @@ -143,29 +149,99 @@ script:
fi
d=$(date +%a -d "$d - 1 day")
done;
- echo "Initializing ROOT $ROOT_THISROOT"
- source $ROOT_THISROOT
- |
cd root
echo "Initializing ROOT $ROOT_THISROOT"
source $ROOT_THISROOT
which root
cd $HOME_FOLDER
if [ "${EXTRA_OPTS}" == "-Dcoverage=ON" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
echo "Downloading Latest ROOT .gcno binaries."
cd $HOME_FOLDER
mkdir $HOME_FOLDER/rootgcno
d=$(date +%a)
for i in `seq 1 7`; do
ROOTGCNO_TAR=http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/nightlies/rootcov/$d/rootgcno.tgz
if curl -s -f --head $ROOTGCNO_TAR ; then
break;
fi
d=$(date +%a -d "$d - 1 day")
done;
echo "Downloading and untaring $ROOTGCNO_TAR" && echo -en "travis_fold:start:untar.ROOTGCNO"
wget $ROOTGCNO_TAR
tar zxvf rootgcno.tgz -C $HOME_FOLDER/rootgcno > untar-details.log
mkdir $HOME_FOLDER/lcov && cd $HOME_FOLDER/lcov
wget https://github.com/linux-test-project/lcov/archive/v1.12.zip
unzip v1.12.zip
LCOV="`pwd`/lcov-1.12/bin/lcov --gcov-tool gcov"
mkdir -p $HOME_FOLDER/coveralls
cp -av $HOME_FOLDER/rootgcno/rootgcno/* $HOME_FOLDER/coveralls/ &> copy_output.log
echo "Cloning ROOT sources"
git clone https://github.com/root-project/root.git $HOME_FOLDER/rootsource
mkdir $HOME_FOLDER/travis-fix
git clone https://github.com/slodki/travis-wait-log.git $HOME_FOLDER/travis-fix
fi
- mkdir $HOME_FOLDER/build
- cd $HOME_FOLDER/build
- export GCOV_PREFIX=`pwd`
- export GCOV_PREFIX_STRIP=0
- cmake -DCMAKE_C_COMPILER=${CC} -DCMAKE_CXX_COMPILER=${CXX} \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_CXX_FLAGS="${EXTRA_FLAGS}" \
${EXTRA_OPTS} ../rootbench
- cmake --build .
- |
if [ "${EXTRA_OPTS}" == "-Dcoverage=ON" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
touch $HOME_FOLDER/build/coverage.init_part1
echo "LCOV init part 1 (due complex setup of CI slaves for ROOT builds)"
find $HOME_FOLDER/build -name "*.gcno" -exec cp "{}" $HOME_FOLDER/coveralls/ \;
export LCOV_PATH_ROOTSYS="\"geninfo_adjust_src_path=/mnt/build/workspace/lcg_ext_rootcov/BUILDTYPE/Release/COMPILER/native/LABEL/ubuntu14/build/projects/ROOT-HEAD/src/ROOT-HEAD-build/=> `echo $ROOTSYS/`\""
$HOME_FOLDER/travis-fix/travis_wait_log 5 $LCOV -c -i -d $HOME_FOLDER/coveralls/ --no-markers --quiet --base-directory `pwd` \
--rc $LCOV_PATH_ROOTSYS \
--output-file $HOME_FOLDER/build/coverage.init_part1
fi
- |
if [ "${EXTRA_OPTS}" == "-Dcoverage=ON" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
touch $HOME_FOLDER/build/coverage.init_part2
echo "LCOV init part 2 (due complex setup of CI slaves for ROOT builds)"
export LCOV_PATH_ROOT="\"geninfo_adjust_src_path=/mnt/build/workspace/lcg_ext_rootcov/BUILDTYPE/Release/COMPILER/native/LABEL/ubuntu14/build/projects/ROOT-HEAD/src/ROOT/HEAD/=> `echo $HOME_FOLDER/rootsource/`\""
$HOME_FOLDER/travis-fix/travis_wait_log 5 $LCOV -c -i -d $HOME_FOLDER/coveralls/ --no-markers --quiet --base-directory `pwd` \
--rc $LCOV_PATH_ROOT \
--output-file $HOME_FOLDER/build/coverage.init_part2
fi
- ctest -L short || true
- #find $HOME_FOLDER

- |
if [ "${EXTRA_OPTS}" == "-Dcoverage=ON" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
find $HOME_FOLDER/build -name "*.gcda" -exec cp "{}" $HOME_FOLDER/coveralls/ \;
touch $HOME_FOLDER/build/coverage.info_part1
echo "LCOV info part 1 (due complex setup of CI slaves for ROOT builds)"
export LCOV_PATH_ROOTSYS="\"geninfo_adjust_src_path=/mnt/build/workspace/lcg_ext_rootcov/BUILDTYPE/Release/COMPILER/native/LABEL/ubuntu14/build/projects/ROOT-HEAD/src/ROOT-HEAD-build/=> `echo $ROOTSYS/`\""
$HOME_FOLDER/travis-fix/travis_wait_log 5 $LCOV -c -d $HOME_FOLDER/coveralls/ --no-markers --quiet --base-directory `pwd` --ignore-errors graph \
--rc $LCOV_PATH_ROOTSYS \
--output-file $HOME_FOLDER/build/coverage.info_part1
fi
- |
if [ "${EXTRA_OPTS}" == "-Dcoverage=ON" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
echo "LCOV info part 2 (due complex setup of CI slaves for ROOT builds)"
export LCOV_PATH_ROOT="\"geninfo_adjust_src_path=/mnt/build/workspace/lcg_ext_rootcov/BUILDTYPE/Release/COMPILER/native/LABEL/ubuntu14/build/projects/ROOT-HEAD/src/ROOT/HEAD/=> `echo $HOME_FOLDER/rootsource/`\""
touch $HOME_FOLDER/build/coverage.info_part2
$HOME_FOLDER/travis-fix/travis_wait_log 5 $LCOV -c -d $HOME_FOLDER/coveralls/ --no-markers --quiet --base-directory `pwd` --ignore-errors graph \
--rc $LCOV_PATH_ROOT \
--output-file $HOME_FOLDER/build/coverage.info_part2
fi
after_success:

- |
# FIXME: Figure out the right coveralls arguments to send the reports.
if [ "${EXTRA_OPTS}" == "-DCoverage=On" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
coveralls --verbose --gcov-options '\-lp' --root $HOME_FOLDER --build-root $HOME_FOLDER;
if [ "${EXTRA_OPTS}" == "-Dcoverage=ON" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
echo "LCOV combining all parts"
$LCOV -a $HOME_FOLDER/build/coverage.init_part1 -a $HOME_FOLDER/build/coverage.init_part2 -a $HOME_FOLDER/build/coverage.info_part1 -a $HOME_FOLDER/build/coverage.info_part2 -o $HOME_FOLDER/build/coverage.total &> log
$LCOV -r $HOME_FOLDER/build/coverage.total \*/usr* \*/*-prefix/* \*/G__*.cxx \*/install/* \*/qtgsi/* \*/Pythia8/* \*/TDav* \*/CMake*.cpp \*/*.gen \*/*.inc \*/*.def \*/VecCore/* \*/Roo1* \*/Roo2* \*/interpreter/* -o $HOME_FOLDER/build/coverage.total &> log
$LCOV -r $HOME_FOLDER/build/coverage.total \*/build/workspace/lcg_ext_rootcov/* -o $HOME_FOLDER/build/coverage.total &> log
$LCOV -r $HOME_FOLDER/build/coverage.total \*/mnt/vdb/lsf/workspace/lcg_ext_rootcov/* -o $HOME_FOLDER/build/coverage.total &> log
$LCOV -r $HOME_FOLDER/build/coverage.total \*/rootbench/root/* -o $HOME_FOLDER/build/coverage.total &> log
$LCOV -r $HOME_FOLDER/build/coverage.total \*/graf3d/eve/src/TEveTrans.cxx -o $HOME_FOLDER/build/coverage.total &> log
$LCOV -r $HOME_FOLDER/build/coverage.total \*/interpreter/cling/test/Pragmas/P* -o $HOME_FOLDER/build/coverage.total &> log
#perl -p -i -e "s|$ROOTSYS||g" coverage.total
#perl -p -i -e "s|$HOME_folder/rootsource||g" coverage.total
cd ../rootsource
LINES=0 $HOME_FOLDER/travis-fix/travis_wait_log 1 coveralls-lcov -v $HOME_FOLDER/build/coverage.total
fi

on_failure:
-|
echo "Showing current directory contents"
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ include(RootBenchOptions)

#---Enable test coverage -----------------------------------------------------------------------
if(coverage)
set(GCC_COVERAGE_COMPILE_FLAGS "-fprofile-arcs -ftest-coverage -fno-inline -fno-inline-small-functions -fno-default-inline")
set(GCC_COVERAGE_LINK_FLAGS "-fprofile-arcs")
set(GCC_COVERAGE_COMPILE_FLAGS "-g -fprofile-arcs -ftest-coverage")
set(GCC_COVERAGE_LINK_FLAGS "--coverage")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHAREDLINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}")
Expand Down