0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-06 14:19:59 -05:00

fuzz: Hide script_assets_test_minimizer

Can be reviewed with --ignore-all-space
This commit is contained in:
MarcoFalke 2021-02-08 10:13:08 +01:00
parent e51f6c4dee
commit fafca47adc
No known key found for this signature in database
GPG key ID: CE2B75697E69A548
3 changed files with 21 additions and 16 deletions

View file

@ -13,15 +13,15 @@
const std::function<void(const std::string&)> G_TEST_LOG_FUN{}; const std::function<void(const std::string&)> G_TEST_LOG_FUN{};
std::map<std::string_view, std::tuple<TypeTestOneInput, TypeInitialize>>& FuzzTargets() std::map<std::string_view, std::tuple<TypeTestOneInput, TypeInitialize, TypeHidden>>& FuzzTargets()
{ {
static std::map<std::string_view, std::tuple<TypeTestOneInput, TypeInitialize>> g_fuzz_targets; static std::map<std::string_view, std::tuple<TypeTestOneInput, TypeInitialize, TypeHidden>> g_fuzz_targets;
return g_fuzz_targets; return g_fuzz_targets;
} }
void FuzzFrameworkRegisterTarget(std::string_view name, TypeTestOneInput target, TypeInitialize init) void FuzzFrameworkRegisterTarget(std::string_view name, TypeTestOneInput target, TypeInitialize init, TypeHidden hidden)
{ {
const auto it_ins = FuzzTargets().try_emplace(name, std::move(target), std::move(init)); const auto it_ins = FuzzTargets().try_emplace(name, std::move(target), std::move(init), hidden);
Assert(it_ins.second); Assert(it_ins.second);
} }
@ -31,6 +31,7 @@ void initialize()
{ {
if (std::getenv("PRINT_ALL_FUZZ_TARGETS_AND_ABORT")) { if (std::getenv("PRINT_ALL_FUZZ_TARGETS_AND_ABORT")) {
for (const auto& t : FuzzTargets()) { for (const auto& t : FuzzTargets()) {
if (std::get<2>(t.second)) continue;
std::cout << t.first << std::endl; std::cout << t.first << std::endl;
} }
Assert(false); Assert(false);

View file

@ -15,20 +15,24 @@ using FuzzBufferType = Span<const uint8_t>;
using TypeTestOneInput = std::function<void(FuzzBufferType)>; using TypeTestOneInput = std::function<void(FuzzBufferType)>;
using TypeInitialize = std::function<void()>; using TypeInitialize = std::function<void()>;
using TypeHidden = bool;
void FuzzFrameworkRegisterTarget(std::string_view name, TypeTestOneInput target, TypeInitialize init); void FuzzFrameworkRegisterTarget(std::string_view name, TypeTestOneInput target, TypeInitialize init, TypeHidden hidden);
inline void FuzzFrameworkEmptyFun() {} inline void FuzzFrameworkEmptyInitFun() {}
#define FUZZ_TARGET(name) \ #define FUZZ_TARGET(name) \
FUZZ_TARGET_INIT(name, FuzzFrameworkEmptyFun) FUZZ_TARGET_INIT(name, FuzzFrameworkEmptyInitFun)
#define FUZZ_TARGET_INIT(name, init_fun) \ #define FUZZ_TARGET_INIT(name, init_fun) \
FUZZ_TARGET_INIT_HIDDEN(name, init_fun, false)
#define FUZZ_TARGET_INIT_HIDDEN(name, init_fun, hidden) \
void name##_fuzz_target(FuzzBufferType); \ void name##_fuzz_target(FuzzBufferType); \
struct name##_Before_Main { \ struct name##_Before_Main { \
name##_Before_Main() \ name##_Before_Main() \
{ \ { \
FuzzFrameworkRegisterTarget(#name, name##_fuzz_target, init_fun); \ FuzzFrameworkRegisterTarget(#name, name##_fuzz_target, init_fun, hidden); \
} \ } \
} const static g_##name##_before_main; \ } const static g_##name##_before_main; \
void name##_fuzz_target(FuzzBufferType buffer) void name##_fuzz_target(FuzzBufferType buffer)

View file

@ -190,7 +190,7 @@ ECCVerifyHandle handle;
} // namespace } // namespace
FUZZ_TARGET(script_assets_test_minimizer) FUZZ_TARGET_INIT_HIDDEN(script_assets_test_minimizer, FuzzFrameworkEmptyInitFun, /* hidden */ true)
{ {
if (buffer.size() < 2 || buffer.back() != '\n' || buffer[buffer.size() - 2] != ',') return; if (buffer.size() < 2 || buffer.back() != '\n' || buffer[buffer.size() - 2] != ',') return;
const std::string str((const char*)buffer.data(), buffer.size() - 2); const std::string str((const char*)buffer.data(), buffer.size() - 2);