diff options
author | MarcoFalke <falke.marco@gmail.com> | 2021-05-07 11:04:01 +0200 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2021-05-07 11:01:05 +0200 |
commit | fa5cb6b268554fe0f272833794a98106872ac6a5 (patch) | |
tree | b7b86ac8aed0506dfba141d024168ec067eeae2a /src/test | |
parent | eb9a1fe03779bf05062b70f14190cb23ff42b46f (diff) |
fuzz: Add WRITE_ALL_FUZZ_TARGETS_AND_ABORT
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/fuzz/fuzz.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/test/fuzz/fuzz.cpp b/src/test/fuzz/fuzz.cpp index 1fab46ff13..0d8d960d56 100644 --- a/src/test/fuzz/fuzz.cpp +++ b/src/test/fuzz/fuzz.cpp @@ -29,13 +29,24 @@ static TypeTestOneInput* g_test_one_input{nullptr}; void initialize() { + bool should_abort{false}; if (std::getenv("PRINT_ALL_FUZZ_TARGETS_AND_ABORT")) { for (const auto& t : FuzzTargets()) { if (std::get<2>(t.second)) continue; std::cout << t.first << std::endl; } - Assert(false); + should_abort = true; } + if (const char* out_path = std::getenv("WRITE_ALL_FUZZ_TARGETS_AND_ABORT")) { + std::cout << "Writing all fuzz target names to '" << out_path << "'." << std::endl; + std::ofstream out_stream(out_path, std::ios::binary); + for (const auto& t : FuzzTargets()) { + if (std::get<2>(t.second)) continue; + out_stream << t.first << std::endl; + } + should_abort = true; + } + Assert(!should_abort); std::string_view fuzz_target{Assert(std::getenv("FUZZ"))}; const auto it = FuzzTargets().find(fuzz_target); Assert(it != FuzzTargets().end()); |