#llvm #coverage #code-coverage #data #instrumentation #file-format #backward

bin+lib llvm_profparser

Parsing and interpretation of llvm coverage profiles and generated data

18 releases (6 breaking)

0.7.0 Aug 5, 2024
0.6.0 May 17, 2024
0.5.0 Apr 28, 2024
0.3.3 Apr 4, 2023
0.1.0-alpha5 Nov 14, 2021

#708 in Parser implementations

Download history 4602/week @ 2024-07-18 5574/week @ 2024-07-25 5128/week @ 2024-08-01 5178/week @ 2024-08-08 4943/week @ 2024-08-15 5664/week @ 2024-08-22 5879/week @ 2024-08-29 5792/week @ 2024-09-05 4662/week @ 2024-09-12 5191/week @ 2024-09-19 5354/week @ 2024-09-26 4811/week @ 2024-10-03 4937/week @ 2024-10-10 5821/week @ 2024-10-17 4977/week @ 2024-10-24 5065/week @ 2024-10-31

21,698 downloads per month
Used in 13 crates (via cargo-tarpaulin)

Apache-2.0

135KB
3K SLoC

llvm-profparser

Build Status License Coverage Status

This is a reasonably complete to parse the llvm instrumentation profraw file format and avoid the need to install and use the llvm-profdata/llvm-cov binaries. It aims to be backwards compatible with as many llvm versions that could be used for coverage data in Rust projects and currently supports the following llvm versions: 11, 12, 13, 14, 15.

This project is not affilated with the llvm-project in anyway! It is merely a parser for some of their file formats to aid interoperability in Rust.

Contributing

All of the functionality required has been implemented, however there are areas to improve in handling unexpected or invalid files. To start fining issues there's a fuzz directory which will undoubtedly reveal some issues that can be fixed. Go into the fuzz directory for guides on how to run.

License

llvm_profparser is currently licensed under the terms of the Apache License (Version 2.0). See LICENSE for details. Test data included from the llvm-project residing in tests/data retains the llvm license. See the llvm-project for details.

Dependencies

~6MB
~110K SLoC