[fuzz] Avoid collecting initialization coverage

This commit is contained in:
dergoegge 2024-05-22 17:11:37 +01:00
parent 6f36624147
commit 949abebea0

View file

@ -79,6 +79,26 @@ void FuzzFrameworkRegisterTarget(std::string_view name, TypeTestOneInput target,
static std::string_view g_fuzz_target;
static const TypeTestOneInput* g_test_one_input{nullptr};
#if defined(__clang__) && defined(__linux__)
extern "C" void __llvm_profile_reset_counters(void) __attribute__((weak));
extern "C" void __gcov_reset(void) __attribute__((weak));
void ResetCoverageCounters()
{
if (__llvm_profile_reset_counters) {
__llvm_profile_reset_counters();
}
if (__gcov_reset) {
__gcov_reset();
}
}
#else
void ResetCoverageCounters() {}
#endif
void initialize()
{
// Terminate immediately if a fuzzing harness ever tries to create a TCP socket.
@ -129,6 +149,8 @@ void initialize()
Assert(!g_test_one_input);
g_test_one_input = &it->second.test_one_input;
it->second.opts.init();
ResetCoverageCounters();
}
#if defined(PROVIDE_FUZZ_MAIN_FUNCTION)