Skip to content

Commit de596b0

Browse files
committed
apollo_integration_tests: add proposal margins to end to end flow args
1 parent 16e9c27 commit de596b0

10 files changed

+71
-18
lines changed

crates/apollo_integration_tests/src/flow_test_setup.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ use crate::utils::{
6565
spawn_local_eth_to_strk_oracle,
6666
spawn_local_success_recorder,
6767
AccumulatedTransactions,
68+
ProposalMarginMillis,
6869
};
6970

7071
pub const NUM_OF_SEQUENCERS: usize = 2;
@@ -96,6 +97,7 @@ impl FlowTestSetup {
9697
block_max_capacity_gas: GasAmount,
9798
allow_bootstrap_txs: bool,
9899
instance_indices: [u16; 3],
100+
proposal_margin_millis: Option<ProposalMarginMillis>,
99101
) -> Self {
100102
let chain_info = ChainInfo::create_for_testing();
101103
let [shared_instance_index, sequencer_0_instance_index, sequencer_1_instance_index] =
@@ -107,6 +109,7 @@ impl FlowTestSetup {
107109
create_consensus_manager_configs_and_channels(
108110
available_ports.get_next_ports(NUM_OF_SEQUENCERS + 1),
109111
&chain_info.chain_id,
112+
proposal_margin_millis,
110113
);
111114
let [sequencer_0_consensus_manager_config, sequencer_1_consensus_manager_config] =
112115
consensus_manager_configs.try_into().unwrap();
@@ -325,6 +328,7 @@ impl FlowSequencerSetup {
325328
pub fn create_consensus_manager_configs_and_channels(
326329
ports: Vec<u16>,
327330
chain_id: &ChainId,
331+
proposal_margin_millis: Option<ProposalMarginMillis>,
328332
) -> (
329333
Vec<ConsensusManagerConfig>,
330334
BroadcastTopicChannels<StreamMessage<ProposalPart, HeightAndRound>>,
@@ -338,6 +342,7 @@ pub fn create_consensus_manager_configs_and_channels(
338342
network_configs,
339343
n_network_configs,
340344
chain_id,
345+
proposal_margin_millis,
341346
);
342347

343348
for (i, config) in consensus_manager_configs.iter_mut().enumerate() {

crates/apollo_integration_tests/src/integration_test_manager.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,6 +1118,7 @@ async fn get_sequencer_setup_configs(
11181118
),
11191119
component_configs_len,
11201120
&chain_info.chain_id,
1121+
None,
11211122
);
11221123

11231124
let node_indices: HashSet<usize> = (0..component_configs_len).collect();

crates/apollo_integration_tests/src/utils.rs

Lines changed: 51 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,21 @@ pub type CreateL1ToL2MessagesArgsFn =
106106
fn(&mut MultiAccountTransactionGenerator) -> Vec<L1HandlerTransaction>;
107107
pub type TestTxHashesFn = fn(&[TransactionHash]) -> Vec<TransactionHash>;
108108

109+
#[derive(Clone, Copy, Debug)]
110+
pub struct ProposalMarginMillis {
111+
pub build_proposal_margin_millis: Duration,
112+
pub validate_proposal_margin_millis: Duration,
113+
}
114+
115+
impl ProposalMarginMillis {
116+
pub fn new(build_proposal_margin_millis: u64, validate_proposal_margin_millis: u64) -> Self {
117+
Self {
118+
build_proposal_margin_millis: Duration::from_millis(build_proposal_margin_millis),
119+
validate_proposal_margin_millis: Duration::from_millis(validate_proposal_margin_millis),
120+
}
121+
}
122+
}
123+
109124
pub trait TestScenario {
110125
fn create_txs(
111126
&self,
@@ -344,6 +359,7 @@ pub(crate) fn create_consensus_manager_configs_from_network_configs(
344359
network_configs: Vec<NetworkConfig>,
345360
n_composed_nodes: usize,
346361
chain_id: &ChainId,
362+
proposal_margin_millis: Option<ProposalMarginMillis>,
347363
) -> Vec<ConsensusManagerConfig> {
348364
let num_validators = u64::try_from(n_composed_nodes).unwrap();
349365
let mut timeouts = TimeoutsConfig::default();
@@ -352,7 +368,21 @@ pub(crate) fn create_consensus_manager_configs_from_network_configs(
352368
network_configs
353369
.into_iter()
354370
// TODO(Matan): Get config from default config file.
355-
.map(|network_config| ConsensusManagerConfig {
371+
.map(|network_config| {
372+
let mut context_config = ContextConfig {
373+
static_config: ContextStaticConfig {
374+
num_validators,
375+
chain_id: chain_id.clone(),
376+
builder_address: ContractAddress::from(4_u128),
377+
..Default::default()
378+
},
379+
..Default::default()
380+
};
381+
if let Some(build_margin_millis) = proposal_margin_millis {
382+
context_config.static_config.build_proposal_margin_millis = build_margin_millis.build_proposal_margin_millis;
383+
context_config.static_config.validate_proposal_margin_millis = build_margin_millis.validate_proposal_margin_millis;
384+
}
385+
ConsensusManagerConfig {
356386
network_config,
357387
consensus_manager_config: ConsensusConfig {
358388
dynamic_config: ConsensusDynamicConfig {
@@ -370,21 +400,13 @@ pub(crate) fn create_consensus_manager_configs_from_network_configs(
370400
startup_delay: Duration::from_secs(15),
371401
},
372402
},
373-
context_config: ContextConfig {
374-
static_config: ContextStaticConfig {
375-
num_validators,
376-
chain_id: chain_id.clone(),
377-
builder_address: ContractAddress::from(4_u128),
378-
..Default::default()
379-
},
380-
..Default::default()
381-
},
403+
context_config,
382404
cende_config: CendeConfig {
383405
..Default::default()
384406
},
385407
assume_no_malicious_validators: true,
386408
..Default::default()
387-
})
409+
}})
388410
.collect()
389411
}
390412

@@ -812,6 +834,7 @@ pub struct EndToEndFlowArgs {
812834
pub expecting_full_blocks: bool,
813835
pub expecting_reverted_transactions: bool,
814836
pub allow_bootstrap_txs: bool,
837+
pub proposal_margin_millis: Option<ProposalMarginMillis>,
815838
}
816839

817840
impl EndToEndFlowArgs {
@@ -828,6 +851,7 @@ impl EndToEndFlowArgs {
828851
expecting_full_blocks: false,
829852
expecting_reverted_transactions: false,
830853
allow_bootstrap_txs: false,
854+
proposal_margin_millis: None,
831855
}
832856
}
833857

@@ -846,6 +870,20 @@ impl EndToEndFlowArgs {
846870
pub fn instance_indices(self, instance_indices: [u16; 3]) -> Self {
847871
Self { instance_indices, ..self }
848872
}
873+
874+
pub fn proposal_margin_millis(
875+
self,
876+
build_proposal_margin_millis: u64,
877+
validate_proposal_margin_millis: u64,
878+
) -> Self {
879+
Self {
880+
proposal_margin_millis: Some(ProposalMarginMillis::new(
881+
build_proposal_margin_millis,
882+
validate_proposal_margin_millis,
883+
)),
884+
..self
885+
}
886+
}
849887
}
850888

851889
// Note: run integration/flow tests from separate files in `tests/`, which helps cargo ensure
@@ -860,6 +898,7 @@ pub async fn end_to_end_flow(args: EndToEndFlowArgs) {
860898
expecting_full_blocks,
861899
expecting_reverted_transactions,
862900
allow_bootstrap_txs,
901+
proposal_margin_millis,
863902
} = args;
864903
configure_tracing().await;
865904

@@ -876,6 +915,7 @@ pub async fn end_to_end_flow(args: EndToEndFlowArgs) {
876915
block_max_capacity_gas,
877916
allow_bootstrap_txs,
878917
instance_indices,
918+
proposal_margin_millis,
879919
)
880920
.await;
881921

crates/apollo_integration_tests/tests/bootstrap_declare.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ async fn bootstrap_declare() {
2828
create_bootstrap_declare_scenario(),
2929
GasAmount(29000000),
3030
)
31-
.allow_bootstrap_txs(),
31+
.allow_bootstrap_txs()
32+
.proposal_margin_millis(100, 1000),
3233
)
3334
.await
3435
}

crates/apollo_integration_tests/tests/declare_tx_flow_test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ async fn declare_tx_flow() {
2020
create_test_scenarios(),
2121
BouncerWeights::default().proving_gas,
2222
)
23-
.instance_indices([0, 1, 2]),
23+
.instance_indices([0, 1, 2])
24+
.proposal_margin_millis(100, 1000),
2425
)
2526
.await
2627
}

crates/apollo_integration_tests/tests/deploy_account_and_invoke_flow_test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ async fn deploy_account_and_invoke_flow() {
2222
create_test_scenarios(),
2323
BouncerWeights::default().proving_gas,
2424
)
25-
.instance_indices([3, 4, 5]),
25+
.instance_indices([3, 4, 5])
26+
.proposal_margin_millis(100, 1000),
2627
)
2728
.await
2829
}

crates/apollo_integration_tests/tests/funding_txs_flow_test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ async fn funding_txs_flow() {
2121
create_test_scenarios(),
2222
BouncerWeights::default().proving_gas,
2323
)
24-
.instance_indices([6, 7, 8]),
24+
.instance_indices([6, 7, 8])
25+
.proposal_margin_millis(100, 1000),
2526
)
2627
.await
2728
}

crates/apollo_integration_tests/tests/l1_to_l2_message_flow_test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ async fn l1_to_l2_message_flow() {
1818
create_test_scenarios(),
1919
BouncerWeights::default().proving_gas,
2020
)
21-
.instance_indices([9, 10, 11]),
21+
.instance_indices([9, 10, 11])
22+
.proposal_margin_millis(100, 1000),
2223
)
2324
.await
2425
}

crates/apollo_integration_tests/tests/multiple_account_txs_flow_test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ async fn multiple_account_txs_flow() {
2121
create_test_scenarios(),
2222
BouncerWeights::default().proving_gas,
2323
)
24-
.instance_indices([12, 13, 14]),
24+
.instance_indices([12, 13, 14])
25+
.proposal_margin_millis(100, 1000),
2526
)
2627
.await
2728
}

crates/apollo_integration_tests/tests/reverted_l1_handler_tx_flow_test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ async fn reverted_l1_handler_tx_flow() {
1919
create_test_scenarios(),
2020
BouncerWeights::default().proving_gas,
2121
)
22-
.expecting_reverted_transactions(),
22+
.expecting_reverted_transactions()
23+
.proposal_margin_millis(100, 1000),
2324
)
2425
.await
2526
}

0 commit comments

Comments
 (0)