File tree Expand file tree Collapse file tree 2 files changed +10
-7
lines changed Expand file tree Collapse file tree 2 files changed +10
-7
lines changed Original file line number Diff line number Diff line change 1414#define LLVM_FUZZER_FUZZED_DATA_PROVIDER_H_
1515
1616#include < algorithm>
17+ #include < array>
1718#include < climits>
1819#include < cstddef>
1920#include < cstdint>
@@ -71,6 +72,8 @@ class FuzzedDataProvider {
7172
7273 // Returns a value from the given array.
7374 template <typename T, size_t size> T PickValueInArray (const T (&array)[size]);
75+ template <typename T, size_t size>
76+ T PickValueInArray (const std::array<T, size> &array);
7477 template <typename T> T PickValueInArray (std::initializer_list<const T> list);
7578
7679 // Writes data to the given destination and returns number of bytes written.
@@ -301,6 +304,12 @@ T FuzzedDataProvider::PickValueInArray(const T (&array)[size]) {
301304 return array[ConsumeIntegralInRange<size_t >(0 , size - 1 )];
302305}
303306
307+ template <typename T, size_t size>
308+ T FuzzedDataProvider::PickValueInArray (const std::array<T, size> &array) {
309+ static_assert (size > 0 , " The array must be non empty." );
310+ return array[ConsumeIntegralInRange<size_t >(0 , size - 1 )];
311+ }
312+
304313template <typename T>
305314T FuzzedDataProvider::PickValueInArray (std::initializer_list<const T> list) {
306315 // TODO(Dor1s): switch to static_assert once C++14 is allowed.
Original file line number Diff line number Diff line change @@ -34,12 +34,6 @@ constexpr FeeEstimateHorizon ALL_FEE_EST_HORIZON[] = {
3434 FeeEstimateHorizon::MED_HALFLIFE,
3535 FeeEstimateHorizon::LONG_HALFLIFE,
3636};
37-
38- constexpr OutputType ALL_OUTPUT_TYPE[] = {
39- OutputType::LEGACY,
40- OutputType::P2SH_SEGWIT,
41- OutputType::BECH32,
42- };
4337}; // namespace
4438
4539// The fuzzing kitchen sink: Fuzzing harness for functions that need to be
@@ -56,7 +50,7 @@ FUZZ_TARGET(kitchen_sink)
5650
5751 (void )StringForFeeEstimateHorizon (fuzzed_data_provider.PickValueInArray (ALL_FEE_EST_HORIZON));
5852
59- const OutputType output_type = fuzzed_data_provider.PickValueInArray (ALL_OUTPUT_TYPE );
53+ const OutputType output_type = fuzzed_data_provider.PickValueInArray (OUTPUT_TYPES );
6054 const std::string& output_type_string = FormatOutputType (output_type);
6155 OutputType output_type_parsed;
6256 const bool parsed = ParseOutputType (output_type_string, output_type_parsed);
You can’t perform that action at this time.
0 commit comments