2020-04-07 11:40:13 -04:00
|
|
|
// Copyright (c) 2020 The Bitcoin Core developers
|
|
|
|
// Distributed under the MIT software license, see the accompanying
|
|
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
|
|
|
|
#include <amount.h>
|
|
|
|
#include <policy/fees.h>
|
|
|
|
#include <test/fuzz/FuzzedDataProvider.h>
|
|
|
|
#include <test/fuzz/fuzz.h>
|
|
|
|
#include <test/fuzz/util.h>
|
2020-04-22 09:56:40 -04:00
|
|
|
#include <util/fees.h>
|
2020-04-07 11:40:13 -04:00
|
|
|
|
|
|
|
#include <cstdint>
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
void test_one_input(const std::vector<uint8_t>& buffer)
|
|
|
|
{
|
|
|
|
FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
|
|
|
|
const CFeeRate minimal_incremental_fee{ConsumeMoney(fuzzed_data_provider)};
|
|
|
|
FeeFilterRounder fee_filter_rounder{minimal_incremental_fee};
|
|
|
|
while (fuzzed_data_provider.ConsumeBool()) {
|
|
|
|
const CAmount current_minimum_fee = ConsumeMoney(fuzzed_data_provider);
|
|
|
|
const CAmount rounded_fee = fee_filter_rounder.round(current_minimum_fee);
|
|
|
|
assert(MoneyRange(rounded_fee));
|
|
|
|
}
|
2020-04-22 09:56:40 -04:00
|
|
|
const FeeReason fee_reason = fuzzed_data_provider.PickValueInArray({FeeReason::NONE, FeeReason::HALF_ESTIMATE, FeeReason::FULL_ESTIMATE, FeeReason::DOUBLE_ESTIMATE, FeeReason::CONSERVATIVE, FeeReason::MEMPOOL_MIN, FeeReason::PAYTXFEE, FeeReason::FALLBACK, FeeReason::REQUIRED});
|
|
|
|
(void)StringForFeeReason(fee_reason);
|
2020-04-07 11:40:13 -04:00
|
|
|
}
|