Skip to content

Commit

Permalink
add utils and remove unused import
Browse files Browse the repository at this point in the history
  • Loading branch information
azurwastaken committed Sep 27, 2024
1 parent c542af8 commit 5ade84c
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 40 deletions.
3 changes: 3 additions & 0 deletions crates/client/block_import/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ repository.workspace = true
version.workspace = true
license.workspace = true

[features]
default = []
testing = []
[dependencies]
anyhow.workspace = true
bitvec.workspace = true
Expand Down
2 changes: 1 addition & 1 deletion crates/client/block_import/src/tests.rs
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
#[cfg(test)]
#[cfg(any(test, feature = "testing"))]
pub mod block_import_utils;
27 changes: 26 additions & 1 deletion crates/client/block_import/src/tests/block_import_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ use mp_block::header::{GasPrices, L1DataAvailabilityMode};
use mp_block::Header;
use mp_chain_config::StarknetVersion;
use mp_state_update::StateDiff;
use starknet_core::types::Felt;

use crate::{
BlockValidationContext, PreValidatedBlock, PreValidatedPendingBlock, UnverifiedHeader, ValidatedCommitments,
BlockValidationContext, PreValidatedBlock, PreValidatedPendingBlock, UnverifiedCommitments, UnverifiedFullBlock, UnverifiedHeader, ValidatedCommitments
};
use starknet_api::{core::ChainId, felt};

Expand Down Expand Up @@ -105,6 +106,30 @@ pub fn create_dummy_block() -> PreValidatedBlock {
}
}

/// Creates a dummy PreValidatedBlock for testing purposes.
///
/// This function generates a PreValidatedBlock with predefined values,
/// useful for testing update_tries scenarios.
pub fn create_dummy_unverified_full_block() -> UnverifiedFullBlock {
UnverifiedFullBlock {
header: UnverifiedHeader {
parent_block_hash: Some(Felt::ZERO),
sequencer_address: Felt::ZERO,
block_timestamp: 0,
protocol_version: StarknetVersion::default(),
l1_gas_price: GasPrices::default(),
l1_da_mode: L1DataAvailabilityMode::Blob,
},
transactions: vec![],
unverified_block_number: Some(0),
state_diff: StateDiff::default(),
receipts: vec![],
declared_classes: vec![],
commitments: UnverifiedCommitments::default(),
trusted_converted_classes: vec![],
}
}

/// Creates a dummy PreValidatedPendingBlock for testing purposes.
pub fn create_dummy_pending_block() -> PreValidatedPendingBlock {
PreValidatedPendingBlock {
Expand Down
1 change: 1 addition & 0 deletions crates/client/sync/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,4 @@ httpmock = { workspace = true }
tempfile = { workspace = true }
rstest = { workspace = true }
mc-db = { workspace = true, features = ["testing"] }
mc-block-import = { workspace = true , features = ["testing"]}
43 changes: 5 additions & 38 deletions crates/client/sync/src/l2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -252,15 +252,14 @@ pub async fn sync(
mod tests {
use super::*;
use crate::tests::utils::gateway::{test_setup, TestContext};
use mc_block_import::tests::block_import_utils::create_dummy_unverified_full_block;
use mc_block_import::BlockImporter;
use mc_block_import::{UnverifiedCommitments, UnverifiedHeader};
use mc_db::{db_block_id::DbBlockId, MadaraBackend};
use mc_metrics::MetricsRegistry;
use mc_telemetry::TelemetryService;
use mp_block::header::{GasPrices, L1DataAvailabilityMode};
use mp_block::header::L1DataAvailabilityMode;
use mp_block::MadaraBlock;
use mp_chain_config::StarknetVersion;
use mp_state_update::StateDiff;
use rstest::rstest;
use starknet_types_core::felt::Felt;
use std::sync::Arc;
Expand Down Expand Up @@ -293,23 +292,7 @@ mod tests {
let validation = BlockValidationContext::new(backend.chain_config().chain_id.clone());
let telemetry = TelemetryService::new(true, vec![]).unwrap().new_handle();

let mock_block = UnverifiedFullBlock {
header: UnverifiedHeader {
parent_block_hash: Some(Felt::ZERO),
sequencer_address: Felt::ZERO,
block_timestamp: 0,
protocol_version: StarknetVersion::default(),
l1_gas_price: GasPrices::default(),
l1_da_mode: L1DataAvailabilityMode::Blob,
},
transactions: vec![],
unverified_block_number: Some(0),
state_diff: StateDiff::default(),
receipts: vec![],
declared_classes: vec![],
commitments: UnverifiedCommitments::default(),
trusted_converted_classes: vec![],
};
let mock_block = create_dummy_unverified_full_block();

let task_handle = tokio::spawn(l2_verify_and_apply_task(
backend.clone(),
Expand Down Expand Up @@ -368,23 +351,7 @@ mod tests {
Arc::new(BlockImporter::new(backend.clone(), &MetricsRegistry::dummy(), None, true).unwrap());
let validation = BlockValidationContext::new(backend.chain_config().chain_id.clone());

let mock_block = UnverifiedFullBlock {
header: UnverifiedHeader {
parent_block_hash: Some(Felt::ZERO),
sequencer_address: Felt::ZERO,
block_timestamp: 0,
protocol_version: StarknetVersion::default(),
l1_gas_price: GasPrices::default(),
l1_da_mode: L1DataAvailabilityMode::Blob,
},
transactions: vec![],
unverified_block_number: Some(1),
state_diff: StateDiff::default(),
receipts: vec![],
declared_classes: vec![],
commitments: UnverifiedCommitments::default(),
trusted_converted_classes: vec![],
};
let mock_block = create_dummy_unverified_full_block();

updates_sender.send(mock_block).await.unwrap();

Expand All @@ -394,7 +361,7 @@ mod tests {
let result = tokio::time::timeout(std::time::Duration::from_secs(5), output_receiver.recv()).await;
match result {
Ok(Some(b)) => {
assert_eq!(b.unverified_block_number, Some(1), "Block number does not match");
assert_eq!(b.unverified_block_number, Some(0), "Block number does not match");
}
Ok(None) => panic!("Channel closed without receiving a result"),
Err(_) => panic!("Timeout reached while waiting for result"),
Expand Down

0 comments on commit 5ade84c

Please sign in to comment.