lcov перестал работать в travis-ci

Я пытаюсь создать свой репозиторий мерзавца на travis-ci, и я думаю, что сталкиваюсь с конфликтом между gcc версией и lcov. Мой .travis.yml похож на это:

sudo: false

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - g++-4.8
      - lcov

script:
  - export CXX="g++-4.8"
  - export CC="gcc-4.8"
  - export GCOV="gcov-4.8"
  - make check

after_success:
  - lcov --capture --directory …;

и ошибка похожа на это:

make check;
-- The CXX compiler identification is GNU 4.8.1
-- The C compiler identification is GNU 4.8.1
Building coverage information.
Found gcov version: 4.6.3
Processing gtest.dir/gtest/gmock_main.cc.gcda
geninfo: ERROR: /…/gmock_main.cc.gcno: reached unexpected end of file Reading tracefile coverage.info
lcov: ERROR: no valid records found in tracefile coverage.info

Я предполагаю, что это - проблема, что я использую gcov-4.6.3 против файлов, сгенерированных g ++-4.8, но как я могу указать который версия gcov использовать? (Я не могу понизить g ++),

2
задан 30 November 2016 в 01:53

1 ответ

Я закончил тем, что создал lcov-1.11 сам и заменил вызов к lcov с ${TRAVIS_BUILD_DIR}/lcov-1.11/bin/lcov --gcov-tool /usr/bin/gcov-4.8

, Вот полная фиксация:

env:
  global:
    - BUILD_COVERAGE=${TRAVIS_BUILD_DIR}/coverage

after_success:
  # If GCC: compute code coverage and export it to coveralls
  - if [ "$CC" = "gcc-4.8" ];
    then
      cd ${TRAVIS_BUILD_DIR};
      wget http://downloads.sourceforge.net/ltp/lcov-1.11.tar.gz;
      tar xvfz lcov-1.11.tar.gz;
      make -C lcov-1.11;
      mkdir $BUILD_COVERAGE;
      cd $BUILD_COVERAGE;
      cmake ${TRAVIS_BUILD_DIR} -DBUILD_COVERAGE=ON;
      make check;
      ${TRAVIS_BUILD_DIR}/lcov-1.11/bin/lcov --gcov-tool /usr/bin/gcov-4.8  --capture --directory …;
    fi
0
ответ дан 2 December 2019 в 09:41

Другие вопросы по тегам:

Похожие вопросы: