refactor(provider): random_block and random_block_range functions (#10563)

This commit is contained in:
Jennifer
2024-08-27 15:19:43 +01:00
committed by GitHub
parent 7df7bc2c1a
commit 7ea748e2d3
28 changed files with 505 additions and 307 deletions

View File

@ -925,7 +925,7 @@ mod tests {
use reth_chainspec::MAINNET;
use reth_payload_builder::test_utils::spawn_test_payload_service;
use reth_primitives::{SealedBlock, B256};
use reth_primitives::SealedBlock;
use reth_provider::test_utils::MockEthProvider;
use reth_rpc_types::engine::{ClientCode, ClientVersionV1};
use reth_rpc_types_compat::engine::payload::execution_payload_from_sealed_block;
@ -995,7 +995,7 @@ mod tests {
// tests covering `engine_getPayloadBodiesByRange` and `engine_getPayloadBodiesByHash`
mod get_payload_bodies {
use super::*;
use reth_testing_utils::{generators, generators::random_block_range};
use reth_testing_utils::generators::{self, random_block_range, BlockRangeParams};
#[tokio::test]
async fn invalid_params() {
@ -1033,10 +1033,7 @@ mod tests {
let blocks = random_block_range(
&mut rng,
start..=start + count - 1,
B256::default(),
0..2,
None,
None,
BlockRangeParams { tx_count: 0..2, ..Default::default() },
);
handle.provider.extend_blocks(blocks.iter().cloned().map(|b| (b.hash(), b.unseal())));
@ -1059,10 +1056,7 @@ mod tests {
let blocks = random_block_range(
&mut rng,
start..=start + count - 1,
B256::default(),
0..2,
None,
None,
BlockRangeParams { tx_count: 0..2, ..Default::default() },
);
// Insert only blocks in ranges 1-25 and 50-75
@ -1122,7 +1116,7 @@ mod tests {
mod exchange_transition_configuration {
use super::*;
use reth_primitives::U256;
use reth_testing_utils::generators;
use reth_testing_utils::generators::{self, BlockParams};
#[tokio::test]
async fn terminal_td_mismatch() {
@ -1155,9 +1149,9 @@ mod tests {
let terminal_block_number = 1000;
let consensus_terminal_block =
random_block(&mut rng, terminal_block_number, None, None, None, None, None);
random_block(&mut rng, terminal_block_number, BlockParams::default());
let execution_terminal_block =
random_block(&mut rng, terminal_block_number, None, None, None, None, None);
random_block(&mut rng, terminal_block_number, BlockParams::default());
let transition_config = TransitionConfiguration {
terminal_total_difficulty: handle
@ -1198,15 +1192,8 @@ mod tests {
let (handle, api) = setup_engine_api();
let terminal_block_number = 1000;
let terminal_block = random_block(
&mut generators::rng(),
terminal_block_number,
None,
None,
None,
None,
None,
);
let terminal_block =
random_block(&mut generators::rng(), terminal_block_number, BlockParams::default());
let transition_config = TransitionConfiguration {
terminal_total_difficulty: handle

View File

@ -2,9 +2,7 @@
use alloy_rlp::{Decodable, Error as RlpError};
use assert_matches::assert_matches;
use reth_primitives::{
proofs, Block, Bytes, SealedBlock, TransactionSigned, Withdrawals, B256, U256,
};
use reth_primitives::{proofs, Block, Bytes, SealedBlock, TransactionSigned, Withdrawals, U256};
use reth_rpc_types::engine::{
ExecutionPayload, ExecutionPayloadBodyV1, ExecutionPayloadV1, PayloadError,
};
@ -12,7 +10,9 @@ use reth_rpc_types_compat::engine::payload::{
block_to_payload, block_to_payload_v1, convert_to_payload_body_v1, try_into_sealed_block,
try_payload_v1_to_block,
};
use reth_testing_utils::generators::{self, random_block, random_block_range, random_header, Rng};
use reth_testing_utils::generators::{
self, random_block, random_block_range, random_header, BlockParams, BlockRangeParams, Rng,
};
fn transform_block<F: FnOnce(Block) -> Block>(src: SealedBlock, f: F) -> ExecutionPayload {
let unsealed = src.unseal();
@ -32,7 +32,11 @@ fn transform_block<F: FnOnce(Block) -> Block>(src: SealedBlock, f: F) -> Executi
#[test]
fn payload_body_roundtrip() {
let mut rng = generators::rng();
for block in random_block_range(&mut rng, 0..=99, B256::default(), 0..2, None, None) {
for block in random_block_range(
&mut rng,
0..=99,
BlockRangeParams { tx_count: 0..2, ..Default::default() },
) {
let unsealed = block.clone().unseal();
let payload_body: ExecutionPayloadBodyV1 = convert_to_payload_body_v1(unsealed);
@ -53,7 +57,16 @@ fn payload_body_roundtrip() {
fn payload_validation() {
let mut rng = generators::rng();
let parent = rng.gen();
let block = random_block(&mut rng, 100, Some(parent), Some(3), Some(0), None, None);
let block = random_block(
&mut rng,
100,
BlockParams {
parent: Some(parent),
tx_count: Some(3),
ommers_count: Some(0),
..Default::default()
},
);
// Valid extra data
let block_with_valid_extra_data = transform_block(block.clone(), |mut b| {