README.txt 1.0 KB

123456789101112131415161718192021222324252627282930
  1. For fuzz testing civetweb, perform the following steps:
  2. - Switch to civetweb root directory
  3. - make clean
  4. First fuzz target: vary URI for HTTP1 server
  5. - make WITH_ALL=1 TEST_FUZZ=1
  6. - mv civetweb civetweb_fuzz1
  7. - sudo ./civetweb_fuzz1 -max_len=2048 fuzztest/url/
  8. Second fuzz target: vary HTTP1 request for HTTP1 server
  9. - make WITH_ALL=1 TEST_FUZZ=2
  10. - mv civetweb civetweb_fuzz2
  11. - sudo ./civetweb_fuzz2 -max_len=2048 -dict=fuzztest/http1.dict fuzztest/http1/
  12. Third fuzz target: vary HTTP1 response for HTTP1 client API
  13. - make WITH_ALL=1 TEST_FUZZ=3
  14. - mv civetweb civetweb_fuzz3
  15. - sudo ./civetweb_fuzz3 -max_len=2048 -dict=fuzztest/http1.dict fuzztest/http1c/
  16. Open issues:
  17. * Need "sudo" for container? (ASAN seems to needs it on WSL test)
  18. * let "make" create "civetweb_fuzz#" instead of "mv"
  19. * useful initial corpus and directory
  20. * Planned additional fuzz test:
  21. * vary HTTP2 request for HTTP2 server (in HTTP2 feature branch)
  22. * use internal function to bypass socket (bottleneck)
  23. * where to put fuzz corpus?