aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2020-04-03 09:07:00 +0800
committerMarcoFalke <falke.marco@gmail.com>2020-04-03 09:02:34 +0800
commitfaa64af960b64b522bb088e836c9d8cd6254c6c8 (patch)
tree5e42d98b296b10ab90a8b51ce57a4752cd6fbd04 /src/test
parentdce6f3b29b4197b8eea91f5919d56eb222ea8959 (diff)
fuzz: Add CScriptNum::getint coverage
Diffstat (limited to 'src/test')
-rw-r--r--src/test/fuzz/integer.cpp12
-rw-r--r--src/test/fuzz/scriptnum_ops.cpp1
2 files changed, 13 insertions, 0 deletions
diff --git a/src/test/fuzz/integer.cpp b/src/test/fuzz/integer.cpp
index bd2e20030d..fff2fabd17 100644
--- a/src/test/fuzz/integer.cpp
+++ b/src/test/fuzz/integer.cpp
@@ -126,9 +126,21 @@ void test_one_input(const std::vector<uint8_t>& buffer)
assert(parsed_money == i64);
}
}
+ if (i32 >= 0 && i32 <= 16) {
+ assert(i32 == CScript::DecodeOP_N(CScript::EncodeOP_N(i32)));
+ }
+
const std::chrono::seconds seconds{i64};
assert(count_seconds(seconds) == i64);
+ const CScriptNum script_num{i64};
+ (void)script_num.getint();
+ // Avoid negation failure:
+ // script/script.h:332:35: runtime error: negation of -9223372036854775808 cannot be represented in type 'int64_t' (aka 'long'); cast to an unsigned type to negate this value to itself
+ if (script_num != CScriptNum{std::numeric_limits<int64_t>::min()}) {
+ (void)script_num.getvch();
+ }
+
const arith_uint256 au256 = UintToArith256(u256);
assert(ArithToUint256(au256) == u256);
assert(uint256S(au256.GetHex()) == u256);
diff --git a/src/test/fuzz/scriptnum_ops.cpp b/src/test/fuzz/scriptnum_ops.cpp
index db44bb9e19..42b1432f13 100644
--- a/src/test/fuzz/scriptnum_ops.cpp
+++ b/src/test/fuzz/scriptnum_ops.cpp
@@ -128,6 +128,7 @@ void test_one_input(const std::vector<uint8_t>& buffer)
script_num &= fuzzed_data_provider.ConsumeIntegral<int64_t>();
break;
}
+ (void)script_num.getint();
// Avoid negation failure:
// script/script.h:332:35: runtime error: negation of -9223372036854775808 cannot be represented in type 'int64_t' (aka 'long'); cast to an unsigned type to negate this value to itself
if (script_num != CScriptNum{std::numeric_limits<int64_t>::min()}) {