tree 5afebb6a70b37c226bc4f5aa667b62b1654fc3ad
parent 30cff8e6e1be3be65bd3901c09f6089d4159c40a
author Amine Alami <43780877+Alami-Amine@users.noreply.github.com> 1725437419 +0200
committer GitHub <noreply@github.com> 1725437419 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJm2BXrCRC1aQ7uu5UhlAAAuNAQABk+b+VolElBi2mhoiJya/gJ
 7PJThIjfjGrwjSLOVqjqzdCx0QVJ5C8UZpqz+h2USR+f3oCBqgujh6F9SLIaSaKX
 ulk6cXGxWaqup/1E40XKS1/rwnKVStKAXpEyReRmJF7Lqy98kvi+mxRFdhm0jNxK
 +yM4DiDBWSCHBmJld2GIcRHlt0c+z8pHP5j00rYAAhGhOGS8UDeyO1hoLP87zGdV
 /JpWKHrsAk+P9ld/YtTi/riOyBZzl7CVRQ6iL3u4ebEEK6kNZL/Bg39aCMjQqX4A
 mr4QlzkohOG203VWB9m/ktxoz0FJ2GNG6Af9hxHmUddsu3rj999fVTLyt/n0vJkA
 HWIPJqR6j+BDoPcF3XEgoIjKIaXruuvgZ9AxpekpGY7RvEJtZqShXy+SUSuKO8LC
 HI7uqGA0d0V1/+Z30jQKTlLX51wW3VLY3xl8QnyqcWKIooKkLKFNNazd+xF12NQQ
 riSkZY4X1QbquMWICNY4FZNLRvkiPlxfUmDjXRPRpElgR5ePURlglIKbsRIG1j1a
 7Bk1wUmbgHFi3FfoX7bp4UhSxPJ49+BBFQjfnblHZn18jqVV4NTEHVXNBNr56648
 ci37gKBoB4gfDgu0VjkDQJxVv1STWdTcqTgqemHddqvHQ5mP9LSTmD6v2ck1+epH
 jvMugXW567PmzNu3KF7e
 =eblP
 -----END PGP SIGNATURE-----
 

Integration of pw_fuzzer using FuzzTest (#34274)

* latest trial to build pw_fuzz

* migrating FuzzPayloadDecoder FuzzTest

* fix error related to latomic

* adding template for pw_fuzz_tests

* fix for linux_sysroot issue

* adding FuzzTests

* fixing warning issue

* adding support to build pw-fuzztests with build_examples.py

* Restyled by whitespace

* Restyled by clang-format

* adding pw_fuzz_tests to default target

* fixing build_examples test golden standard

* Adding Fuzzing Targets

* Adding Documentation

* cleaning-up tests

* spelling mistakes

* integrating comments

---------

Co-authored-by: Restyled.io <commits@restyled.io>