Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(blockifier_test_utils): move functions from blockifier::test_utils and update dependencies #3931

Merged
merged 1 commit into from
Feb 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ resolver = "2"
members = [
"crates/blockifier",
"crates/blockifier_reexecution",
"crates/blockifier_test_utils",
"crates/mempool_test_utils",
"crates/native_blockifier",
"crates/papyrus_base_layer",
Expand Down Expand Up @@ -98,6 +99,7 @@ bincode = "1.3.3"
bisection = "0.1.0"
bitvec = "1.0.1"
blockifier = { path = "crates/blockifier", version = "0.0.0" }
blockifier_test_utils = { path = "crates/blockifier_test_utils", version = "0.0.0" }
byteorder = "1.4.3"
bytes = "1"
cached = "0.44.0"
Expand Down
1 change: 1 addition & 0 deletions commitlint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ const Configuration = {
'scope-enum': [2, 'always', [
'blockifier',
'blockifier_reexecution',
'blockifier_test_utils',
'cairo_native',
'ci',
'committer',
Expand Down
3 changes: 3 additions & 0 deletions crates/blockifier/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ cairo_native = ["dep:cairo-native", "starknet_sierra_multicompile/cairo_native"]
native_blockifier = []
reexecution = ["transaction_serde"]
testing = [
"blockifier_test_utils",
"rand",
"rstest",
"rstest_reuse",
Expand All @@ -32,6 +33,7 @@ ark-ec.workspace = true
ark-ff.workspace = true
ark-secp256k1.workspace = true
ark-secp256r1.workspace = true
blockifier_test_utils = { workspace = true, optional = true }
cached.workspace = true
cairo-lang-casm = { workspace = true, features = ["parity-scale-codec"] }
cairo-lang-runner.workspace = true
Expand Down Expand Up @@ -73,6 +75,7 @@ tracing-test = { workspace = true, optional = true }

[dev-dependencies]
assert_matches.workspace = true
blockifier_test_utils.path = "../blockifier_test_utils"
criterion = { workspace = true, features = ["html_reports"] }
glob.workspace = true
itertools.workspace = true
Expand Down
9 changes: 2 additions & 7 deletions crates/blockifier/src/blockifier/transaction_executor_test.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use assert_matches::assert_matches;
use blockifier_test_utils::calldata::create_calldata;
use pretty_assertions::assert_eq;
use rstest::rstest;
use starknet_api::test_utils::declare::executable_declare_tx;
Expand All @@ -23,13 +24,7 @@ use crate::state::state_api::StateReader;
use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::initial_test_state::test_state;
use crate::test_utils::l1_handler::l1handler_tx;
use crate::test_utils::{
create_calldata,
maybe_dummy_block_hash_and_number,
CairoVersion,
RunnableCairo1,
BALANCE,
};
use crate::test_utils::{maybe_dummy_block_hash_and_number, CairoVersion, RunnableCairo1, BALANCE};
use crate::transaction::account_transaction::AccountTransaction;
use crate::transaction::errors::TransactionExecutionError;
use crate::transaction::test_utils::{
Expand Down
3 changes: 2 additions & 1 deletion crates/blockifier/src/concurrency/fee_utils_test.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
use blockifier_test_utils::calldata::create_trivial_calldata;
use num_bigint::BigUint;
use rstest::rstest;
use starknet_api::block::FeeType;
Expand All @@ -12,7 +13,7 @@ use crate::fee::fee_utils::get_sequencer_balance_keys;
use crate::state::state_api::StateReader;
use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::initial_test_state::{fund_account, test_state, test_state_inner};
use crate::test_utils::{create_trivial_calldata, CairoVersion, RunnableCairo1, BALANCE};
use crate::test_utils::{CairoVersion, RunnableCairo1, BALANCE};
use crate::transaction::test_utils::{
block_context,
default_all_resource_bounds,
Expand Down
9 changes: 2 additions & 7 deletions crates/blockifier/src/concurrency/worker_logic_test.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use std::collections::HashMap;
use std::sync::Mutex;

use blockifier_test_utils::calldata::{create_calldata, create_trivial_calldata};
use rstest::rstest;
use starknet_api::abi::abi_utils::get_fee_token_var_address;
use starknet_api::core::{ContractAddress, Nonce};
Expand All @@ -25,13 +26,7 @@ use crate::state::cached_state::StateMaps;
use crate::state::state_api::StateReader;
use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::initial_test_state::test_state;
use crate::test_utils::{
create_calldata,
create_trivial_calldata,
CairoVersion,
RunnableCairo1,
BALANCE,
};
use crate::test_utils::{CairoVersion, RunnableCairo1, BALANCE};
use crate::transaction::account_transaction::AccountTransaction;
use crate::transaction::objects::HasRelatedFeeType;
use crate::transaction::test_utils::{
Expand Down
3 changes: 2 additions & 1 deletion crates/blockifier/src/execution/stack_trace_test.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use assert_matches::assert_matches;
use blockifier_test_utils::calldata::create_calldata;
use pretty_assertions::assert_eq;
use regex::Regex;
use rstest::rstest;
Expand Down Expand Up @@ -46,7 +47,7 @@ use crate::execution::syscalls::hint_processor::ENTRYPOINT_FAILED_ERROR;
use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::initial_test_state::{fund_account, test_state};
use crate::test_utils::test_templates::cairo_version;
use crate::test_utils::{create_calldata, CairoVersion, RunnableCairo1, BALANCE};
use crate::test_utils::{CairoVersion, RunnableCairo1, BALANCE};
use crate::transaction::account_transaction::{AccountTransaction, ExecutionFlags};
use crate::transaction::test_utils::{
block_context,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use core::panic;
use std::sync::Arc;

use blockifier_test_utils::calldata::create_calldata;
use itertools::Itertools;
use pretty_assertions::assert_eq;
use rstest::rstest;
Expand All @@ -20,7 +21,6 @@ use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::initial_test_state::test_state;
use crate::test_utils::syscall::build_recurse_calldata;
use crate::test_utils::{
create_calldata,
trivial_external_entry_point_new,
CairoVersion,
CompilerBasedVersion,
Expand Down
9 changes: 2 additions & 7 deletions crates/blockifier/src/fee/receipt_test.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
use blockifier_test_utils::calldata::{create_calldata, create_trivial_calldata};
use rstest::{fixture, rstest};
use starknet_api::execution_resources::GasVector;
use starknet_api::transaction::fields::GasVectorComputationMode;
Expand All @@ -23,13 +24,7 @@ use crate::fee::resources::{StarknetResources, StateResources};
use crate::state::cached_state::StateChangesCount;
use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::initial_test_state::test_state;
use crate::test_utils::{
create_calldata,
create_trivial_calldata,
CairoVersion,
RunnableCairo1,
BALANCE,
};
use crate::test_utils::{CairoVersion, RunnableCairo1, BALANCE};
use crate::transaction::objects::HasRelatedFeeType;
use crate::transaction::test_utils::{
calculate_class_info_for_testing,
Expand Down
3 changes: 2 additions & 1 deletion crates/blockifier/src/state/cached_state_test.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use std::collections::HashMap;

use assert_matches::assert_matches;
use blockifier_test_utils::calldata::create_calldata;
use indexmap::indexmap;
use pretty_assertions::assert_eq;
use rstest::rstest;
Expand All @@ -20,7 +21,7 @@ use crate::state::cached_state::*;
use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::dict_state_reader::DictStateReader;
use crate::test_utils::initial_test_state::test_state;
use crate::test_utils::{create_calldata, CairoVersion, RunnableCairo1, BALANCE};
use crate::test_utils::{CairoVersion, RunnableCairo1, BALANCE};
use crate::transaction::test_utils::{default_all_resource_bounds, run_invoke_tx, STORAGE_WRITE};
const CONTRACT_ADDRESS: &str = "0x100";

Expand Down
45 changes: 1 addition & 44 deletions crates/blockifier/src/test_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ use std::slice::Iter;

use cairo_vm::types::builtin_name::BuiltinName;
use cairo_vm::vm::runners::cairo_runner::ExecutionResources;
use starknet_api::abi::abi_utils::{get_fee_token_var_address, selector_from_name};
use starknet_api::abi::abi_utils::get_fee_token_var_address;
use starknet_api::block::{BlockHash, BlockHashAndNumber, BlockNumber};
use starknet_api::core::{ClassHash, ContractAddress};
use starknet_api::execution_resources::{GasAmount, GasVector};
Expand Down Expand Up @@ -400,49 +400,6 @@ pub fn calldata_for_deploy_test(
)
}

/// Creates the calldata for the "__execute__" entry point in the featured contracts
/// ([`FeatureContract`]) AccountWithLongValidate and AccountWithoutValidations. The format of the
/// returned calldata is:
/// [
/// contract_address,
/// entry_point_name,
/// calldata_length,
/// *calldata,
/// ]
/// The contract_address is the address of the called contract, the entry_point_name is the
/// name of the called entry point in said contract, and the calldata is the calldata for the called
/// entry point.
pub fn create_calldata(
contract_address: ContractAddress,
entry_point_name: &str,
entry_point_args: &[Felt],
) -> Calldata {
Calldata(
[
vec![
*contract_address.0.key(), // Contract address.
selector_from_name(entry_point_name).0, // EP selector name.
felt!(u64_from_usize(entry_point_args.len())),
],
entry_point_args.into(),
]
.concat()
.into(),
)
}

/// Calldata for a trivial entry point in the [`FeatureContract`] TestContract. The calldata is
/// formatted for using the featured contracts AccountWithLongValidate or AccountWithoutValidations
/// as account contract.
/// The contract_address is the address of the called contract, an instance address of TestContract.
pub fn create_trivial_calldata(test_contract_address: ContractAddress) -> Calldata {
create_calldata(
test_contract_address,
"return_result",
&[felt!(2_u8)], // Calldata: num.
)
}

pub fn update_json_value(base: &mut serde_json::Value, update: serde_json::Value) {
match (base, update) {
(serde_json::Value::Object(base_map), serde_json::Value::Object(update_map)) => {
Expand Down
3 changes: 2 additions & 1 deletion crates/blockifier/src/test_utils/syscall.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
use blockifier_test_utils::calldata::create_calldata;
use starknet_api::felt;
use starknet_api::transaction::fields::Calldata;

use crate::test_utils::{create_calldata, CompilerBasedVersion};
use crate::test_utils::CompilerBasedVersion;

/// Returns the calldata for N recursive call contract syscalls, where N is the length of versions.
/// versions determines the cairo version of the called contract in each recursive call. Final call
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use std::collections::{HashMap, HashSet};
use std::sync::Arc;

use assert_matches::assert_matches;
use blockifier_test_utils::calldata::{create_calldata, create_trivial_calldata};
use cairo_vm::types::builtin_name::BuiltinName;
use cairo_vm::vm::runners::cairo_runner::ResourceTracker;
use num_traits::Inv;
Expand Down Expand Up @@ -83,8 +84,6 @@ use crate::test_utils::initial_test_state::{fund_account, test_state};
use crate::test_utils::syscall::build_recurse_calldata;
use crate::test_utils::test_templates::cairo_version;
use crate::test_utils::{
create_calldata,
create_trivial_calldata,
get_syscall_resources,
get_tx_resources,
CairoVersion,
Expand Down
10 changes: 2 additions & 8 deletions crates/blockifier/src/transaction/execution_flavors_test.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use assert_matches::assert_matches;
use blockifier_test_utils::calldata::{create_calldata, create_trivial_calldata};
use pretty_assertions::assert_eq;
use rstest::rstest;
use starknet_api::block::FeeType;
Expand Down Expand Up @@ -31,14 +32,7 @@ use crate::state::state_api::StateReader;
use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::dict_state_reader::DictStateReader;
use crate::test_utils::initial_test_state::test_state;
use crate::test_utils::{
create_calldata,
create_trivial_calldata,
get_syscall_resources,
get_tx_resources,
CairoVersion,
BALANCE,
};
use crate::test_utils::{get_syscall_resources, get_tx_resources, CairoVersion, BALANCE};
use crate::transaction::account_transaction::{AccountTransaction, ExecutionFlags};
use crate::transaction::errors::{
ResourceBoundsError,
Expand Down
3 changes: 2 additions & 1 deletion crates/blockifier/src/transaction/post_execution_test.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use assert_matches::assert_matches;
use blockifier_test_utils::calldata::create_calldata;
use rstest::rstest;
use starknet_api::block::FeeType;
use starknet_api::core::ContractAddress;
Expand All @@ -24,7 +25,7 @@ use crate::fee::fee_utils::GasVectorToL1GasForFee;
use crate::state::state_api::StateReader;
use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::initial_test_state::test_state;
use crate::test_utils::{create_calldata, CairoVersion, BALANCE};
use crate::test_utils::{CairoVersion, BALANCE};
use crate::transaction::account_transaction::AccountTransaction;
use crate::transaction::errors::TransactionExecutionError;
use crate::transaction::objects::{HasRelatedFeeType, TransactionInfoCreator};
Expand Down
3 changes: 2 additions & 1 deletion crates/blockifier/src/transaction/test_utils.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
use blockifier_test_utils::calldata::create_calldata;
use rstest::fixture;
use starknet_api::abi::abi_utils::get_fee_token_var_address;
use starknet_api::block::{FeeType, GasPrice};
Expand Down Expand Up @@ -40,7 +41,7 @@ use crate::state::state_api::State;
use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::dict_state_reader::DictStateReader;
use crate::test_utils::initial_test_state::test_state;
use crate::test_utils::{create_calldata, CairoVersion, BALANCE};
use crate::test_utils::{CairoVersion, BALANCE};
use crate::transaction::account_transaction::{AccountTransaction, ExecutionFlags};
use crate::transaction::objects::{TransactionExecutionInfo, TransactionExecutionResult};
use crate::transaction::transaction_types::TransactionType;
Expand Down
3 changes: 1 addition & 2 deletions crates/blockifier/src/transaction/transactions_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use std::collections::{HashMap, HashSet};
use std::sync::{Arc, LazyLock};

use assert_matches::assert_matches;
use blockifier_test_utils::calldata::{create_calldata, create_trivial_calldata};
use cairo_vm::types::builtin_name::BuiltinName;
use cairo_vm::vm::runners::cairo_runner::ExecutionResources;
use num_bigint::BigUint;
Expand Down Expand Up @@ -118,8 +119,6 @@ use crate::test_utils::l1_handler::l1handler_tx;
use crate::test_utils::prices::Prices;
use crate::test_utils::test_templates::{cairo_version, two_cairo_versions};
use crate::test_utils::{
create_calldata,
create_trivial_calldata,
get_syscall_resources,
get_tx_resources,
test_erc20_sequencer_balance_key,
Expand Down
14 changes: 14 additions & 0 deletions crates/blockifier_test_utils/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[package]
name = "blockifier_test_utils"
version.workspace = true
edition.workspace = true
repository.workspace = true
license-file.workspace = true
description = "Test utilities for the blockifier."

[dependencies]
starknet-types-core.workspace = true
starknet_api = { workspace = true, features = ["testing"] }

[lints]
workspace = true
Loading
Loading