language: cpp
compiler:
- gcc
#- clang
before_install:
- uname -a
- pwd
- export
- sudo pip install codecov
- sudo pip install --user cpp-coveralls
- sudo apt-add-repository -y ppa:ubuntu-toolchain-r/test
- sudo apt-get install software-properties-common
#- sudo add-apt-repository -y ppa:george-edison55/cmake-3.x
- sudo apt-add-repository -y ppa:ondrej/php5-5.6 # libjson0-dev 0.11
- sudo apt-get update -qq
install:
- sudo apt-get -y --force-yes install -qq build-essential g++-4.9 gcc-4.9 libpcap-dev valgrind libjson0-dev
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
- sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-4.9 20
- sudo update-alternatives --config gcc
- sudo update-alternatives --config g++
- sudo update-alternatives --config gcov
- sudo apt-get install cmake
- wget -O - --no-check-certificate https://cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz | tar xz && sudo cp -fR cmake-3.3.2-Linux-x86_64/* /usr
- wget -q https://googlemock.googlecode.com/files/gmock-1.7.0.zip && unzip gmock-1.7.0.zip -d /tmp
# install latest LCOV
- wget http://ftp.de.debian.org/debian/pool/main/l/lcov/lcov_1.11.orig.tar.gz
- tar xf lcov_1.11.orig.tar.gz
- sudo make -C lcov-1.11/ install
- gem install coveralls-lcov
before_script:
- cmake --version
- gcov --version
- if [ $CXX == 'g++' ];
then
export CXX="g++-4.9";
export CC="gcc-4.9";
export CXX_FLAGS="-g -O0 -fprofile-arcs -ftest-coverage -fPIC";
export C_FLAGS="-g -O0 -fprofile-arcs -ftest-coverage";
fi
- lcov --directory . --zerocounters
script:
- mkdir debug && cd debug
- cmake -DCMAKE_BUILD_TYPE=DEBUG -DGMOCK_SOURCE_DIR=/tmp/gmock-1.7.0 -D"CMAKE_CXX_FLAGS=$CXX_FLAGS" -D"CMAKE_C_FLAGS=$C_FLAGS" -DINCLUDE_COVERAGE_INFO="true" ../
- sudo make install
- make test
#- cpack -G DEB
after_success:
- lcov --compat-libtool --directory . --capture --output-file coverage.info # capture coverage info
- lcov --remove coverage.info 'tests/*' '/usr/*' '*gmock*' --output-file coverage.info # filter out system and test code
#- lcov --list coverage.info # debug before upload
- coveralls-lcov coverage.info