#ifndef FUZZTEST_FUZZTEST_INTERNAL_REGISTRY_H_
#define FUZZTEST_FUZZTEST_INTERNAL_REGISTRY_H_
#include <memory>
#include <type_traits>
#include <utility>
#include "absl/functional/function_ref.h"
#include "absl/strings/string_view.h"
#ifdef FUZZTEST_USE_CENTIPEDE
#include "./fuzztest/internal/centipede_adaptor.h"
#endif
#ifdef FUZZTEST_COMPATIBILITY_MODE
#include "./fuzztest/internal/compatibility_mode.h"
#endif
#include "./fuzztest/internal/fixture_driver.h"
#include "./fuzztest/internal/registration.h"
#include "./fuzztest/internal/runtime.h"
namespace fuzztest {
namespace internal {
void RegisterImpl(BasicTestInfo test_info, FuzzTestFuzzerFactory factory);
void ForEachTest(absl::FunctionRef<void(FuzzTest&)> func);
SetUpTearDownTestSuiteFunction;
void RegisterSetUpTearDownTestSuiteFunctions(
absl::string_view suite_name,
SetUpTearDownTestSuiteFunction set_up_test_suite,
SetUpTearDownTestSuiteFunction tear_down_test_suite);
SetUpTearDownTestSuiteFunction GetSetUpTestSuite(absl::string_view suite_name);
SetUpTearDownTestSuiteFunction GetTearDownTestSuite(
absl::string_view suite_name);
struct RegistrationToken { … };
struct RegisterStub { … };
#define INTERNAL_FUZZ_TEST(suite_name, func) …
#define INTERNAL_FUZZ_TEST_F(suite_name, test_name, fixture, func) …
}
template <typename Registration>
void RegisterFuzzTest(Registration&& reg) { … }
}
#endif