Skip to content

Commit

Permalink
test(blockifier): l1 bounds -> all bounds (or parametrize) in account…
Browse files Browse the repository at this point in the history
… transaction test
  • Loading branch information
dorimedini-starkware committed Oct 15, 2024
1 parent 37e762f commit d14a88e
Showing 1 changed file with 31 additions and 22 deletions.
53 changes: 31 additions & 22 deletions crates/blockifier/src/transaction/account_transactions_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ use crate::transaction::transactions::{DeclareTransaction, ExecutableTransaction
use crate::utils::u64_from_usize;

#[rstest]
fn test_circuit(block_context: BlockContext, default_l1_resource_bounds: ValidResourceBounds) {
fn test_circuit(block_context: BlockContext, default_all_resource_bounds: ValidResourceBounds) {
let test_contract = FeatureContract::TestContract(CairoVersion::Cairo1);
let account = FeatureContract::AccountWithoutValidations(CairoVersion::Cairo1);
let chain_info = &block_context.chain_info;
Expand All @@ -121,7 +121,7 @@ fn test_circuit(block_context: BlockContext, default_l1_resource_bounds: ValidRe
state,
&block_context,
invoke_tx_args! {
resource_bounds: default_l1_resource_bounds,
resource_bounds: default_all_resource_bounds,
..tx_args
},
)
Expand All @@ -131,7 +131,7 @@ fn test_circuit(block_context: BlockContext, default_l1_resource_bounds: ValidRe
}

#[rstest]
fn test_rc96_holes(block_context: BlockContext, default_l1_resource_bounds: ValidResourceBounds) {
fn test_rc96_holes(block_context: BlockContext, default_all_resource_bounds: ValidResourceBounds) {
let test_contract = FeatureContract::TestContract(CairoVersion::Cairo1);
let account = FeatureContract::AccountWithoutValidations(CairoVersion::Cairo1);
let chain_info = &block_context.chain_info;
Expand All @@ -154,7 +154,7 @@ fn test_rc96_holes(block_context: BlockContext, default_l1_resource_bounds: Vali
state,
&block_context,
invoke_tx_args! {
resource_bounds: default_l1_resource_bounds,
resource_bounds: default_all_resource_bounds,
..tx_args
},
)
Expand Down Expand Up @@ -282,12 +282,15 @@ fn test_assert_actual_fee_in_bounds(

// TODO(Dori, 15/9/2023): Convert version variance to attribute macro.
#[rstest]
#[case::v0(TransactionVersion::ZERO, default_all_resource_bounds())]
#[case::v1(TransactionVersion::ONE, default_all_resource_bounds())]
#[case::l1_bounds(TransactionVersion::THREE, default_l1_resource_bounds())]
#[case::all_bounds(TransactionVersion::THREE, default_all_resource_bounds())]
fn test_account_flow_test(
block_context: BlockContext,
max_fee: Fee,
default_l1_resource_bounds: ValidResourceBounds,
#[values(TransactionVersion::ZERO, TransactionVersion::ONE, TransactionVersion::THREE)]
tx_version: TransactionVersion,
#[case] tx_version: TransactionVersion,
#[case] resource_bounds: ValidResourceBounds,
#[values(true, false)] only_query: bool,
) {
let TestInitData { mut state, account_address, contract_address, mut nonce_manager } =
Expand All @@ -302,7 +305,7 @@ fn test_account_flow_test(
sender_address: account_address,
calldata: create_trivial_calldata(contract_address),
version: tx_version,
resource_bounds: default_l1_resource_bounds,
resource_bounds,
nonce: nonce_manager.next(account_address),
only_query,
},
Expand All @@ -317,7 +320,7 @@ fn test_account_flow_test(
fn test_invoke_tx_from_non_deployed_account(
block_context: BlockContext,
max_fee: Fee,
default_l1_resource_bounds: ValidResourceBounds,
default_all_resource_bounds: ValidResourceBounds,
#[case] tx_version: TransactionVersion,
) {
let TestInitData { mut state, account_address, contract_address: _, mut nonce_manager } =
Expand All @@ -339,7 +342,7 @@ fn test_invoke_tx_from_non_deployed_account(
felt!(1_u8), // Calldata length.
felt!(2_u8) // Calldata: num.
],
resource_bounds: default_l1_resource_bounds,
resource_bounds: default_all_resource_bounds,
version: tx_version,
nonce: nonce_manager.next(account_address),
},
Expand All @@ -366,7 +369,8 @@ fn test_infinite_recursion(
#[values(true, false)] success: bool,
#[values(true, false)] normal_recurse: bool,
mut block_context: BlockContext,
default_l1_resource_bounds: ValidResourceBounds,
#[values(default_l1_resource_bounds(), default_all_resource_bounds())]
resource_bounds: ValidResourceBounds,
) {
// Limit the number of execution steps (so we quickly hit the limit).
block_context.versioned_constants.invoke_tx_max_n_steps = 4200;
Expand Down Expand Up @@ -394,7 +398,7 @@ fn test_infinite_recursion(
&mut state,
&block_context,
invoke_tx_args! {
resource_bounds: default_l1_resource_bounds,
resource_bounds,
sender_address: account_address,
calldata: execute_calldata,
nonce: nonce_manager.next(account_address),
Expand Down Expand Up @@ -551,14 +555,15 @@ fn test_max_fee_limit_validate(
}

#[rstest]
#[case(TransactionVersion::ONE)]
#[case(TransactionVersion::THREE)]
#[case::v1(TransactionVersion::ONE, default_all_resource_bounds())]
#[case::l1_bounds(TransactionVersion::THREE, default_l1_resource_bounds())]
#[case::all_bounds(TransactionVersion::THREE, default_all_resource_bounds())]
fn test_recursion_depth_exceeded(
#[case] tx_version: TransactionVersion,
#[values(CairoVersion::Cairo0, CairoVersion::Cairo1)] cairo_version: CairoVersion,
block_context: BlockContext,
max_fee: Fee,
default_l1_resource_bounds: ValidResourceBounds,
#[case] resource_bounds: ValidResourceBounds,
) {
let TestInitData { mut state, account_address, contract_address, mut nonce_manager } =
create_test_init_data(&block_context.chain_info, cairo_version);
Expand Down Expand Up @@ -592,7 +597,7 @@ fn test_recursion_depth_exceeded(
calldata,
version: tx_version,
nonce: nonce_manager.next(account_address),
resource_bounds: default_l1_resource_bounds,
resource_bounds,
};
let tx_execution_info = run_invoke_tx(&mut state, &block_context, invoke_args.clone());

Expand Down Expand Up @@ -626,6 +631,7 @@ fn test_recursion_depth_exceeded(
fn test_revert_invoke(
block_context: BlockContext,
max_fee: Fee,
default_all_resource_bounds: ValidResourceBounds,
#[case] transaction_version: TransactionVersion,
#[case] fee_type: FeeType,
) {
Expand All @@ -644,6 +650,7 @@ fn test_revert_invoke(
&block_context,
invoke_tx_args! {
max_fee,
resource_bounds: default_all_resource_bounds,
sender_address: account_address,
calldata: create_calldata(
test_contract_address,
Expand Down Expand Up @@ -796,13 +803,14 @@ fn recursive_function_calldata(
/// Tests that reverted transactions are charged more fee and steps than their (recursive) prefix
/// successful counterparts.
/// In this test reverted transactions are valid function calls that got insufficient steps limit.
#[case(TransactionVersion::ONE)]
#[case(TransactionVersion::THREE)]
#[case::v1(TransactionVersion::ONE, default_all_resource_bounds())]
#[case::l1_bounds(TransactionVersion::THREE, default_l1_resource_bounds())]
#[case::all_bounds(TransactionVersion::THREE, default_all_resource_bounds())]
fn test_reverted_reach_steps_limit(
max_fee: Fee,
default_l1_resource_bounds: ValidResourceBounds,
mut block_context: BlockContext,
#[case] version: TransactionVersion,
#[case] resource_bounds: ValidResourceBounds,
#[values(CairoVersion::Cairo0, CairoVersion::Cairo1)] cairo_version: CairoVersion,
) {
let TestInitData { mut state, account_address, contract_address, mut nonce_manager } =
Expand All @@ -812,7 +820,7 @@ fn test_reverted_reach_steps_limit(
block_context.versioned_constants.invoke_tx_max_n_steps = 6000;
let recursion_base_args = invoke_tx_args! {
max_fee,
resource_bounds: default_l1_resource_bounds,
resource_bounds,
sender_address: account_address,
version,
};
Expand Down Expand Up @@ -910,13 +918,14 @@ fn test_reverted_reach_steps_limit(
/// asserts false. We test deltas between consecutive depths, and further depths.
fn test_n_reverted_steps(
block_context: BlockContext,
default_l1_resource_bounds: ValidResourceBounds,
#[values(default_l1_resource_bounds(), default_all_resource_bounds())]
resource_bounds: ValidResourceBounds,
#[values(CairoVersion::Cairo0, CairoVersion::Cairo1)] cairo_version: CairoVersion,
) {
let TestInitData { mut state, account_address, contract_address, mut nonce_manager } =
create_test_init_data(&block_context.chain_info, cairo_version);
let recursion_base_args = invoke_tx_args! {
resource_bounds: default_l1_resource_bounds,
resource_bounds,
sender_address: account_address,
};

Expand Down

0 comments on commit d14a88e

Please sign in to comment.