Changeset View
Changeset View
Standalone View
Standalone View
src/test/fuzz/scriptnum_ops.cpp
Show All 33 Lines | void test_one_input(const std::vector<uint8_t> &buffer) { | ||||
FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); | FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); | ||||
CScriptNum script_num = ConsumeScriptNum(fuzzed_data_provider); | CScriptNum script_num = ConsumeScriptNum(fuzzed_data_provider); | ||||
while (fuzzed_data_provider.remaining_bytes() > 0) { | while (fuzzed_data_provider.remaining_bytes() > 0) { | ||||
switch (fuzzed_data_provider.ConsumeIntegralInRange(0, 11)) { | switch (fuzzed_data_provider.ConsumeIntegralInRange(0, 11)) { | ||||
case 0: { | case 0: { | ||||
const int64_t i = | const int64_t i = | ||||
fuzzed_data_provider.ConsumeIntegral<int64_t>(); | fuzzed_data_provider.ConsumeIntegral<int64_t>(); | ||||
assert((script_num == i) != (script_num != i)); | assert((script_num == i) != (script_num != i)); | ||||
assert((script_num <= i) != script_num > i); | assert((script_num <= i) != (script_num > i)); | ||||
assert((script_num >= i) != (script_num < i)); | assert((script_num >= i) != (script_num < i)); | ||||
// Avoid signed integer overflow: | // Avoid signed integer overflow: | ||||
// script/script.h:264:93: runtime error: signed integer | // script/script.h:264:93: runtime error: signed integer | ||||
// overflow: -2261405121394637306 + -9223372036854775802 cannot | // overflow: -2261405121394637306 + -9223372036854775802 cannot | ||||
// be represented in type 'long' | // be represented in type 'long' | ||||
if (IsValidAddition(script_num, CScriptNum{i})) { | if (IsValidAddition(script_num, CScriptNum{i})) { | ||||
assert((script_num + i) - i == script_num); | assert((script_num + i) - i == script_num); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 136 Lines • Show Last 20 Lines |