diff --git a/README.md b/README.md index cc58fc0..7f2e05a 100644 --- a/README.md +++ b/README.md @@ -51,16 +51,14 @@ usage examples. # Coverage -Coverage was generated using [`grcov`](https://github.com/mozilla/grcov). If you have not done so -already, install the `llvm-tools-preview`: +Coverage can be generated using [`llvm-cov`](https://github.com/taiki-e/cargo-llvm-cov). If you have not done so +already, install the tool: ```sh -rustup component add llvm-tools-preview -cargo install grcov --locked +cargo +stable install cargo-llvm-cov --locked ``` -After that, you can simply run `coverage.py` to test the project with coverage. You can optionally -supply the `--open` flag to open the coverage report in your webbrowser. +After this, you can run `cargo llvm-cov nextest` to run all the tests and display coverage. # Miri diff --git a/coverage.py b/coverage.py deleted file mode 100755 index cfbe006..0000000 --- a/coverage.py +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env python3 -import os -import logging -import argparse -import webbrowser - - -_LOGGER = logging.getLogger() - - -def generate_cov_report(open_report: bool, format: str): - logging.basicConfig(level=logging.INFO) - os.environ["RUSTFLAGS"] = "-Cinstrument-coverage" - os.environ["LLVM_PROFILE_FILE"] = "target/coverage/%p-%m.profraw" - _LOGGER.info("Executing tests with coverage") - os.system("cargo test --all-features") - - out_path = "./target/debug/coverage" - if format == "lcov": - out_path = "./target/debug/lcov.info" - os.system( - f"grcov . -s . --binary-path ./target/debug/ -t {format} --branch --ignore-not-existing " - f"-o {out_path}" - ) - if format == "lcov": - os.system( - "genhtml -o ./target/debug/coverage/ --show-details --highlight --ignore-errors source " - "--legend ./target/debug/lcov.info" - ) - if open_report: - coverage_report_path = os.path.abspath("./target/debug/coverage/index.html") - webbrowser.open_new_tab(coverage_report_path) - _LOGGER.info("Done") - - -def main(): - parser = argparse.ArgumentParser( - description="Generate coverage report and optionally open it in a browser" - ) - parser.add_argument( - "--open", action="store_true", help="Open the coverage report in a browser" - ) - parser.add_argument( - "--format", - choices=["html", "lcov"], - default="html", - help="Choose report format (html or lcov)", - ) - args = parser.parse_args() - generate_cov_report(args.open, args.format) - - -if __name__ == "__main__": - main()