Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • CMake CMake
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 4,103
    • Issues 4,103
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 19
    • Merge requests 19
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • CMakeCMake
  • CMakeCMake
  • Issues
  • #22102
Closed
Open
Issue created Apr 23, 2021 by Rolf Eike Beer@DerDakonDeveloper

"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.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking