{"id":13566434,"url":"https://github.com/taiki-e/cargo-llvm-cov","last_synced_at":"2026-02-05T18:02:52.340Z","repository":{"id":37425951,"uuid":"330211847","full_name":"taiki-e/cargo-llvm-cov","owner":"taiki-e","description":"Cargo subcommand to easily use LLVM source-based code coverage (-C instrument-coverage).","archived":false,"fork":false,"pushed_at":"2026-02-04T17:03:43.000Z","size":1425,"stargazers_count":1272,"open_issues_count":48,"forks_count":75,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-02-05T00:13:24.799Z","etag":null,"topics":["cargo","cli","coverage","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taiki-e.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"taiki-e"}},"created_at":"2021-01-16T16:59:06.000Z","updated_at":"2026-02-04T17:04:39.000Z","dependencies_parsed_at":"2023-10-18T17:41:32.695Z","dependency_job_id":"a847959a-ee93-4d12-8d6a-a4489147da05","html_url":"https://github.com/taiki-e/cargo-llvm-cov","commit_stats":{"total_commits":528,"total_committers":24,"mean_commits":22.0,"dds":"0.12121212121212122","last_synced_commit":"e2156287fb9cc80500f8a3e2178fe55d0db4eff6"},"previous_names":[],"tags_count":116,"template":false,"template_full_name":null,"purl":"pkg:github/taiki-e/cargo-llvm-cov","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taiki-e%2Fcargo-llvm-cov","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taiki-e%2Fcargo-llvm-cov/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taiki-e%2Fcargo-llvm-cov/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taiki-e%2Fcargo-llvm-cov/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taiki-e","download_url":"https://codeload.github.com/taiki-e/cargo-llvm-cov/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taiki-e%2Fcargo-llvm-cov/sbom","scorecard":{"id":865829,"data":{"date":"2025-08-11","repo":{"name":"github.com/taiki-e/cargo-llvm-cov","commit":"a23e1dddb9dd45aeda7ee2e54d9e0961299b3624"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/ci.yml:44","Info: jobLevel 'repository-projects' permission set to 'read': .github/workflows/ci.yml:46","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:29","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:57","Info: topLevel 'contents' permission set to 'read': .github/workflows/ci.yml:4","Info: topLevel 'contents' permission set to 'read': .github/workflows/release.yml:4"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":1,"reason":"Found 3/28 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"17 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:74: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:170: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:171: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:61: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/taiki-e/cargo-llvm-cov/release.yml/main?enable=pin","Info:   0 out of  16 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE-APACHE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE-APACHE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.6.18 not signed: https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/233671873","Warn: release artifact v0.6.17 not signed: https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/230265272","Warn: release artifact v0.6.16 not signed: https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/195170583","Warn: release artifact v0.6.15 not signed: https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/191982683","Warn: release artifact v0.6.14 not signed: https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/179638299","Warn: release artifact v0.6.18 does not have provenance: https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/233671873","Warn: release artifact v0.6.17 does not have provenance: https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/230265272","Warn: release artifact v0.6.16 does not have provenance: https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/195170583","Warn: release artifact v0.6.15 does not have provenance: https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/191982683","Warn: release artifact v0.6.14 does not have provenance: https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/179638299"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/taiki-e/.github/SECURITY.md:1","Info: Found linked content: github.com/taiki-e/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/taiki-e/.github/SECURITY.md:1","Info: Found text in security policy: github.com/taiki-e/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 6 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-24T02:40:37.758Z","repository_id":37425951,"created_at":"2025-08-24T02:40:37.758Z","updated_at":"2025-08-24T02:40:37.758Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29128621,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T17:12:17.649Z","status":"ssl_error","status_checked_at":"2026-02-05T17:11:23.670Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cargo","cli","coverage","rust"],"created_at":"2024-08-01T13:02:09.570Z","updated_at":"2026-02-05T18:02:52.332Z","avatar_url":"https://github.com/taiki-e.png","language":"Rust","funding_links":["https://github.com/sponsors/taiki-e"],"categories":["Rust","Cargo Subcommands"],"sub_categories":[],"readme":"# cargo-llvm-cov\n\n[![crates.io](https://img.shields.io/crates/v/cargo-llvm-cov?style=flat-square\u0026logo=rust)](https://crates.io/crates/cargo-llvm-cov)\n[![license](https://img.shields.io/badge/license-Apache--2.0_OR_MIT-blue?style=flat-square)](#license)\n[![github actions](https://img.shields.io/github/actions/workflow/status/taiki-e/cargo-llvm-cov/ci.yml?branch=main\u0026style=flat-square\u0026logo=github)](https://github.com/taiki-e/cargo-llvm-cov/actions)\n\nCargo subcommand to easily use LLVM source-based code coverage.\n\nThis is a wrapper around rustc [`-C instrument-coverage`][instrument-coverage] and provides:\n\n- Generate very precise coverage data. (line, region, and branch coverage. branch coverage is currently optional and requires nightly, see [#8] for more)\n- Support `cargo test`, `cargo run`, and [`cargo nextest`][nextest] with command-line interface compatible with cargo.\n- Support for proc-macro, including coverage of UI tests ([trybuild](https://github.com/dtolnay/trybuild), [ui_test](https://github.com/oli-obk/ui_test)).\n- Support for doc tests. (this is currently optional and requires nightly, see [#2] for more)\n- Fast because it only instrument necessary crates and does not introduce extra layers between rustc, cargo, and llvm-tools.\n\n**Table of Contents:**\n\n- [Usage](#usage)\n  - [Basic usage](#basic-usage)\n  - [Merge coverages generated under different test conditions](#merge-coverages-generated-under-different-test-conditions)\n  - [Get coverage of C/C++ code linked to Rust library/binary](#get-coverage-of-cc-code-linked-to-rust-librarybinary)\n  - [Get coverage of external tests](#get-coverage-of-external-tests)\n  - [Get coverage of AFL fuzzers](#get-coverage-of-afl-fuzzers)\n  - [Exclude file from coverage](#exclude-file-from-coverage)\n  - [Exclude code from coverage](#exclude-code-from-coverage)\n  - [Platform Support](#platform-support)\n    - [Windows](#windows)\n    - [WASM](#wasm)\n  - [Continuous Integration](#continuous-integration)\n    - [GitHub Actions and Codecov](#github-actions-and-codecov)\n    - [GitLab CI](#gitlab-ci)\n  - [Display coverage in VS Code](#display-coverage-in-vs-code)\n  - [Environment variables](#environment-variables)\n  - [Additional JSON information](#additional-json-information)\n- [Installation](#installation)\n- [Known limitations](#known-limitations)\n- [Related Projects](#related-projects)\n- [License](#license)\n\n## Usage\n\n### Basic usage\n\n\u003cdetails\u003e\n\u003csummary\u003eComplete list of options (click to show)\u003c/summary\u003e\n\n(See [docs](docs) directory for options of subcommands)\n\n\u003c!-- readme-long-help:start --\u003e\n```console\n$ cargo llvm-cov --help\ncargo-llvm-cov\nCargo subcommand to easily use LLVM source-based code coverage (-C instrument-coverage).\n\nUSAGE:\n    cargo llvm-cov [SUBCOMMAND] [OPTIONS] [-- \u003cargs\u003e...]\n\nARGS:\n    \u003cargs\u003e...\n            Arguments for the test binary\n\nOPTIONS:\n        --json\n            Export coverage data in \"json\" format\n\n            If --output-path is not specified, the report will be printed to stdout.\n\n            This internally calls `llvm-cov export -format=text`. See\n            \u003chttps://llvm.org/docs/CommandGuide/llvm-cov.html#llvm-cov-export\u003e for more.\n\n        --lcov\n            Export coverage data in \"lcov\" format\n\n            If --output-path is not specified, the report will be printed to stdout.\n\n            This internally calls `llvm-cov export -format=lcov`. See\n            \u003chttps://llvm.org/docs/CommandGuide/llvm-cov.html#llvm-cov-export\u003e for more.\n\n        --cobertura\n            Export coverage data in \"cobertura\" XML format\n\n            If --output-path is not specified, the report will be printed to stdout.\n\n            This internally calls `llvm-cov export -format=lcov` and then converts to cobertura.xml.\n            See \u003chttps://llvm.org/docs/CommandGuide/llvm-cov.html#llvm-cov-export\u003e for more.\n\n        --codecov\n            Export coverage data in \"Codecov Custom Coverage\" format\n\n            If --output-path is not specified, the report will be printed to stdout.\n\n            This internally calls `llvm-cov export -format=json` and then converts to codecov.json.\n            See \u003chttps://llvm.org/docs/CommandGuide/llvm-cov.html#llvm-cov-export\u003e for more.\n\n        --text\n            Generate coverage report in \"text\" format\n\n            If --output-path or --output-dir is not specified, the report will be printed to stdout.\n\n            This internally calls `llvm-cov show -format=text`. See\n            \u003chttps://llvm.org/docs/CommandGuide/llvm-cov.html#llvm-cov-show\u003e for more.\n\n        --html\n            Generate coverage report in \"html\" format\n\n            If --output-dir is not specified, the report will be generated in `target/llvm-cov/html`\n            directory.\n\n            This internally calls `llvm-cov show -format=html`. See\n            \u003chttps://llvm.org/docs/CommandGuide/llvm-cov.html#llvm-cov-show\u003e for more.\n\n        --open\n            Generate coverage reports in \"html\" format and open them in a browser after the\n            operation.\n\n            See --html for more.\n\n        --summary-only\n            Export only summary information for each file in the coverage data\n\n            This flag can only be used together with --json, --lcov, or --cobertura.\n\n        --output-path \u003cPATH\u003e\n            Specify a file to write coverage data into.\n\n            This flag can only be used together with --json, --lcov, --cobertura, or --text.\n            See --output-dir for --html and --open.\n\n        --output-dir \u003cDIRECTORY\u003e\n            Specify a directory to write coverage report into (default to `target/llvm-cov`).\n\n            This flag can only be used together with --text, --html, or --open. See also\n            --output-path.\n\n        --failure-mode \u003cany|all\u003e\n            Fail if `any` or `all` profiles cannot be merged (default to `any`)\n\n        --ignore-filename-regex \u003cPATTERN\u003e\n            Skip source code files with file paths that match the given regular expression\n\n        --show-instantiations\n            Show instantiations in report\n\n        --no-cfg-coverage\n            Unset cfg(coverage), which is enabled when code is built using cargo-llvm-cov\n\n        --no-cfg-coverage-nightly\n            Unset cfg(coverage_nightly), which is enabled when code is built using cargo-llvm-cov\n            and nightly compiler\n\n        --no-report\n            Run tests, but don't generate coverage report\n\n        --no-clean\n            Build without cleaning any old build artifacts\n\n        --no-rustc-wrapper\n            Build without setting RUSTC_WRAPPER\n\n            By default, cargo-llvm-cov sets RUSTC_WRAPPER. This is usually optimal\n            for compilation time, execution time, and disk usage.\n\n            When both this flag and --target option are used, coverage for proc-macro and\n            build script will not be displayed because cargo does not pass RUSTFLAGS to them.\n\n        --fail-under-functions \u003cMIN\u003e\n            Exit with a status of 1 if the total function coverage is less than MIN percent\n\n        --fail-under-lines \u003cMIN\u003e\n            Exit with a status of 1 if the total line coverage is less than MIN percent\n\n        --fail-under-regions \u003cMIN\u003e\n            Exit with a status of 1 if the total region coverage is less than MIN percent\n\n        --fail-uncovered-lines \u003cMAX\u003e\n            Exit with a status of 1 if the uncovered lines are greater than MAX\n\n        --fail-uncovered-regions \u003cMAX\u003e\n            Exit with a status of 1 if the uncovered regions are greater than MAX\n\n        --fail-uncovered-functions \u003cMAX\u003e\n            Exit with a status of 1 if the uncovered functions are greater than MAX\n\n        --show-missing-lines\n            Show lines with no coverage\n\n        --include-build-script\n            Include build script in coverage report\n\n        --dep-coverage \u003cNAME\u003e\n            Show coverage of the specified dependencies (space or comma separated list)\n            instead of the crates in the current workspace.\n\n        --skip-functions\n            Skip exporting per-function coverage data.\n\n            This flag can only be used together with --json, --lcov, or --cobertura.\n\n        --branch\n            Enable branch coverage. (unstable)\n\n            This flag is unstable. See \u003chttps://github.com/taiki-e/cargo-llvm-cov/issues/8\u003e for\n            more.\n\n        --mcdc\n            Enable mcdc coverage. (unstable)\n\n        --doctests\n            Including doc tests (unstable)\n\n            This flag is unstable. See \u003chttps://github.com/taiki-e/cargo-llvm-cov/issues/2\u003e for\n            more.\n\n        --no-run\n            Generate coverage report without running tests\n\n        --no-fail-fast\n            Run all tests regardless of failure\n\n        --ignore-run-fail\n            Run all tests regardless of failure and generate report\n\n            If tests failed but report generation succeeded, exit with a status of 0.\n\n    -q, --quiet\n            Display one character per test instead of one line\n\n        --lib\n            Test only this package's library unit tests\n\n        --bin \u003cNAME\u003e\n            Test only the specified binary\n\n        --bins\n            Test all binaries\n\n        --example \u003cNAME\u003e\n            Test only the specified example\n\n        --examples\n            Test all examples\n\n        --test \u003cNAME\u003e\n            Test only the specified test target\n\n        --tests\n            Test all tests\n\n        --bench \u003cNAME\u003e\n            Test only the specified bench target\n\n        --benches\n            Test all benches\n\n        --all-targets\n            Test all targets\n\n        --doc\n            Test only this library's documentation (unstable)\n\n            This flag is unstable because it automatically enables --doctests flag. See\n            \u003chttps://github.com/taiki-e/cargo-llvm-cov/issues/2\u003e for more.\n\n    -p, --package \u003cSPEC\u003e\n            Package to run tests for\n\n        --workspace\n            Test all packages in the workspace\n\n        --all\n            Alias for --workspace (deprecated)\n\n        --exclude \u003cSPEC\u003e\n            Exclude packages from both the test and report\n\n        --exclude-from-test \u003cSPEC\u003e\n            Exclude packages from the test (but not from the report)\n\n        --exclude-from-report \u003cSPEC\u003e\n            Exclude packages from the report (but not from the test)\n\n    -j, --jobs \u003cN\u003e\n            Number of parallel jobs, defaults to # of CPUs\n\n    -r, --release\n            Build artifacts in release mode, with optimizations\n\n        --profile \u003cPROFILE-NAME\u003e\n            Build artifacts with the specified profile\n\n    -F, --features \u003cFEATURES\u003e\n            Space or comma separated list of features to activate\n\n        --all-features\n            Activate all available features\n\n        --no-default-features\n            Do not activate the `default` feature\n\n        --target \u003cTRIPLE\u003e\n            Build for the target triple\n\n        --coverage-target-only\n            Activate coverage reporting only for the target triple\n\n            Activate coverage reporting only for the target triple specified via `--target`. This is\n            important, if the project uses multiple targets via the cargo bindeps feature, and not\n            all targets can use `instrument-coverage`, e.g. a microkernel, or an embedded binary.\n\n            When this flag is used, coverage for proc-macro and build script will not be displayed.\n\n    -v, --verbose\n            Use verbose output\n\n            Use -vv (-vvv) to propagate verbosity to cargo.\n\n        --color \u003cWHEN\u003e\n            Coloring: auto, always, never\n\n        --remap-path-prefix\n            Use --remap-path-prefix for workspace root\n\n            Note that this does not fully compatible with doctest.\n\n        --include-ffi\n            Include coverage of C/C++ code linked to Rust library/binary\n\n            Note that `CC`/`CXX`/`LLVM_COV`/`LLVM_PROFDATA` environment variables must be set to\n            Clang/LLVM compatible with the LLVM version used in rustc.\n\n        --keep-going\n            Do not abort the build as soon as there is an error (unstable)\n\n        --ignore-rust-version\n            Ignore `rust-version` specification in packages\n\n        --manifest-path \u003cPATH\u003e\n            Path to Cargo.toml\n\n        --frozen\n            Require Cargo.lock and cache are up to date\n\n        --locked\n            Require Cargo.lock is up to date\n\n        --offline\n            Run without accessing the network\n\n    -Z \u003cFLAG\u003e\n            Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for\n            details\n\n    -h, --help\n            Print help information\n\n    -V, --version\n            Print version information\n\nSUBCOMMANDS:\n    test\n            Run tests and generate coverage report\n            This is equivalent to `cargo llvm-cov` without subcommand,\n            except that test name filtering is supported.\n    run\n            Run a binary or example and generate coverage report\n    report\n            Generate coverage report\n    show-env\n            Output the environment set by cargo-llvm-cov to build Rust projects\n    clean\n            Remove artifacts that cargo-llvm-cov has generated in the past\n    nextest\n            Run tests with cargo nextest\n            This internally calls `cargo nextest run`.\n```\n\u003c!-- readme-long-help:end --\u003e\n\n\u003c/details\u003e\n\nBy default, run tests (via `cargo test`), and print the coverage summary to stdout.\n\n```sh\ncargo llvm-cov\n```\n\nCurrently, doc tests are disabled by default because nightly-only features are required to make coverage work for doc tests. see [#2] for more.\n\nTo run `cargo run` instead of `cargo test`, use `run` subcommand.\n\n```sh\ncargo llvm-cov run\n```\n\nWith html report (the report will be generated to `target/llvm-cov/html` directory):\n\n```sh\ncargo llvm-cov --html\nopen target/llvm-cov/html/index.html\n```\n\nor\n\n```sh\ncargo llvm-cov --open\n```\n\nWith plain text report (if `--output-path` is not specified, the report will be printed to stdout):\n\n```sh\ncargo llvm-cov --text | less -R\n```\n\nWith json report (if `--output-path` is not specified, the report will be printed to stdout):\n\n```sh\ncargo llvm-cov --json --output-path cov.json\n```\n\nWith lcov report (if `--output-path` is not specified, the report will be printed to stdout):\n\n```sh\ncargo llvm-cov --lcov --output-path lcov.info\n```\n\nYou can get a coverage report in a different format based on the results of a previous run by using `cargo llvm-cov report`.\n\n```sh\ncargo llvm-cov --html          # run tests and generate html report\ncargo llvm-cov report --lcov # generate lcov report\n```\n\n`cargo llvm-cov`/`cargo llvm-cov run`/`cargo llvm-cov nextest` cleans some build artifacts by default to avoid false positives/false negatives due to old build artifacts.\nThis behavior is disabled when `--no-clean`, `--no-report`, or `--no-run` is passed, and old build artifacts are retained.\nWhen using these flags, it is recommended to first run `cargo llvm-cov clean --workspace` to remove artifacts that may affect the coverage results.\n\n```sh\ncargo llvm-cov clean --workspace # remove artifacts that may affect the coverage results\ncargo llvm-cov --no-clean\n```\n\n### Merge coverages generated under different test conditions\n\nYou can merge the coverages generated under different test conditions by using `--no-report` and `cargo llvm-cov report`.\n\n```sh\ncargo llvm-cov clean --workspace # remove artifacts that may affect the coverage results\ncargo llvm-cov --no-report --features a\ncargo llvm-cov --no-report --features b\ncargo llvm-cov report --lcov # generate report without tests\n```\n\n\u003e [!TIP]\n\u003e To include coverage for doctests you also need to pass `--doctests` to `cargo llvm-cov report`.\n\n### Get coverage of C/C++ code linked to Rust library/binary\n\nSet `CC`, `CXX`, `LLVM_COV`, and `LLVM_PROFDATA` environment variables to Clang/LLVM compatible with the LLVM version used in rustc, and run cargo-llvm-cov with `--include-ffi` flag.\n\n```sh\nCC=\u003cclang-path\u003e \\\nCXX=\u003cclang++-path\u003e \\\nLLVM_COV=\u003cllvm-cov-path\u003e \\\nLLVM_PROFDATA=\u003cllvm-profdata-path\u003e \\\n  cargo llvm-cov --lcov --include-ffi\n```\n\nKnown compatible Rust (installed via rustup) and LLVM versions:\n\n|            | Rust 1.60-1.77 | Rust 1.78-1.81 | Rust 1.82-1.94 |\n| ---------- | -------------- | -------------- | -------------- |\n| LLVM 14-17 | **✓**          |                |                |\n| LLVM 18    |                | **✓**          |                |\n| LLVM 19-21 |                |                | **✓**          |\n\n### Get coverage of external tests\n\n`cargo test`, `cargo run`, and [`cargo nextest`][nextest] are available as builtin, but cargo-llvm-cov can also be used for arbitrary binaries built using cargo (including other cargo subcommands or external tests that use make, [xtask], etc.)\n\n```sh\n# Set the environment variables needed to get coverage.\nsource \u003c(cargo llvm-cov show-env --sh)\n# Remove artifacts that may affect the coverage results.\n# This command should be called after show-env.\ncargo llvm-cov clean --workspace\n# Above two commands should be called before build binaries.\n\ncargo build # Build rust binaries with instrumentation.\n# Commands using binaries in target/debug/*, including `cargo test` and other cargo subcommands.\n# ...\n\ncargo llvm-cov report --lcov # Generate report without tests.\n```\n\n\u003e [!CAUTION]\n\u003e cargo-llvm-cov subcommands other than `report` and `clean` may not work correctly in the context where environment variables are set by `show-env`; consider using normal `cargo`/`cargo-nextest`/etc. commands.\n\n\u003e [!TIP]\n\u003e To include coverage for doctests you also need to pass `--doctests` to both `cargo llvm-cov show-env` and `cargo llvm-cov report`.\n\n\u003e [!TIP]\n\u003e The same thing can be achieved in PowerShell 6+ by substituting the source command with:\n\u003e\n\u003e ```powershell\n\u003e Invoke-Expression (cargo llvm-cov show-env --pwsh | Out-String)\n\u003e ```\n\u003e\n\u003e See \"Test show-env ...\" in [our CI config](https://github.com/taiki-e/cargo-llvm-cov/blob/HEAD/.github/workflows/ci.yml)\n\u003e for usage with other shells (cmd.exe, csh, tcsh, fish, nushell, xonsh).\n\n### Get coverage of AFL fuzzers\n\nCargo-llvm-cov can be used with [AFL.rs](https://github.com/rust-fuzz/afl.rs) similar to the way external tests are done, but with a few caveats.\n\n```sh\n# Set environment variables and clean workspace\nsource \u003c(cargo llvm-cov show-env --sh)\ncargo llvm-cov clean --workspace\n# Build the fuzz target\ncargo afl build\n# Run the fuzzer, the AFL_FUZZER_LOOPCOUNT is needed, because otherwise .profraw files aren't emitted\n# To get coverage of current corpus, minimize it and set it as input, then run the fuzzer until it processes the corpus\nAFL_FUZZER_LOOPCOUNT=20 cargo afl fuzz -c - -i in -o out target/debug/fuzz-target\n# Generate report\n# If you pass `--release` to `cargo afl build`, you also need to pass `--release` to `cargo llvm-cov report`\ncargo llvm-cov report --lcov\n```\n\n### Exclude file from coverage\n\nTo exclude specific file patterns from the report, use the `--ignore-filename-regex` option.\n\n```sh\ncargo llvm-cov --open --ignore-filename-regex build\n```\n\nBy default, [vendored sources](https://doc.rust-lang.org/cargo/commands/cargo-vendor.html) will not be included in the report. Also, the following patterns and crates specified by `--exclude` or `--exclude-from-report` are excluded:\n\n```text\n{SEPARATOR}rustc{SEPARATOR}([0-9a-f]+|[0-9]+\\.[0-9]+\\.[0-9]+){SEPARATOR}\n^{WORKSPACE_ROOT}({SEPARATOR}.*)?{SEPARATOR}(tests|examples|benches){SEPARATOR}\n^{WORKSPACE_ROOT}({SEPARATOR}.*)?{SEPARATOR}(tests.rs|[0-9a-zA-Z_-]+[_-]tests.rs)$\n^{TARGET_DIR}($|{SEPARATOR})\n^{CARGO_HOME}{SEPARATOR}(registry|git){SEPARATOR}\n^{RUSTUP_HOME}{SEPARATOR}toolchains($|{SEPARATOR})\n```\n\nYou can use `--no-default-ignore-filename-regex` to disable default exclude setting.\n\n### Exclude code from coverage\n\nTo exclude the specific function or module from coverage, use the [`#[coverage(off)]` attribute][rust-lang/rust#84605].\n\nSince `#[coverage(off)]` is unstable, it is recommended to use it together with `cfg(coverage)` or `cfg(coverage_nightly)` set by cargo-llvm-cov.\n\n```rust\n#![cfg_attr(coverage_nightly, feature(coverage_attribute))]\n\n// function\n#[cfg_attr(coverage_nightly, coverage(off))]\nfn exclude_fn_from_coverage() {\n    // ...\n}\n\n// module\n#[cfg_attr(coverage_nightly, coverage(off))]\nmod exclude_mod_from_coverage {\n    // ...\n}\n```\n\ncfgs are set under the following conditions:\n\n- `cfg(coverage)` is always set when using cargo-llvm-cov (unless `--no-cfg-coverage` flag passed)\n- `cfg(coverage_nightly)` is set when using cargo-llvm-cov with nightly toolchain (unless `--no-cfg-coverage-nightly` flag passed)\n\nRust 1.80+ warns the above cfgs as `unexpected_cfgs`. The recommended way to address this is to add a [`lints` table](https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html#check-cfg-in-lintsrust-table) to `Cargo.toml`.\n\n```toml\n[lints.rust]\nunexpected_cfgs = { level = \"warn\", check-cfg = ['cfg(coverage,coverage_nightly)'] }\n```\n\nIf you want to ignore all `#[test]`-related code, you can use module-level `#[coverage(off)]` attribute:\n\n```rust\n#![cfg_attr(coverage_nightly, feature(coverage_attribute))]\n\n#[cfg(test)]\n#[cfg_attr(coverage_nightly, coverage(off))]\nmod tests {\n    // ...\n}\n```\n\ncargo-llvm-cov excludes code contained in the directory named `tests` and file named `tests.rs`/`*_tests.rs`/`*-tests.rs` from the report by default, so you can also use it instead of `#[coverage(off)]` attribute.\n\n### Platform Support\n\n#### Windows\n\n`{x86_64,i686}-pc-windows-msvc` and `{x86_64,aarch64}-pc-windows-gnullvm` are confirmed to work.\n\nAs of 2025-12-30,  `x86_64-pc-windows-gnu` ([rust-lang/rust#111098](https://github.com/rust-lang/rust/issues/111098)) and `aarch64-pc-windows-msvc` ([rust-lang/rust#150123](https://github.com/rust-lang/rust/issues/150123)) are known to not work with default setup.\n\n#### WASM\n\nSee the [`wasm-bindgen` guide](https://wasm-bindgen.github.io/wasm-bindgen/wasm-bindgen-test/coverage.html) for the way to get coverage for `wasm32-unknown-unknown` target.\n\n### Continuous Integration\n\n#### GitHub Actions and Codecov\n\nHere is an example of GitHub Actions workflow that uploads coverage to [Codecov].\n\n```yaml\nname: Coverage\n\non: [pull_request, push]\n\njobs:\n  coverage:\n    runs-on: ubuntu-latest\n    env:\n      CARGO_TERM_COLOR: always\n    steps:\n      - uses: actions/checkout@v5\n      - name: Install Rust\n        run: rustup update stable\n      - name: Install cargo-llvm-cov\n        uses: taiki-e/install-action@cargo-llvm-cov\n      - name: Generate code coverage\n        run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info\n      - name: Upload coverage to Codecov\n        uses: codecov/codecov-action@v5\n        with:\n          token: ${{ secrets.CODECOV_TOKEN }} # required for private repos or protected branches\n          files: lcov.info\n          fail_ci_if_error: true\n```\n\nCurrently, when using `--lcov` flag, [only line coverage is available on Codecov][#20].\n\nBy using `--codecov` flag instead of `--lcov` flag, you can use region coverage on Codecov:\n\n```yaml\n- name: Generate code coverage\n  run: cargo llvm-cov --all-features --workspace --codecov --output-path codecov.json\n- name: Upload coverage to Codecov\n  uses: codecov/codecov-action@v5\n  with:\n    token: ${{ secrets.CODECOV_TOKEN }} # required for private repos or protected branches\n    files: codecov.json\n    fail_ci_if_error: true\n```\n\nNote that [the way Codecov shows region/branch coverage is not very good](https://github.com/taiki-e/cargo-llvm-cov/pull/255#issuecomment-1513318191).\n\n#### GitLab CI\n\nFirst of all, when running the CI you need to make sure `cargo-llvm-cov` is available\nin the execution script. Whether you add it to a custom image, or run `cargo install` as part\nof your pipeline, it should be available and in `PATH`. Once done, it's simple:\n\n```yaml\nunit_tests:\n  artifacts:\n    reports:\n      junit: target/nextest/default/junit.xml\n      coverage_report:\n        coverage_format: cobertura\n        path: target/llvm-cov-target/cobertura.xml\n  # this uses region for coverage summary\n  coverage: '/TOTAL\\s+(\\d+\\s+)+(\\d+\\.\\d+\\%)/'\n  script:\n    - cargo llvm-cov nextest\n    - cargo llvm-cov report --cobertura --output-path target/llvm-cov-target/cobertura.xml\n```\n\n\u003e [!CAUTION]\n\u003e GitLab has certain [limits for Cobertura reports](https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization/cobertura.html#limits)\n\u003e make sure you obey them.\n\n\u003e [!NOTE]\n\u003e Note that this example uses [`cargo-nextest`](https://nexte.st/) to run the tests (which must\n\u003e similarly be available), with the following `.config/nextest.toml`:\n\u003e\n\u003e ```toml\n\u003e [profile.default.junit]\n\u003e path = \"junit.xml\"\n\u003e ```\n\n### Display coverage in VS Code\n\nYou can display coverage in VS Code using [Coverage Gutters](https://marketplace.visualstudio.com/items?itemName=ryanluker.vscode-coverage-gutters).\n\nCoverage Gutters supports lcov style coverage file and detects `lcov.info` files at the top level or in the `coverage` directory. Below is an example command to generate the coverage file.\n\n```sh\ncargo llvm-cov --lcov --output-path lcov.info\n```\n\nYou may need to click the \"Watch\" label in the bottom bar of VS Code to display coverage.\n\n### Environment variables\n\nYou can override these environment variables to change cargo-llvm-cov's behavior on your system:\n\n- `CARGO_LLVM_COV_TARGET_DIR` -- Location of where to place all generated artifacts, relative to the current working directory. Default to `\u003ccargo_target_dir\u003e/llvm-cov-target`.\n- `CARGO_LLVM_COV_BUILD_DIR` -- Location of where intermediate build artifacts will be stored, relative to the current working directory. Default to `\u003ccargo_target_dir\u003e/llvm-cov-target`.\n- `CARGO_LLVM_COV_SETUP` -- Control behavior if `llvm-tools-preview` component is not installed. See [#219] for more.\n- `LLVM_COV` -- Override the path to `llvm-cov`. You may need to specify both this and `LLVM_PROFDATA` environment variables if you are using [`--include-ffi` flag](#get-coverage-of-cc-code-linked-to-rust-librarybinary) or if you are using a toolchain installed without via rustup. `llvm-cov` version must be compatible with the LLVM version used in rustc.\n- `LLVM_PROFDATA` -- Override the path to `llvm-profdata`. See `LLVM_COV` environment variable for more.\n- `LLVM_COV_FLAGS` -- A space-separated list of additional flags to pass to all `llvm-cov` invocations that cargo-llvm-cov performs. See [LLVM documentation](https://llvm.org/docs/CommandGuide/llvm-cov.html) for available options.\n- `LLVM_PROFDATA_FLAGS` -- A space-separated list of additional flags to pass to all `llvm-profdata` invocations that cargo-llvm-cov performs. See [LLVM documentation](https://llvm.org/docs/CommandGuide/llvm-profdata.html) for available options.\n- `LLVM_PROFILE_FILE_NAME` -- Override the file name (the final component of the path) of the `LLVM_PROFILE_FILE`. See [LLVM documentation](https://clang.llvm.org/docs/SourceBasedCodeCoverage.html#running-the-instrumented-program) for available syntax.\n\nSee also [environment variables that Cargo reads](https://doc.rust-lang.org/nightly/cargo/reference/environment-variables.html#environment-variables-cargo-reads). cargo-llvm-cov respects many of them.\n\n### Additional JSON information\n\nIf **JSON** is selected as output format (with the `--json` flag), then cargo-llvm-cov will add additional contextual information at the root of the llvm-cov data. This can be helpful for programs that rely on the output of cargo-llvm-cov.\n\n```json\n{\n  // Other regular llvm-cov fields ...\n  \"cargo_llvm_cov\": {\n    \"version\": \"0.0.0\",\n    \"manifest_path\": \"/path/to/your/project/Cargo.toml\"\n  }\n}\n```\n\n- `version` specifies the version of cargo-llvm-cov that was used. This allows other programs to verify a certain version of it was used and make assertions of its behavior.\n- `manifest_path` defines the absolute path to the Rust project's Cargo.toml that cargo-llvm-cov was executed on. It can help to avoid repeating the same option on both programs.\n\nFor example, when forwarding the JSON output directly to another program:\n\n```sh\ncargo-llvm-cov --json | some-program\n```\n\n## Installation\n\n\u003c!-- omit in toc --\u003e\n### From source\n\n```sh\ncargo +stable install cargo-llvm-cov --locked\n```\n\nCurrently, installing cargo-llvm-cov requires rustc 1.87+.\n\ncargo-llvm-cov is usually runnable with Cargo versions older than the Rust version\nrequired for installation (e.g., `cargo +1.60 llvm-cov`). Currently, to run\ncargo-llvm-cov requires Cargo 1.60+.\n\n\u003c!-- omit in toc --\u003e\n### From prebuilt binaries\n\nYou can download prebuilt binaries from the [Release page](https://github.com/taiki-e/cargo-llvm-cov/releases).\nPrebuilt binaries are available for Linux (x86_64 gnu/musl, aarch64 gnu/musl, powerpc64le gnu/musl, riscv64gc gnu/musl, and s390x gnu, musl binaries are static executable), macOS (x86_64, aarch64, and universal), Windows (x86_64 and aarch64, static executable), FreeBSD (x86_64).\n\n\u003cdetails\u003e\n\u003csummary\u003eExample of script to install from the Release page (click to show)\u003c/summary\u003e\n\n```sh\n# Get host target\nhost=$(rustc -vV | grep '^host:' | cut -d' ' -f2)\n# Download binary and install to $HOME/.cargo/bin\ncurl --proto '=https' --tlsv1.2 -fsSL \"https://github.com/taiki-e/cargo-llvm-cov/releases/latest/download/cargo-llvm-cov-$host.tar.gz\" \\\n  | tar xzf - -C \"$HOME/.cargo/bin\"\n```\n\n\u003c/details\u003e\n\n\u003c!-- omit in toc --\u003e\n### On GitHub Actions\n\nYou can use [taiki-e/install-action](https://github.com/taiki-e/install-action) to install prebuilt binaries on Linux, macOS, and Windows.\nThis makes the installation faster and may avoid the impact of [problems caused by upstream changes](https://github.com/tokio-rs/bytes/issues/506).\n\n```yaml\n- uses: taiki-e/install-action@cargo-llvm-cov\n```\n\nWhen used with [nextest]:\n\n```yml\n- uses: taiki-e/install-action@cargo-llvm-cov\n- uses: taiki-e/install-action@nextest\n```\n\n\u003c!-- omit in toc --\u003e\n### Via Homebrew\n\nYou can install cargo-llvm-cov from [homebrew-core](https://formulae.brew.sh/formula/cargo-llvm-cov) (x86_64/AArch64 macOS, x86_64/AArch64 Linux):\n\n```sh\nbrew install cargo-llvm-cov\n```\n\nAlternatively, you can also install from the [Homebrew tap maintained by us](https://github.com/taiki-e/homebrew-tap/blob/HEAD/Formula/cargo-llvm-cov.rb) (x86_64/AArch64 macOS, x86_64/AArch64 Linux):\n\n```sh\nbrew install taiki-e/tap/cargo-llvm-cov\n```\n\n\u003c!-- omit in toc --\u003e\n### Via Scoop (Windows)\n\nYou can install cargo-llvm-cov from the [Scoop bucket maintained by us](https://github.com/taiki-e/scoop-bucket/blob/HEAD/bucket/cargo-llvm-cov.json):\n\n```sh\nscoop bucket add taiki-e https://github.com/taiki-e/scoop-bucket\nscoop install cargo-llvm-cov\n```\n\n\u003c!-- omit in toc --\u003e\n### Via cargo-binstall\n\nYou can install cargo-llvm-cov using [cargo-binstall](https://github.com/cargo-bins/cargo-binstall):\n\n```sh\ncargo binstall cargo-llvm-cov\n```\n\n\u003c!-- omit in toc --\u003e\n### Via pacman (Arch Linux)\n\nYou can install cargo-llvm-cov from the [extra repository](https://archlinux.org/packages/extra/x86_64/cargo-llvm-cov):\n\n```sh\npacman -S cargo-llvm-cov\n```\n\n\u003c!-- omit in toc --\u003e\n### Via ports (FreeBSD)\n\nYou can install cargo-llvm-cov from the [official ports](https://www.freshports.org/devel/cargo-llvm-cov):\n\n```sh\npkg install cargo-llvm-cov\n```\n\n\u003c!-- omit in toc --\u003e\n### Via other package managers\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/cargo-llvm-cov.svg?columns=4)](https://repology.org/project/cargo-llvm-cov/versions)\n\n## Known limitations\n\n- Support for branch coverage is unstable. See [#8] and [rust-lang/rust#79649] for more.\n- Support for doc tests is unstable and has known issues. See [#2] and [rust-lang/rust#79417] for more.\n\nSee also [the code-coverage-related issues reported in rust-lang/rust](https://github.com/rust-lang/rust/labels/A-code-coverage).\n\n## Related Projects\n\n- [cargo-config2]: Library to load and resolve Cargo configuration. cargo-llvm-cov uses this library.\n- [cargo-hack]: Cargo subcommand to provide various options useful for testing and continuous integration.\n- [cargo-minimal-versions]: Cargo subcommand for proper use of `-Z minimal-versions`.\n\n[#2]: https://github.com/taiki-e/cargo-llvm-cov/issues/2\n[#8]: https://github.com/taiki-e/cargo-llvm-cov/issues/8\n[#20]: https://github.com/taiki-e/cargo-llvm-cov/issues/20\n[#219]: https://github.com/taiki-e/cargo-llvm-cov/issues/219\n[cargo-config2]: https://github.com/taiki-e/cargo-config2\n[cargo-hack]: https://github.com/taiki-e/cargo-hack\n[cargo-minimal-versions]: https://github.com/taiki-e/cargo-minimal-versions\n[codecov]: https://codecov.io\n[instrument-coverage]: https://doc.rust-lang.org/rustc/instrument-coverage.html\n[nextest]: https://nexte.st/book/test-coverage.html\n[rust-lang/rust#79417]: https://github.com/rust-lang/rust/issues/79417\n[rust-lang/rust#79649]: https://github.com/rust-lang/rust/issues/79649\n[rust-lang/rust#84605]: https://github.com/rust-lang/rust/issues/84605\n[xtask]: https://github.com/matklad/cargo-xtask\n\n## License\n\nLicensed under either of [Apache License, Version 2.0](LICENSE-APACHE) or\n[MIT license](LICENSE-MIT) at your option.\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall\nbe dual licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaiki-e%2Fcargo-llvm-cov","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaiki-e%2Fcargo-llvm-cov","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaiki-e%2Fcargo-llvm-cov/lists"}