diff --git a/.github/workflows/blockifier_ci.yml b/.github/workflows/blockifier_ci.yml index 4cf085e0cd6..23faac3b31d 100644 --- a/.github/workflows/blockifier_ci.yml +++ b/.github/workflows/blockifier_ci.yml @@ -29,6 +29,7 @@ on: - 'Cargo.lock' - 'Cargo.toml' - 'crates/blockifier/**' + - 'crates/blockifier_test_utils/**' - 'crates/native_blockifier/**' - 'crates/starknet_sierra_multicompile/build.rs' - 'scripts/build_native_blockifier.sh' diff --git a/.github/workflows/blockifier_compiled_cairo.yml b/.github/workflows/blockifier_compiled_cairo.yml index e5f393167e1..a2830c32082 100644 --- a/.github/workflows/blockifier_compiled_cairo.yml +++ b/.github/workflows/blockifier_compiled_cairo.yml @@ -10,9 +10,9 @@ on: - 'Cargo.toml' - '.github/workflows/blockifier_compiled_cairo.yml' - 'crates/blockifier/feature_contracts/**' - - 'crates/blockifier/src/test_utils/cairo_compile.rs' - 'crates/blockifier/tests/feature_contracts_compatibility_test.rs' - 'crates/blockifier/tests/requirements.txt' + - 'crates/blockifier_test_utils/cairo_compile.rs' - 'scripts/dependencies.sh' env: diff --git a/Cargo.lock b/Cargo.lock index d502a64d80d..598ea705ecd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1752,12 +1752,10 @@ dependencies = [ "starknet_sierra_multicompile", "strum 0.25.0", "strum_macros 0.25.3", - "tempfile", "test-case", "thiserror 1.0.69", "tikv-jemallocator", "tokio", - "toml", "tracing", "tracing-test", ] @@ -1792,8 +1790,13 @@ dependencies = [ name = "blockifier_test_utils" version = "0.0.0" dependencies = [ + "cached", + "serde", "starknet-types-core", "starknet_api", + "starknet_infra_utils", + "tempfile", + "toml", ] [[package]] diff --git a/crates/blockifier/Cargo.toml b/crates/blockifier/Cargo.toml index d77800ea3d1..84b39a8b33b 100644 --- a/crates/blockifier/Cargo.toml +++ b/crates/blockifier/Cargo.toml @@ -66,10 +66,8 @@ starknet_infra_utils.workspace = true starknet_sierra_multicompile.workspace = true strum.workspace = true strum_macros.workspace = true -tempfile.workspace = true thiserror.workspace = true tokio = { workspace = true, optional = true, features = ["macros", "rt-multi-thread"] } -toml.workspace = true tracing = { workspace = true, optional = true } tracing-test = { workspace = true, optional = true } diff --git a/crates/blockifier/src/test_utils.rs b/crates/blockifier/src/test_utils.rs index 485e57ca5a3..81c3d6aa177 100644 --- a/crates/blockifier/src/test_utils.rs +++ b/crates/blockifier/src/test_utils.rs @@ -1,4 +1,3 @@ -pub mod cairo_compile; pub mod contracts; pub mod dict_state_reader; pub mod initial_test_state; diff --git a/crates/blockifier/src/test_utils/contracts.rs b/crates/blockifier/src/test_utils/contracts.rs index fccabab658a..970065ef273 100644 --- a/crates/blockifier/src/test_utils/contracts.rs +++ b/crates/blockifier/src/test_utils/contracts.rs @@ -1,5 +1,6 @@ use std::collections::HashMap; +use blockifier_test_utils::cairo_compile::{cairo0_compile, cairo1_compile, CompilationArtifacts}; use cairo_lang_starknet_classes::casm_contract_class::CasmContractClass; use cairo_lang_starknet_classes::contract_class::ContractClass as CairoLangContractClass; use itertools::Itertools; @@ -21,7 +22,6 @@ use crate::execution::contract_class::RunnableCompiledClass; use crate::execution::entry_point::EntryPointTypeAndSelector; #[cfg(feature = "cairo_native")] use crate::execution::native::contract_class::NativeCompiledClassV1; -use crate::test_utils::cairo_compile::{cairo0_compile, cairo1_compile, CompilationArtifacts}; use crate::test_utils::struct_impls::LoadContractFromFile; use crate::test_utils::{get_raw_contract_class, CairoVersion, RunnableCairo1}; diff --git a/crates/blockifier/tests/feature_contracts_compatibility_test.rs b/crates/blockifier/tests/feature_contracts_compatibility_test.rs index 6f03396e410..2e56db7a246 100644 --- a/crates/blockifier/tests/feature_contracts_compatibility_test.rs +++ b/crates/blockifier/tests/feature_contracts_compatibility_test.rs @@ -1,15 +1,12 @@ use std::fs; -use blockifier::test_utils::cairo_compile::{ - prepare_group_tag_compiler_deps, - CompilationArtifacts, -}; use blockifier::test_utils::contracts::{ FeatureContract, CAIRO1_FEATURE_CONTRACTS_DIR, SIERRA_CONTRACTS_SUBDIR, }; use blockifier::test_utils::{CairoVersion, RunnableCairo1}; +use blockifier_test_utils::cairo_compile::{prepare_group_tag_compiler_deps, CompilationArtifacts}; use pretty_assertions::assert_eq; use rstest::rstest; use tracing::info; diff --git a/crates/blockifier_test_utils/Cargo.toml b/crates/blockifier_test_utils/Cargo.toml index 3b637b52d27..9cf4851cf23 100644 --- a/crates/blockifier_test_utils/Cargo.toml +++ b/crates/blockifier_test_utils/Cargo.toml @@ -7,8 +7,13 @@ license-file.workspace = true description = "Test utilities for the blockifier." [dependencies] +cached.workspace = true +serde = { workspace = true, features = ["derive"] } starknet-types-core.workspace = true starknet_api = { workspace = true, features = ["testing"] } +starknet_infra_utils.workspace = true +tempfile.workspace = true +toml.workspace = true [lints] workspace = true diff --git a/crates/blockifier/src/test_utils/cairo_compile.rs b/crates/blockifier_test_utils/src/cairo_compile.rs similarity index 99% rename from crates/blockifier/src/test_utils/cairo_compile.rs rename to crates/blockifier_test_utils/src/cairo_compile.rs index aee94a9cd71..eef8ec42b62 100644 --- a/crates/blockifier/src/test_utils/cairo_compile.rs +++ b/crates/blockifier_test_utils/src/cairo_compile.rs @@ -8,7 +8,7 @@ use serde::{Deserialize, Serialize}; use starknet_infra_utils::compile_time_cargo_manifest_dir; use tempfile::NamedTempFile; -use crate::test_utils::contracts::TagAndToolchain; +use crate::contracts::TagAndToolchain; const CAIRO0_PIP_REQUIREMENTS_FILE: &str = "tests/requirements.txt"; const CAIRO1_REPO_RELATIVE_PATH_OVERRIDE_ENV_VAR: &str = "CAIRO1_REPO_RELATIVE_PATH"; @@ -62,7 +62,7 @@ pub enum CompilationArtifacts { /// Returns the version of the Cairo1 compiler defined in the root Cargo.toml (by checking the /// package version of one of the crates from the compiler in the dependencies). pub fn cairo1_compiler_version() -> String { - let cargo_toml: CargoToml = toml::from_str(include_str!("../../../../Cargo.toml")).unwrap(); + let cargo_toml: CargoToml = toml::from_str(include_str!("../../../Cargo.toml")).unwrap(); match cargo_toml.workspace.dependencies.cairo_lang_casm { DependencyValue::String(version) | DependencyValue::Object { version } => version.clone(), } diff --git a/crates/blockifier_test_utils/src/contracts.rs b/crates/blockifier_test_utils/src/contracts.rs new file mode 100644 index 00000000000..7f5be56574d --- /dev/null +++ b/crates/blockifier_test_utils/src/contracts.rs @@ -0,0 +1 @@ +pub type TagAndToolchain = (Option, Option); diff --git a/crates/blockifier_test_utils/src/lib.rs b/crates/blockifier_test_utils/src/lib.rs index 950dc4911a4..3af827f7d81 100644 --- a/crates/blockifier_test_utils/src/lib.rs +++ b/crates/blockifier_test_utils/src/lib.rs @@ -1,2 +1,4 @@ +pub mod cairo_compile; pub mod calldata; +pub mod contracts; pub mod types;