tree: 281f78292a9a92c5b38b434994fc84387698e21d [path history] [tgz]
  1. fuzz_corpus/
  2. proto/
  3. BUILD.gn
  4. cast_auth_util.cc
  5. cast_auth_util.h
  6. cast_auth_util_fuzzer.cc
  7. cast_auth_util_unittest.cc
  8. cast_channel_enum.cc
  9. cast_channel_enum.h
  10. cast_framer.cc
  11. cast_framer.h
  12. cast_framer_ingest_fuzzer.cc
  13. cast_framer_serialize_fuzzer.cc
  14. cast_framer_unittest.cc
  15. cast_message_handler.cc
  16. cast_message_handler.h
  17. cast_message_handler_unittest.cc
  18. cast_message_util.cc
  19. cast_message_util.h
  20. cast_message_util_fuzzer.cc
  21. cast_message_util_unittest.cc
  22. cast_socket.cc
  23. cast_socket.h
  24. cast_socket_service.cc
  25. cast_socket_service.h
  26. cast_socket_service_unittest.cc
  27. cast_socket_unittest.cc
  28. cast_test_util.cc
  29. cast_test_util.h
  30. cast_transport.cc
  31. cast_transport.h
  32. cast_transport_unittest.cc
  33. DEPS
  34. enum_table.cc
  35. enum_table.h
  36. enum_table_unittest.cc
  37. fuzz.dict
  38. keep_alive_delegate.cc
  39. keep_alive_delegate.h
  40. keep_alive_delegate_unittest.cc
  41. keep_alive_handler.cc
  42. keep_alive_handler.h
  43. logger.cc
  44. logger.h
  45. logger_unittest.cc
  46. mojo_data_pump.cc
  47. mojo_data_pump.h
  48. OWNERS
  49. README.md
components/cast_channel/README.md

How to Run a Fuzz Test

Create an appropriate build config:

% tools/mb/mb.py gen -m chromium.fuzz -b 'Libfuzzer Upload Linux ASan' out/libfuzzer
% gn gen out/libfuzzer

Build the fuzz target:

% ninja -C out/libfuzzer $TEST_NAME

Create an empty corpus directory:

% mkdir ${TEST_NAME}_corpus

Run the fuzz target, turning off detection of ODR violations that occur in component builds:

% export ASAN_OPTIONS=detect_odr_violation=0
% ./out/libfuzzer/$TEST_NAME ${TEST_NAME}_corpus

For more details, refer to https://chromium.googlesource.com/chromium/src/testing/libfuzzer/+/refs/heads/master/getting_started.md