1 #ifndef NFC_INTEGRATION_FUZZER_IMPL_H_
2 #define NFC_INTEGRATION_FUZZER_IMPL_H_
3 
4 #include <fuzzer/FuzzedDataProvider.h>
5 
6 #include "fuzzers/integration/nfc_integration_fuzzer.pb.h"
7 #include "hal_fakes.h"
8 #include "nfa_api.h"
9 
10 class NfcIntegrationFuzzer {
11  public:
12   NfcIntegrationFuzzer(const Session* session);
~NfcIntegrationFuzzer()13   ~NfcIntegrationFuzzer() { TearDown(); }
14 
15   bool Setup();
16   void RunCommands();
17 
18  private:
19   void DoOneCommand(std::vector<std::vector<uint8_t>>& bytes_container,
20                     const Command& command);
21 
22   void TearDown();
23 
24   const Session* session_;
25   FuzzedDataProvider fuzzed_data_;
26   FakeHal fake_hal_;
27   std::vector<std::vector<uint8_t>> bytes_container_;
28 };
29 
30 #endif  // NFC_INTEGRATION_FUZZER_IMPL_H_
31