8000 GitHub - luehmann/kcov: Code coverage tool for compiled programs, Python and Bash which uses debugging information to collect and report data without special compilation options · GitHub
[go: up one dir, main page]

Skip to content
  • luehmannPublic
    forked from SimonKagstrom/kcov

    About

    Code coverage tool for compiled programs, Python and Bash which uses debugging information to collect and report data without special compilation options

    Resources

    Contributing

    Stars

    0 stars

    Watchers

    0 watching

    Forks

     
     

    Repository files navigation

    Coveralls coverage status Codecov coverage status Coverity Scan Build Status Docker Pulls

    PayPal Donate Github All Releases

    kcov

    Kcov is a FreeBSD/Linux/OSX code coverage tester for compiled languages, Python and Bash. Kcov was originally a fork of Bcov, but has since evolved to support a large feature set in addition to that of Bcov.

    Kcov, like Bcov, uses DWARF debugging information for compiled programs to make it possible to collect coverage information without special compiler switches.

    For a video introduction, look at this presentation from SwedenCPP

    Installing

    Refer to the INSTALL file for build instructions, or use our official Docker images:

    How to use it

    Basic usage is straight-forward:

    kcov /path/to/outdir executable [args for the executable]
    

    /path/to/outdir will contain lcov-style HTML output generated continuously while the application runs. Kcov will also write cobertura- compatible XML output and generic JSON coverage information and can easily be integrated in various CI systems.

    Filtering output

    It's often useful to filter output, since e.g., /usr/include is seldom of interest. This can be done in two ways:

    kcov --exclude-pattern=/usr/include --include-pattern=part/of/path,other/path \
          /path/to/outdir executable
    

    which will do a string-comparison and include everything which contains part/of/path or other/path but exclude everything that has the /usr/include string in it.

    kcov --include-path=/my/src/path /path/to/outdir executable
    kcov --exclude-path=/usr/include /path/to/outdir executable
    

    Does the same thing, but with proper path lookups.

    Merging multiple kcov runs

    Kcov can also merge the results of multiple earlier runs. To use this mode, call kcov with --merge, an output path and one or more paths to an earlier run, e.g.,

    kcov --merge /tmp/merged-output /tmp/kcov-output1 /tmp/kcov-output2
    kcov --merge /tmp/merged-output /tmp/kcov-output*    # With a wildcard
    

    Use from continuous integration systems

    kcov is easy to integrate with travis-ci together with coveralls.io or codecov.io. It can also be used from Jenkins, SonarQube and GitLab CI. Refer to

    • coveralls for details about travis-ci + coveralls, or
    • codecov for details about travis-ci + codecov
    • jenkins for details about how to integrate in Jenkins
    • sonarqube for how to use kcov and sonarqube together
    • gitlab for use with GitLab

    More information

    kcov is written by Simon Kagstrom simon.kagstrom@gmail.com and more information can be found at the web page

    About

    Code coverage tool for compiled programs, Python and Bash which uses debugging information to collect and report data without special compilation options

    Resources

    Contributing

    Stars

    0 stars

    Watchers

    0 watching

    Forks

    Releases

    Packages

    Contributors

    Languages

    0