Reputation: 795
I'm using a CI workflow with Jenkins.
A bat file is generated at the end of every compilation, which looks like this:
OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\tests --excluded_sources D:\Jenkins\workspace\bfsearch\bin --export_type=binary:coverage_results_bfs_add_test_TESTTARGET.exe.cov -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_add_test_TESTTARGET.exe
OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\tests --excluded_sources D:\Jenkins\workspace\bfsearch\bin --export_type=binary:coverage_results_bfs_cluster_around_center_tests_TESTTARGET.exe.cov -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_cluster_around_center_tests_TESTTARGET.exe
OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\tests --excluded_sources D:\Jenkins\workspace\bfsearch\bin --export_type=binary:coverage_results_bfs_multiple_cluster_centers_test_TESTTARGET.exe.cov -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_multiple_cluster_centers_test_TESTTARGET.exe
OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\tests --excluded_sources D:\Jenkins\workspace\bfsearch\bin --input_coverage=coverage_results_bfs_add_test_TESTTARGET.exe.cov --input_coverage=coverage_results_bfs_cluster_around_center_tests_TESTTARGET.exe.cov --input_coverage=coverage_results_bfs_multiple_cluster_centers_test_TESTTARGET.exe.cov --export_type=cobertura:coverage_results.xml -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_radius_test_TESTTARGET.exe
My test runs always fail due to an unambiguous bug in opencppcoverage: Error: HandleInformation.cpp:85 Cannot find path for the handle.The handle is invalid.
D:\Jenkins\workspace\bfsearch>./runtests.bat
D:\Jenkins\workspace\bfsearch>OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\\tests --excluded_sources D:\Jenkins\workspace\bfsearch\\bin --export_type=binary:coverage_results_bfs_add_test_TESTTARGET.exe.cov -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_add_test_TESTTARGET.exe
Error: HandleInformation.cpp:85 Cannot find path for the handle.The handle is invalid.
D:\Jenkins\workspace\bfsearch>OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\\tests --excluded_sources D:\Jenkins\workspace\bfsearch\\bin --export_type=binary:coverage_results_bfs_cluster_around_center_tests_TESTTARGET.exe.cov -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_cluster_around_center_tests_TESTTARGET.exe
Error: HandleInformation.cpp:85 Cannot find path for the handle.The handle is invalid.
D:\Jenkins\workspace\bfsearch>OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\\tests --excluded_sources D:\Jenkins\workspace\bfsearch\\bin --export_type=binary:coverage_results_bfs_multiple_cluster_centers_test_TESTTARGET.exe.cov -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_multiple_cluster_centers_test_TESTTARGET.exe
Error: HandleInformation.cpp:85 Cannot find path for the handle.The handle is invalid.
D:\Jenkins\workspace\bfsearch>OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\\tests --excluded_sources D:\Jenkins\workspace\bfsearch\\bin --input_coverage=coverage_results_bfs_add_test_TESTTARGET.exe.cov --input_coverage=coverage_results_bfs_cluster_around_center_tests_TESTTARGET.exe.cov --input_coverage=coverage_results_bfs_multiple_cluster_centers_test_TESTTARGET.exe.cov --export_type=cobertura:coverage_results.xml -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_radius_test_TESTTARGET.exe
Argument of input_coverage <coverage_results_bfs_add_test_TESTTARGET.exe.cov> does not exist.
OpenCppCoverage Version: 0.9.5.2
Usage: [options] -- program_to_run optional_arguments:
Command line only:
-v [ --verbose ] Verbose mode.
-q [ --quiet ] Quiet mode.
-h [ --help ] Show help message.
--config_file arg Filename of a configuration file.
Command line and configuration file:
--modules arg (=*) The pattern that module's paths should
match. Can have multiple occurrences.
--excluded_modules arg The pattern that module's paths should NOT
match. Can have multiple occurrences.
--sources arg (=*) The pattern that source's paths should
match. Can have multiple occurrences.
--excluded_sources arg The pattern that source's paths should NOT
match. Can have multiple occurrences.
--input_coverage arg A output path of export_type=binary. This
coverage data will be merged with the
current one. Can have multiple occurrences.
--export_type arg (=html) Format: <exportType>:<outputPath>.
<exportType> can be: binary, cobertura, html
<outputPath> (optional) output file or
directory for the export.
Example: html:MyFolder\MySubFolder
This flag can have multiple occurrences.
--working_dir arg The program working directory.
--cover_children Enable code coverage for children processes.
--no_aggregate_by_file Do not aggregate coverage for same file
path.
--unified_diff arg Format: <unifiedDiffPath>?<rootFolder>
<unifiedDiffPath> path of the unified diff
file. Git users can use git diff output.
<rootFolder> (optional) root folder for
paths in the diff file.
See documentation for limitations.
--continue_after_cpp_exception Try to continue after throwing a C++
exception.
Build step 'Execute Windows batch command' marked build as failure
Skipping Cobertura coverage report as build was not UNSTABLE or better ...
Can you help me with this? The same script was working a month ago, now it doesn't. Is there something related to windows updates ? I've also looked at the source code, there's no such code at HandleInformation.cpp:85 that can cause an error like that. Is source code updated in the repository?
I've installed the latest version, the problem persists.
Here's a quick project I've created to test the issue.
https://github.com/onatbas/OpenCppCoverageTestFail
I've included the verbose output.
I'm running Windws 7 x64. I don't have any antivirus software.
Thanks
Upvotes: 2
Views: 3871
Reputation: 13
Based on https://github.com/OpenCppCoverage/OpenCppCoverage/issues/84, it should be fixed in OpenCppCoverage 0.9.8.0.
Upvotes: 1
Reputation: 498
Option one: You have to specify the full path for the .cov files argument for "--input_coverage". So your last line should look like this:
--input_coverage=D:\Jenkins\workspace\bfsearch\bin\coverage_results_bfs_add_test_TESTTARGET.exe.cov
--input_coverage=D:\Jenkins\workspace\bfsearch\bin\coverage_results_bfs_cluster_around_center_tests_TESTTARGET.exe.cov
--input_coverage=D:\Jenkins\workspace\bfsearch\bin\coverage_results_bfs_multiple_cluster_centers_test_TESTTARGET.exe.cov
Option two: at the top of your .bat file have cd to the bin file.
cd D:\Jenkins\workspace\bfsearch\bin
Upvotes: 0
Reputation: 11
For me I was able to get around this issue by using a command prompt with that was run as Admin.
Upvotes: 0