libpldm: Add fuzzing for firmware FD responder

This includes a fuzz target fd-fuzz, and infrastructure to run with
either honggfuzz or AFL.

fd-fuzz-input1.dat was crafted from parts of a pldm firmware update
packet capture, as a seed to guide fuzzers.

Signed-off-by: Matt Johnston <matt@codeconstruct.com.au>
Change-Id: I424761a29a22bc964201fd7bd94ddc09a6ac89df
diff --git a/tests/fuzz/fd.dict b/tests/fuzz/fd.dict
new file mode 100644
index 0000000..5749e4d
--- /dev/null
+++ b/tests/fuzz/fd.dict
@@ -0,0 +1,22 @@
+FIXED_DESCRIPTORS="\x01\x00\x04\x00\xcf\xc2\x00\x00"
+
+# request update cmd 0x10. identifier "1"
+request_update="\x0f\x00\x00\x00\x80\x05\x10\x00\x04\x00\x00\x01\x00\x01\x00\x00\x01\x01\x31"
+
+# pass component table
+# Length 16 prefix.
+# startandend=0x05, classification=7, identifier=123 (0x7b), index = 9
+pass_comp="\x10\x00\x00\x00\x80\x05\x13\x05\x07\x00\x7b\x00\x09\xff\xff\xff\xff\x01\x01Z"
+# mostly 0x00 for details
+pass_comp_00="\x10\x00\x00\x00\x80\x05\x13\x05\x00\x00\x00\x00\x00\xff\xff\xff\xff\x01\x01Z"
+
+# Update Component. Similar to pass_comp at the start
+# set size of 0x810 bytes (2064 bytes)
+update_comp="\x17\x00\x00\x00\x80\x05\x14\x07\x00\x7b\x00\x09\xff\xff\xff\xff\x10\x08\x00\x00\x00\x00\x00\x00\x01\x01Z"
+update_comp_00="\x17\x00\x00\x00\x80\x05\x14\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x08\x00\x00\x00\x00\x00\x00\x01\x01Z"
+
+
+"zzz"
+"fnnn"
+"1234"
+"1235"