generate contextually sensible fuzz tests for servant apps
Go to file
Mark Wotton c338551b07 docs
2021-01-03 11:52:12 -05:00
.github/workflows mucking with github actions 2020-11-30 14:10:23 -05:00
app autogenerated stuff 2020-06-05 12:01:44 -04:00
benchmarks some cleanup + a compilation speed fix from sam gelineau 2021-01-02 13:12:12 -05:00
scripts tidying up 2020-06-06 10:24:56 -04:00
src tighter import 2021-01-03 11:43:44 -05:00
test polishing interface for 1.0 release 2021-01-03 11:38:22 -05:00
.gitignore cleaned up some type level stuff, added some type level bits 2020-08-08 18:46:09 -04:00
ChangeLog.md autogenerated stuff 2020-06-05 12:01:44 -04:00
Example.lhs swap roles of lhs & md 2020-12-24 16:18:42 -05:00
EXAMPLE.md docs 2021-01-03 11:52:12 -05:00
LICENSE autogenerated stuff 2020-06-05 12:01:44 -04:00
Makefile warnings and import cleanup 2020-12-17 10:44:02 -05:00
package.yaml WIP 2020-12-30 13:03:00 -05:00
README.md cleanup and example 2020-12-24 16:16:09 -05:00
roboservant.cabal polishing interface for 1.0 release 2021-01-03 11:38:22 -05:00
Setup.hs autogenerated stuff 2020-06-05 12:01:44 -04:00
stack.yaml polishing interface for 1.0 release 2021-01-03 11:38:22 -05:00
stack.yaml.lock WIP 2020-12-30 13:03:00 -05:00
TODO.md split up todo/readme 2020-09-23 23:11:05 -04:00

roboservant

Automatically fuzz your servant apis in a contextually-aware way.

CI

example

see full example here

why?

Servant gives us a lot of information about what a server can do. We use this information to generate arbitrarily long request/response sessions and verify properties that should hold over them.

why not servant-quickcheck?

servant-quickcheck is a great package and I've learned a lot from it. Unfortunately, as mentioned previously, there's a lot of the state space you just can't explore without context: modern webapps are full of pointer-like structures, whether they're URLs or database keys/uuids, and servant-quickcheck requires that you be able to generate these without context via Arbitrary.