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:
parent
e51f6c4dee
commit
fafca47adc
3 changed files with 21 additions and 16 deletions
|
@ -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);
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Add table
Reference in a new issue