#include #include #include #include #include #include #include #include #include using namespace NFlatHash; namespace { template using TFlatLinearModMap = NFlatHash::TMap, std::equal_to, TFlatContainer>, TLinearProbing, TAndSizeFitter, TSimpleExpander>; NFuzz::EActionType EvalType(ui8 data) { return static_cast((data >> 5) & 0b111); } ui8 EvalKey(ui8 data) { return data & 0b11111; } ui8 EvalValue() { return RandomNumber(); } } // namespace extern "C" int LLVMFuzzerTestOneInput(const ui8* const wireData, const size_t wireSize) { THashMap etalon; TFlatLinearModMap testee; for (auto i : xrange(wireSize)) { auto data = wireData[i]; NFuzz::MakeAction(etalon, testee, EvalKey(data), EvalValue(), EvalType(data)); NFuzz::CheckInvariants(etalon, testee); } return 0; }