Skip to content

Commit

Permalink
chore(blockifier): add text file with current compiler version for CI…
Browse files Browse the repository at this point in the history
… use
  • Loading branch information
dorimedini-starkware committed Jul 31, 2024
1 parent 0d099c5 commit 58aca6d
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 3 deletions.
6 changes: 5 additions & 1 deletion crates/blockifier/src/test_utils/cairo_compile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@ pub fn cairo1_compiler_version() -> String {
}
}

pub fn cairo1_compiler_tag() -> String {
format!("v{}", cairo1_compiler_version())
}

/// Returns the path to the local Cairo1 compiler repository.
fn local_cairo1_compiler_repo_path() -> PathBuf {
// Location of blockifier's Cargo.toml.
Expand Down Expand Up @@ -159,7 +163,7 @@ fn verify_cairo0_compiler_deps() {

fn verify_cairo1_compiler_deps(git_tag_override: Option<String>) {
let cairo_repo_path = local_cairo1_compiler_repo_path();
let tag = git_tag_override.unwrap_or(format!("v{}", cairo1_compiler_version()));
let tag = git_tag_override.unwrap_or(cairo1_compiler_tag());

// Check if the path is a directory.
assert!(
Expand Down
2 changes: 1 addition & 1 deletion crates/blockifier/src/test_utils/contracts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ const ERC20_CAIRO1_CONTRACT_SOURCE_PATH: &str = "./ERC20/ERC20_Cairo1/ERC20.cair
const ERC20_CAIRO1_CONTRACT_PATH: &str = "./ERC20/ERC20_Cairo1/erc20.casm.json";

// Legacy contract is compiled with a fixed version of the compiler.
const LEGACY_CONTRACT_COMPILER_TAG: &str = "v2.1.0";
pub const LEGACY_CONTRACT_COMPILER_TAG: &str = "v2.1.0";

/// Enum representing all feature contracts.
/// The contracts that are implemented in both Cairo versions include a version field.
Expand Down
1 change: 1 addition & 0 deletions crates/blockifier/tests/cairo1_compiler_tag.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v2.7.0-rc.3
13 changes: 12 additions & 1 deletion crates/blockifier/tests/feature_contracts_compatibility_test.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use std::fs;

use blockifier::test_utils::contracts::FeatureContract;
use blockifier::test_utils::cairo_compile::cairo1_compiler_tag;
use blockifier::test_utils::contracts::{FeatureContract, LEGACY_CONTRACT_COMPILER_TAG};
use blockifier::test_utils::CairoVersion;
use pretty_assertions::assert_eq;
use rstest::rstest;
Expand Down Expand Up @@ -110,6 +111,16 @@ fn verify_and_get_files(cairo_version: CairoVersion) -> Vec<(String, String, Str
paths
}

#[test]
fn test_cairo1_compiler_version_ci_files() {
// For all except the legacy contract.
let on_file = include_str!("cairo1_compiler_tag.txt").trim().to_string();
assert_eq!(on_file, cairo1_compiler_tag());
// Legacy contract
let on_file = include_str!("legacy_cairo1_compiler_tag.txt").trim().to_string();
assert_eq!(on_file, LEGACY_CONTRACT_COMPILER_TAG);
}

#[test]
fn verify_feature_contracts_match_enum() {
let mut compiled_paths_from_enum: Vec<String> = FeatureContract::all_feature_contracts()
Expand Down
1 change: 1 addition & 0 deletions crates/blockifier/tests/legacy_cairo1_compiler_tag.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v2.1.0

0 comments on commit 58aca6d

Please sign in to comment.