mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 14:38:29 +01:00
tests: Fill fuzzing coverage gaps for functions in script/script.h, script/script_error.h and script/standard.h
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include <script/descriptor.h>
|
||||
#include <script/interpreter.h>
|
||||
#include <script/script.h>
|
||||
#include <script/script_error.h>
|
||||
#include <script/sign.h>
|
||||
#include <script/signingprovider.h>
|
||||
#include <script/standard.h>
|
||||
@@ -21,6 +22,8 @@
|
||||
#include <univalue.h>
|
||||
#include <util/memory.h>
|
||||
|
||||
#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <cstdint>
|
||||
#include <optional>
|
||||
#include <string>
|
||||
@@ -124,4 +127,40 @@ void test_one_input(const std::vector<uint8_t>& buffer)
|
||||
wit.SetNull();
|
||||
}
|
||||
}
|
||||
|
||||
(void)GetOpName(ConsumeOpcodeType(fuzzed_data_provider));
|
||||
(void)ScriptErrorString(static_cast<ScriptError>(fuzzed_data_provider.ConsumeIntegralInRange<int>(0, SCRIPT_ERR_ERROR_COUNT)));
|
||||
|
||||
{
|
||||
const std::vector<uint8_t> bytes = ConsumeRandomLengthByteVector(fuzzed_data_provider);
|
||||
CScript append_script{bytes.begin(), bytes.end()};
|
||||
append_script << fuzzed_data_provider.ConsumeIntegral<int64_t>();
|
||||
append_script << ConsumeOpcodeType(fuzzed_data_provider);
|
||||
append_script << CScriptNum{fuzzed_data_provider.ConsumeIntegral<int64_t>()};
|
||||
append_script << ConsumeRandomLengthByteVector(fuzzed_data_provider);
|
||||
}
|
||||
|
||||
{
|
||||
WitnessUnknown witness_unknown_1{};
|
||||
witness_unknown_1.version = fuzzed_data_provider.ConsumeIntegral<int>();
|
||||
const std::vector<uint8_t> witness_unknown_program_1 = fuzzed_data_provider.ConsumeBytes<uint8_t>(40);
|
||||
witness_unknown_1.length = witness_unknown_program_1.size();
|
||||
std::copy(witness_unknown_program_1.begin(), witness_unknown_program_1.end(), witness_unknown_1.program);
|
||||
|
||||
WitnessUnknown witness_unknown_2{};
|
||||
witness_unknown_2.version = fuzzed_data_provider.ConsumeIntegral<int>();
|
||||
const std::vector<uint8_t> witness_unknown_program_2 = fuzzed_data_provider.ConsumeBytes<uint8_t>(40);
|
||||
witness_unknown_2.length = witness_unknown_program_2.size();
|
||||
std::copy(witness_unknown_program_2.begin(), witness_unknown_program_2.end(), witness_unknown_2.program);
|
||||
|
||||
(void)(witness_unknown_1 == witness_unknown_2);
|
||||
(void)(witness_unknown_1 < witness_unknown_2);
|
||||
}
|
||||
|
||||
{
|
||||
const CTxDestination tx_destination_1 = ConsumeTxDestination(fuzzed_data_provider);
|
||||
const CTxDestination tx_destination_2 = ConsumeTxDestination(fuzzed_data_provider);
|
||||
(void)(tx_destination_1 == tx_destination_2);
|
||||
(void)(tx_destination_1 < tx_destination_2);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user