versionbits: Change BIP9Stats to uint32_t types

This commit is contained in:
Anthony Towns 2023-12-17 19:02:26 +10:00
parent a679040ec1
commit 5da119e5d0
2 changed files with 9 additions and 9 deletions

View file

@ -117,11 +117,11 @@ FUZZ_TARGET(versionbits, .init = initialize)
FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
// making period/max_periods larger slows these tests down significantly // making period/max_periods larger slows these tests down significantly
const int period = 32; const uint32_t period = 32;
const size_t max_periods = 16; const size_t max_periods = 16;
const size_t max_blocks = 2 * period * max_periods; const size_t max_blocks = 2 * period * max_periods;
const int threshold = fuzzed_data_provider.ConsumeIntegralInRange(1, period); const uint32_t threshold = fuzzed_data_provider.ConsumeIntegralInRange<uint32_t>(1, period);
assert(0 < threshold && threshold <= period); // must be able to both pass and fail threshold! assert(0 < threshold && threshold <= period); // must be able to both pass and fail threshold!
// too many blocks at 10min each might cause uint32_t time to overflow if // too many blocks at 10min each might cause uint32_t time to overflow if
@ -199,7 +199,7 @@ FUZZ_TARGET(versionbits, .init = initialize)
while (fuzzed_data_provider.remaining_bytes() > 0) { // early exit; no need for LIMITED_WHILE while (fuzzed_data_provider.remaining_bytes() > 0) { // early exit; no need for LIMITED_WHILE
// all blocks in these periods either do or don't signal // all blocks in these periods either do or don't signal
bool signal = fuzzed_data_provider.ConsumeBool(); bool signal = fuzzed_data_provider.ConsumeBool();
for (int b = 0; b < period; ++b) { for (uint32_t b = 0; b < period; ++b) {
blocks.mine_block(signal); blocks.mine_block(signal);
} }
@ -211,7 +211,7 @@ FUZZ_TARGET(versionbits, .init = initialize)
// now we mine the final period and check that everything looks sane // now we mine the final period and check that everything looks sane
// count the number of signalling blocks // count the number of signalling blocks
int blocks_sig = 0; uint32_t blocks_sig = 0;
// get the info for the first block of the period // get the info for the first block of the period
CBlockIndex* prev = blocks.tip(); CBlockIndex* prev = blocks.tip();
@ -230,7 +230,7 @@ FUZZ_TARGET(versionbits, .init = initialize)
assert(exp_since <= prev_next_height); assert(exp_since <= prev_next_height);
// mine (period-1) blocks and check state // mine (period-1) blocks and check state
for (int b = 1; b < period; ++b) { for (uint32_t b = 1; b < period; ++b) {
const bool signal = (signalling_mask >> (b % 32)) & 1; const bool signal = (signalling_mask >> (b % 32)) & 1;
if (signal) ++blocks_sig; if (signal) ++blocks_sig;

View file

@ -41,13 +41,13 @@ typedef std::map<const CBlockIndex*, ThresholdState> ThresholdConditionCache;
/** Display status of an in-progress BIP9 softfork */ /** Display status of an in-progress BIP9 softfork */
struct BIP9Stats { struct BIP9Stats {
/** Length of blocks of the BIP9 signalling period */ /** Length of blocks of the BIP9 signalling period */
int period; uint32_t period;
/** Number of blocks with the version bit set required to activate the softfork */ /** Number of blocks with the version bit set required to activate the softfork */
int threshold; uint32_t threshold;
/** Number of blocks elapsed since the beginning of the current period */ /** Number of blocks elapsed since the beginning of the current period */
int elapsed; uint32_t elapsed;
/** Number of blocks with the version bit set since the beginning of the current period */ /** Number of blocks with the version bit set since the beginning of the current period */
int count; uint32_t count;
/** False if there are not enough blocks left in this period to pass activation threshold */ /** False if there are not enough blocks left in this period to pass activation threshold */
bool possible; bool possible;
}; };