"ctest -D *Coverage" may end up scanning the entire filesystem
Someone set up a project, and my job was to get coverage working. Running the tests and everything was fine, and the gcov data files were also present.
But when I ran ctest -D ExternalCoverage
I only saw filesystem I/O, but not output.
It turns out that the project was doing enable_testing()
, but without include(CTest)
. The result is that no DartConfiguration.tcl
exists in the build directory. When running ctest it will not know what it's binary dir is.
The problem then comes into play when cmCTestCoverageHandler::HandleTracePyCoverage() is called: this scans the binary directory for coverage files. Since no binary directory is known it scans /
. I guess all of this doesn't make any sense and there should be a stop rather early that just exits with error if no binary directory is known.