Add testing section to readme
We now have a few different test harnesses in use, add a section to the readme about each - normal unit/integration tests - benchmarks - kani - mutagen
This commit is contained in:
parent
2e79a0bdc4
commit
8ce928b8e7
30
README.md
30
README.md
|
@ -114,11 +114,39 @@ shell alias to check your documentation changes build correctly.
|
|||
alias build-docs='RUSTDOCFLAGS="--cfg docsrs" cargo +nightly rustdoc --features="$FEATURES" -- -D rustdoc::broken-intra-doc-links'
|
||||
```
|
||||
|
||||
### Running benchmarks
|
||||
## Testing
|
||||
|
||||
Unit and integration tests are available for those interested, along with benchmarks. For project
|
||||
developers, especially new contributors looking for something to work on, we do:
|
||||
|
||||
- Fuzz testing with [`Hongfuzz`](https://github.com/rust-fuzz/honggfuzz-rs)
|
||||
- Mutation testing with [`Mutagen`](https://github.com/llogiq/mutagen)
|
||||
- Code verification with [`Kani`](https://github.com/model-checking/kani)
|
||||
|
||||
There are always more tests to write and more bugs to find, contributions to our testing efforts
|
||||
extremely welcomed. Please consider testing code a first class citizen, we definitely do take PRs
|
||||
improving and cleaning up test code.
|
||||
|
||||
### Unit/Integration tests
|
||||
|
||||
Run as for any other Rust project `cargo test --all-features`.
|
||||
|
||||
### Benchmarks
|
||||
|
||||
We use a custom Rust compiler configuration conditional to guard the bench mark code. To run the
|
||||
bench marks use: `RUSTFLAGS='--cfg=bench' cargo +nightly bench`.
|
||||
|
||||
### Mutation tests
|
||||
|
||||
We have started doing mutation testing with [mutagen](https://github.com/llogiq/mutagen). To run
|
||||
these tests first install the latest dev version with `cargo +nightly install --git https://github.com/llogiq/mutagen`
|
||||
then run with `RUSTFLAGS='--cfg=mutate' cargo +nightly mutagen`.
|
||||
|
||||
### Code verification
|
||||
|
||||
We have started using [kani](https://github.com/model-checking/kani), install with `cargo install
|
||||
--locked kani-verifier` (no need to run `cargo kani setup`). Run the tests with `cargo kani`.
|
||||
|
||||
## Pull Requests
|
||||
|
||||
Every PR needs at least two reviews to get merged. During the review phase
|
||||
|
|
Loading…
Reference in New Issue