Skip to content
This repository has been archived by the owner on Jul 22, 2024. It is now read-only.

Commit

Permalink
Remove cairo 1 tests (#1263)
Browse files Browse the repository at this point in the history
* Remove cairo-1 related targets from Makefile

* Push Progress

* Remove feature gated code from tests

* Fix tests

* Push cairo2 version of multi_syscall contract

* Delete cairo1 test files

* Update CI

* Update gitignore

* clippy
  • Loading branch information
fmoletta authored Apr 9, 2024
1 parent c90c46b commit 99c7b3b
Show file tree
Hide file tree
Showing 43 changed files with 144 additions and 1,258 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/rust-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ jobs:
strategy:
fail-fast: false
matrix:
target: [ test-cairo-1, test-cairo-2, test-doctests, test-cairo-native ]
target: [ test, test-doctests, test-cairo-native ]
name: Run tests
runs-on: ubuntu-latest
steps:
Expand Down
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,11 @@ target/

.env
# the starting `/` assures this matches only on the repo's root
/cairo1
/cairo2

starknet-venv/
**/*.json

starknet_programs/cairo1/*.casm
starknet_programs/cairo1/*.sierra
starknet_programs/cairo2/*.casm
starknet_programs/cairo2/*.sierra
default.profraw
Expand Down
1 change: 0 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ license = "Apache-2.0"
[features]
default = ["with_mimalloc"]
with_mimalloc = ["dep:mimalloc"]
cairo_1_tests = []
metrics = []
# Disclaimer: This feature enables state modifications being applied on reverted and failings txs, and also disables address availability check when deploying contracts.
# Only use for benchmarking using the replay binary
Expand Down
74 changes: 10 additions & 64 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: usage build check clean clippy compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra \
.PHONY: usage build check clean clippy compile-cairo compile-starknet \
compile-cairo-2-casm compile-cairo-2-sierra coverage deps test heaptrack check-python-version

export PATH:=$(shell pyenv root)/shims:$(PATH)
Expand All @@ -21,9 +21,6 @@ STARKNET_ABI_TARGETS=$(patsubst %.cairo,%_abi.json,$(STARKNET_SOURCES))
BUILTIN_SOURCES=$(wildcard starknet_programs/*.cairo)
BUILTIN_TARGETS=$(patsubst %.cairo,%.json,$(BUILTIN_SOURCES))

STARKNET_COMPILE_CAIRO_1:=cairo1/bin/starknet-compile
STARKNET_SIERRA_COMPILE_CAIRO_1:=cairo1/bin/starknet-sierra-compile

STARKNET_COMPILE_CAIRO_2:=cairo2/bin/starknet-compile
STARKNET_SIERRA_COMPILE_CAIRO_2:=cairo2/bin/starknet-sierra-compile

Expand All @@ -36,7 +33,6 @@ usage:
@echo ' clean: Cleans all build artifacts'
@echo ' clippy: Runs clippy'
@echo ' test: Runs all tests'
@echo ' test-cairo-1: Runs the Cairo 1 tests'
@echo ' test-cairo-2: Runs the Cairo 2 tests'
@echo ' test-doctests: Runs the doctests'
@echo ' coverage: Runs everything necessary to generate the coverage report'
Expand Down Expand Up @@ -69,42 +65,6 @@ starknet_programs/%.json starknet_programs/%_abi.json: starknet_programs/%.cairo
|| rm ./$*.json ./$*_abi.json
# Compiles .cairo files into .json files. if the command fails, then it removes all of the .json files

# ======================
# Test Cairo 1 Contracts
# ======================

CAIRO_1_CONTRACTS_TEST_DIR=starknet_programs/cairo1
CAIRO_1_CONTRACTS_TEST_CAIRO_FILES:=$(wildcard $(CAIRO_1_CONTRACTS_TEST_DIR)/*.cairo)
CAIRO_1_COMPILED_SIERRA_CONTRACTS:=$(patsubst $(CAIRO_1_CONTRACTS_TEST_DIR)/%.cairo, $(CAIRO_1_CONTRACTS_TEST_DIR)/%.sierra, $(CAIRO_1_CONTRACTS_TEST_CAIRO_FILES))
CAIRO_1_COMPILED_CASM_CONTRACTS:= $(patsubst $(CAIRO_1_CONTRACTS_TEST_DIR)/%.sierra, $(CAIRO_1_CONTRACTS_TEST_DIR)/%.casm, $(CAIRO_1_COMPILED_SIERRA_CONTRACTS))

$(CAIRO_1_CONTRACTS_TEST_DIR)/%.sierra: $(CAIRO_1_CONTRACTS_TEST_DIR)/%.cairo
$(STARKNET_COMPILE_CAIRO_1) --allowed-libfuncs-list-name experimental_v0.1.0 $< $@

$(CAIRO_1_CONTRACTS_TEST_DIR)/%.casm: $(CAIRO_1_CONTRACTS_TEST_DIR)/%.sierra
$(STARKNET_SIERRA_COMPILE_CAIRO_1) --allowed-libfuncs-list-name experimental_v0.1.0 --add-pythonic-hints $< $@

compile-cairo-1-sierra: $(CAIRO_1_COMPILED_SIERRA_CONTRACTS)
compile-cairo-1-casm: $(CAIRO_1_COMPILED_CASM_CONTRACTS)


cairo-repo-1-dir = cairo1
cairo-repo-1-dir-macos = cairo1-macos

build-cairo-1-compiler-macos: | $(cairo-repo-1-dir-macos)

$(cairo-repo-1-dir-macos):
curl -L -o cairo-1.1.1.tar https://github.com/starkware-libs/cairo/releases/download/v1.1.1/release-aarch64-apple-darwin.tar \
&& tar -xzvf cairo-1.1.1.tar \
&& mv cairo/ cairo1/

build-cairo-1-compiler: | $(cairo-repo-1-dir)

$(cairo-repo-1-dir):
curl -L -o cairo-1.1.1.tar https://github.com/starkware-libs/cairo/releases/download/v1.1.1/release-x86_64-unknown-linux-musl.tar.gz \
&& tar -xzvf cairo-1.1.1.tar \
&& mv cairo/ cairo1/

# ======================
# Test Cairo 2 Contracts
# ======================
Expand Down Expand Up @@ -153,13 +113,13 @@ cairo-%.tar:
# Normal rules.
# =================

build: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra
build: compile-cairo compile-starknet compile-cairo-2-casm compile-cairo-2-sierra
cargo build --release --workspace

check: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra
check: compile-cairo compile-starknet compile-cairo-2-casm compile-cairo-2-sierra
cargo check --workspace --all-targets

deps: check-python-version build-cairo-2-compiler build-cairo-1-compiler
deps: check-python-version build-cairo-2-compiler
cargo install flamegraph --version 0.6.2 --locked
cargo install cargo-llvm-cov --version 0.5.14 --locked
-pyenv && pyenv install -s pypy3.9-7.3.9
Expand All @@ -168,7 +128,7 @@ deps: check-python-version build-cairo-2-compiler build-cairo-1-compiler
. starknet-venv/bin/activate && $(MAKE) deps-venv
cargo install cargo-nextest --version 0.9.49 --locked

deps-macos: check-python-version build-cairo-2-compiler-macos build-cairo-1-compiler-macos
deps-macos: check-python-version build-cairo-2-compiler-macos
cargo install flamegraph --version 0.6.2 --locked
cargo install cargo-llvm-cov --version 0.5.14 --locked
-pyenv install -s pypy3.9-7.3.9
Expand All @@ -180,43 +140,29 @@ deps-macos: check-python-version build-cairo-2-compiler-macos build-cairo-1-comp
clean:
-rm -rf starknet-venv/
-rm -f cairo_programs/*.json
-rm -f cairo_programs/cairo_1_contracts/*.json
-rm -f cairo_programs/cairo_1_contracts/*.casm
-rm -f starknet_programs/*.json
-rm -f starknet_programs/cairo1/*.casm
-rm -f starknet_programs/cairo1/*.sierra
-rm -f starknet_programs/cairo2/*.casm
-rm -f starknet_programs/cairo2/*.sierra
-rm -f tests/*.json
-rm -rf cairo1/
-rm -rf cairo2/
-rm -rf cairo-*.tar

clippy: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra
clippy: compile-cairo compile-starknet compile-cairo-2-casm compile-cairo-2-sierra
cargo clippy --workspace --all-targets --all-features -- -D warnings

test: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra
echo "Cairo1 tests"
$(MAKE) test-cairo-1
echo "Cairo2 tests"
$(MAKE) test-cairo-2

test-cairo-1: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra
cargo nextest run --workspace --all-targets --features=cairo_1_tests,metrics,cairo-native

test-cairo-2: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra
test: compile-cairo compile-starknet compile-cairo-2-casm compile-cairo-2-sierra
cargo nextest run --workspace --all-targets --features=metrics,cairo-native

test-cairo-native: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra
test-cairo-native: compile-cairo compile-starknet compile-cairo-2-casm compile-cairo-2-sierra
cargo nextest run --workspace --test tests --features=cairo-native integration_tests::cairo_native

test-doctests:
cargo test --workspace --doc

coverage: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-2-casm
coverage: compile-cairo compile-starknet compile-cairo-2-casm
$(MAKE) coverage-report

coverage-report: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra
coverage-report: compile-cairo compile-starknet compile-cairo-2-casm compile-cairo-2-sierra
cargo llvm-cov nextest --lcov --ignore-filename-regex 'main.rs' --output-path lcov.info --release

heaptrack:
Expand Down
59 changes: 5 additions & 54 deletions src/core/contract_address/casm_contract_address.rs
Original file line number Diff line number Diff line change
Expand Up @@ -117,22 +117,13 @@ mod tests {
// Open the file in read-only mode with buffer.
let file;
let expected_result;
#[cfg(not(feature = "cairo_1_tests"))]
{
file = File::open("starknet_programs/raw_contract_classes/321aadcf42b0a4ad905616598d16c42fa9b87c812dc398e49b57bf77930629f.casm").unwrap();
expected_result = Felt252::from_hex(
"0x321aadcf42b0a4ad905616598d16c42fa9b87c812dc398e49b57bf77930629f",
)
.unwrap();
}
#[cfg(feature = "cairo_1_tests")]
{
file = File::open("starknet_programs/cairo1/contract_a.casm").unwrap();
expected_result = Felt252::from_hex(
"0x3a4f00bf75ba3b9230a94f104c7a4605a1901c4bd475beb59eeeeb7aceb9795",
)
.unwrap();
}
let reader = BufReader::new(file);

// Read the JSON contents of the file as an instance of `CasmContractClass`.
Expand All @@ -149,7 +140,6 @@ mod tests {
// Open the file in read-only mode with buffer.
let file;
let expected_result;
#[cfg(not(feature = "cairo_1_tests"))]
{
file = File::open("starknet_programs/raw_contract_classes/53ad3bfb13f39cf1a9940108be4f9c6a8d9cc48a59d5f9b3c73432f877f8cf0.casm").unwrap();
expected_result = Felt252::from_hex(
Expand All @@ -158,14 +148,6 @@ mod tests {
.unwrap();
}

#[cfg(feature = "cairo_1_tests")]
{
file = File::open("starknet_programs/cairo1/deploy.casm").unwrap();
expected_result = Felt252::from_hex(
"0x3bd56f1c3c1c595ac2ee6d07bdedc027d09df56235e20374649f0b3535c1f15",
)
.unwrap();
}
let reader = BufReader::new(file);

// Read the JSON contents of the file as an instance of `CasmContractClass`.
Expand All @@ -180,25 +162,12 @@ mod tests {
#[test]
fn test_compute_casm_class_hash_fibonacci() {
// Open the file in read-only mode with buffer.
let file;
let expected_result;
#[cfg(not(feature = "cairo_1_tests"))]
{
file = File::open("starknet_programs/raw_contract_classes/6638ce6c9bf336d1781a388668fa2206d928df5d1fa6b92e4cb41004c7e3f89.casm").unwrap();
expected_result = Felt252::from_hex(
"0x6638ce6c9bf336d1781a388668fa2206d928df5d1fa6b92e4cb41004c7e3f89",
)
.unwrap();
}

#[cfg(feature = "cairo_1_tests")]
{
file = File::open("starknet_programs/cairo1/fibonacci.casm").unwrap();
expected_result = Felt252::from_hex(
"0x44f12e6e59232e9909d7428b913b3cc8d9059458e5027740a3ccdbdc4b1ffd2",
)
.unwrap();
}
let file = File::open("starknet_programs/raw_contract_classes/6638ce6c9bf336d1781a388668fa2206d928df5d1fa6b92e4cb41004c7e3f89.casm").unwrap();
let expected_result =
Felt252::from_hex("0x6638ce6c9bf336d1781a388668fa2206d928df5d1fa6b92e4cb41004c7e3f89")
.unwrap();

let reader = BufReader::new(file);

// Read the JSON contents of the file as an instance of `CasmContractClass`.
Expand All @@ -215,7 +184,6 @@ mod tests {
// Open the file in read-only mode with buffer.
let file;
let expected_result;
#[cfg(not(feature = "cairo_1_tests"))]
{
file = File::open("starknet_programs/raw_contract_classes/7c48d040ceb3183837a0aff2adf33d879f790e202eb2c4b8622005c12252641.casm").unwrap();
expected_result = Felt252::from_hex(
Expand All @@ -224,14 +192,6 @@ mod tests {
.unwrap();
}

#[cfg(feature = "cairo_1_tests")]
{
file = File::open("starknet_programs/cairo1/factorial.casm").unwrap();
expected_result = Felt252::from_hex(
"0x189a9b8b852aedbb225aa28dce9cfc3133145dd623e2d2ca5e962b7d4e61e15",
)
.unwrap();
}
let reader = BufReader::new(file);

// Read the JSON contents of the file as an instance of `CasmContractClass`.
Expand All @@ -248,7 +208,6 @@ mod tests {
// Open the file in read-only mode with buffer.
let file;
let expected_result;
#[cfg(not(feature = "cairo_1_tests"))]
{
file = File::open("starknet_programs/raw_contract_classes/3010533bd60cb0e70ac1bf776e171713f0e5229a084989d3894c171c160ace2.casm").unwrap();
expected_result = Felt252::from_hex(
Expand All @@ -257,14 +216,6 @@ mod tests {
.unwrap();
}

#[cfg(feature = "cairo_1_tests")]
{
file = File::open("starknet_programs/cairo1/emit_event.casm").unwrap();
expected_result = Felt252::from_hex(
"0x3335fe731ceda1116eda8bbc2e282953ce54618309ad474189e627c59328fff",
)
.unwrap();
}
let reader = BufReader::new(file);

// Read the JSON contents of the file as an instance of `CasmContractClass`.
Expand Down
14 changes: 1 addition & 13 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -346,10 +346,7 @@ mod test {

#[test]
fn call_contract_fibonacci_with_10_should_return_89() {
#[cfg(not(feature = "cairo_1_tests"))]
let program_data = include_bytes!("../starknet_programs/cairo2/fibonacci.casm");
#[cfg(feature = "cairo_1_tests")]
let program_data = include_bytes!("../starknet_programs/cairo1/fibonacci.casm");

let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap();
let entrypoints = contract_class.clone().entry_points_by_type;
Expand Down Expand Up @@ -454,10 +451,7 @@ mod test {

#[test]
fn test_skip_validation_flag() {
#[cfg(not(feature = "cairo_1_tests"))]
let program_data = include_bytes!("../starknet_programs/cairo2/fibonacci.casm");
#[cfg(feature = "cairo_1_tests")]
let program_data = include_bytes!("../starknet_programs/cairo1/fibonacci.casm");
let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap();
let entrypoints = contract_class.clone().entry_points_by_type;
let entrypoint_selector = Felt252::from(&entrypoints.external.get(0).unwrap().selector);
Expand Down Expand Up @@ -532,10 +526,7 @@ mod test {
let entrypoint_selector = *EXECUTE_ENTRY_POINT_SELECTOR;

// test with fibonacci
#[cfg(not(feature = "cairo_1_tests"))]
let program_data = include_bytes!("../starknet_programs/cairo2/fibonacci.casm");
#[cfg(feature = "cairo_1_tests")]
let program_data = include_bytes!("../starknet_programs/cairo1/fibonacci.casm");

let casm_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap();

Expand Down Expand Up @@ -668,10 +659,7 @@ mod test {
let entrypoint_selector = *EXECUTE_ENTRY_POINT_SELECTOR;

// test with fibonacci
#[cfg(not(feature = "cairo_1_tests"))]
let program_data = include_bytes!("../starknet_programs/cairo2/fibonacci.casm");
#[cfg(feature = "cairo_1_tests")]
let program_data = include_bytes!("../starknet_programs/cairo1/fibonacci.casm");

let casm_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap();

Expand Down Expand Up @@ -975,7 +963,7 @@ mod test {
}

fn declarev2_tx() -> Declare {
let program_data = include_bytes!("../starknet_programs/cairo1/fibonacci.sierra");
let program_data = include_bytes!("../starknet_programs/cairo2/fibonacci.sierra");
let sierra_contract_class: SierraContractClass =
serde_json::from_slice(program_data).unwrap();

Expand Down
Loading

0 comments on commit 99c7b3b

Please sign in to comment.