gcov 命令在 github 管道上返回 -11,但在本地计算机上运行良好

问题描述 投票:0回答:1

我正在尝试为我的 C++ 项目设置代码覆盖率构建,但无法让它作为 github 工作流程管道工作。完全相同的脚本(我认为)可以在我的本地计算机上运行。这可能是只有其他人才能发现的明显问题之一(我对 github 管道还是新手),所以我很抱歉问这个问题。

我确实设置了一个虚拟存储库来显示问题。它位于这里。我在本地计算机上尝试的脚本是:

git clone [email protected]:yobeonline/gcov_test.git
cd gcov_test/
export CXXFLAGS="--coverage -fprofile-abs-path -g -O0"
export CFLAGS="--coverage -fprofile-abs-path -g -O0"
export LDFLAGS="--coverage"
cmake -S . -B build
cmake --build build
./build/main
mkdir build/html
gcovr --gcov-executable /usr/bin/gcov --print-summary -x build/coverage.xml --html-details build/html/index.html -r . build

我得到的输出正是我所期望的:

lines: 10.0% (2 out of 20)
functions: 33.3% (1 out of 3)
branches: 0.0% (0 out of 0)
calls: 0.0% (0 out of 0)

github pipeline 给出(详细)(参见here

(DEBUG) File system is case sensitive.
(DEBUG) Filters for --root: (1)
(DEBUG)  - re.compile('^/home/runner/work/gcov_test/gcov_test/')
(DEBUG) Filters for --filter: (1)
(DEBUG)  - DirectoryPrefixFilter(/home/runner/work/gcov_test/gcov_test/)
(DEBUG) Filters for --exclude: (0)
(DEBUG) Filters for --gcov-filter: (1)
(DEBUG)  - AlwaysMatchFilter()
(DEBUG) Filters for --gcov-exclude: (0)
(DEBUG) Filters for --gcov-exclude-directories: (0)
(INFO) Reading coverage data...
(DEBUG) Scanning directory build for gcda/gcno files...
(DEBUG) Found 4 files (and will process 3)
(DEBUG) Pool started with 1 threads
(DEBUG) Processing file: /home/runner/work/gcov_test/gcov_test/build/CMakeFiles/main.dir/main.cpp.gcda
(DEBUG) Running gcov: '/usr/bin/gcov --help' in '.'
(DEBUG) Running gcov: '/usr/bin/gcov --help-hidden' in '.'
(DEBUG) Running gcov: '/usr/bin/gcov /home/runner/work/gcov_test/gcov_test/build/CMakeFiles/main.dir/main.cpp.gcda --branch-counts --branch-probabilities --all-blocks --demangled-names --hash-filenames --object-directory build/CMakeFiles/main.dir' in '/home/runner/work/gcov_test/gcov_test'
(ERROR) Trouble processing '/home/runner/work/gcov_test/gcov_test/build/CMakeFiles/main.dir/main.cpp.gcda' with working directory '/home/runner/work/gcov_test/gcov_test'.
Stdout of gcov was >>None<< End of stdout
Stderr of gcov was >>None<< End of stderr
Current processed gcov file was None.
Use option --verbose to get extended information.
Traceback (most recent call last):
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/workers.py", line 80, in worker
    work(*args, **kwargs)
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/read.py", line 422, in process_datafile
    done = run_gcov_and_process_files(
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/read.py", line 661, in run_gcov_and_process_files
    out, err = gcov_cmd.run_with_args(
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/read.py", line 622, in run_with_args
    raise RuntimeError(
RuntimeError: GCOV returncode was -11 (exited by signal).
Traceback (most recent call last):
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/workers.py", line 80, in worker
    work(*args, **kwargs)
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/read.py", line 422, in process_datafile
    done = run_gcov_and_process_files(
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/read.py", line 661, in run_gcov_and_process_files
    out, err = gcov_cmd.run_with_args(
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/read.py", line 622, in run_with_args
    raise RuntimeError(
RuntimeError: GCOV returncode was -11 (exited by signal).
(ERROR) Error occurred while reading reports:
Traceback (most recent call last):
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/__main__.py", line 362, in main
    covdata: CovData = gcovr_formats.read_reports(options)
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/__init__.py", line 66, in read_reports
    covdata = GcovHandler(options).read_report()
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/__init__.py", line 202, in read_report
    return read_report(self.options)
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/read.py", line 79, in read_report
    with Workers(
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/workers.py", line 173, in __exit__
    self.wait()
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/workers.py", line 164, in wait
    raise self.exceptions[0][1]
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/read.py", line 86, in read_report
    contexts = pool.wait()
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/workers.py", line 164, in wait
    raise self.exceptions[0][1]
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/workers.py", line 80, in worker
    work(*args, **kwargs)
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/read.py", line 422, in process_datafile
    done = run_gcov_and_process_files(
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/read.py", line 661, in run_gcov_and_process_files
    out, err = gcov_cmd.run_with_args(
  File "/home/runner/.local/lib/python3.10/site-packages/gcovr/formats/gcov/read.py", line 622, in run_with_args
    raise RuntimeError(
RuntimeError: GCOV returncode was -11 (exited by signal).
c++ github cicd gcov
1个回答
0
投票

当本地运行事物和在操作中运行事物之间的行为时,有时是由于两个环境中的版本不同所致。

我会在工作流程中添加几行来显示所使用的 gcc 和 gcov 的版本,然后在本地尝试使用相同的版本(如果不同)。

© www.soinside.com 2019 - 2024. All rights reserved.