1# Property tests for `bindgen` with `quickchecking` 2 3`quickchecking` generates random C headers to test `bindgen` 4using the [`quickcheck`][quickcheck] property testing crate. When testing 5`bindgen` with `quickchecking`, the generated header files are passed to 6`bindgen`'s `csmith-fuzzing/predicate.py` script. If that script fails, 7`quickchecking` panics, and you can report an issue containing the test case! 8 9<!-- START doctoc generated TOC please keep comment here to allow auto update --> 10<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> 11 12 13- [Prerequisites](#prerequisites) 14- [Running](#running) 15 16<!-- END doctoc generated TOC please keep comment here to allow auto update --> 17 18## Prerequisites 19 20Requires `python3` to be in `$PATH`. 21 22Many systems have `python3` by default but if your OS doesn't, its package 23manager may make it available: 24 25``` 26$ sudo apt install python3 27$ brew install python3 28$ # Etc... 29``` 30 31## Running 32 33Run `quickchecking` binary to generate and test fuzzed C headers with 34`cargo run`. Additional configuration is exposed through the binary's CLI. 35 36``` 37$ cargo run --bin=quickchecking -- -h 38``` 39[quickcheck]: https://github.com/BurntSushi/quickcheck 40