From 2615034a3f543f83ec3725a5c59e219c0c12681d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Delabrouille?= Date: Thu, 8 Jun 2023 15:26:54 +0200 Subject: [PATCH] add ensure-no-std crate to workspace --- .github/codecov.yml | 6 +- .github/workflows/rust.yml | 6 +- CHANGELOG.md | 4 + Cargo.lock | 222 +++++++++----- Cargo.toml | 76 +---- Makefile | 2 +- cairo-vm-cli/Cargo.toml | 2 +- ensure_no_std/.cargo/config.toml | 2 + ensure_no_std/Cargo.lock | 181 ++++++++++++ ensure_no_std/Cargo.toml | 16 + ensure_no_std/src/main.rs | 21 ++ hint_accountant/Cargo.toml | 2 +- vm/Cargo.toml | 92 ++++++ {src => vm/src}/cairo_run.rs | 20 +- .../builtin_hint_processor/bigint.rs | 0 .../builtin_hint_processor/blake2s_hash.rs | 0 .../builtin_hint_processor/blake2s_utils.rs | 0 .../builtin_hint_processor_definition.rs | 0 .../cairo_keccak/keccak_hints.rs | 0 .../cairo_keccak/mod.rs | 0 .../builtin_hint_processor/dict_hint_utils.rs | 0 .../builtin_hint_processor/dict_manager.rs | 0 .../builtin_hint_processor/ec_recover.rs | 0 .../builtin_hint_processor/ec_utils.rs | 0 .../field_arithmetic.rs | 0 .../find_element_hint.rs | 0 .../builtin_hint_processor/garaga.rs | 0 .../builtin_hint_processor/hint_code.rs | 0 .../builtin_hint_processor/hint_utils.rs | 0 .../builtin_hint_processor/keccak_utils.rs | 0 .../builtin_hint_processor/math_utils.rs | 0 .../memcpy_hint_utils.rs | 0 .../builtin_hint_processor/memset_utils.rs | 0 .../builtin_hint_processor/mod.rs | 0 .../builtin_hint_processor/poseidon_utils.rs | 0 .../builtin_hint_processor/pow_utils.rs | 0 .../secp/bigint_utils.rs | 0 .../builtin_hint_processor/secp/ec_utils.rs | 0 .../secp/field_utils.rs | 0 .../builtin_hint_processor/secp/mod.rs | 0 .../builtin_hint_processor/secp/secp_utils.rs | 0 .../builtin_hint_processor/secp/signature.rs | 0 .../builtin_hint_processor/segments.rs | 0 .../builtin_hint_processor/set.rs | 0 .../builtin_hint_processor/sha256_utils.rs | 0 .../builtin_hint_processor/signature.rs | 0 .../skip_next_instruction.rs | 0 .../squash_dict_utils.rs | 0 .../builtin_hint_processor/uint256_utils.rs | 0 .../builtin_hint_processor/uint384.rs | 0 .../uint384_extension.rs | 0 .../builtin_hint_processor/uint512_utils.rs | 0 .../builtin_hint_processor/uint_utils.rs | 0 .../builtin_hint_processor/usort.rs | 0 .../builtin_hint_processor/vrf/fq.rs | 0 .../vrf/inv_mod_p_uint512.rs | 0 .../builtin_hint_processor/vrf/mod.rs | 0 .../builtin_hint_processor/vrf/pack.rs | 0 .../cairo_1_hint_processor/dict_manager.rs | 0 .../cairo_1_hint_processor/hint_processor.rs | 0 .../hint_processor_utils.rs | 0 .../cairo_1_hint_processor/mod.rs | 0 .../hint_processor_definition.rs | 0 .../hint_processor/hint_processor_utils.rs | 0 {src => vm/src}/hint_processor/mod.rs | 0 {src => vm/src}/lib.rs | 0 {src => vm/src}/math_utils.rs | 0 {src => vm/src}/serde/deserialize_program.rs | 29 +- {src => vm/src}/serde/deserialize_utils.rs | 0 {src => vm/src}/serde/mod.rs | 0 {src => vm/src}/tests/bitwise_test.rs | 2 +- .../cairo_1_run_from_entrypoint_tests.rs | 104 +++---- {src => vm/src}/tests/cairo_run_test.rs | 276 +++++++++--------- {src => vm/src}/tests/compare_vm_state.sh | 4 +- {src => vm/src}/tests/memory_comparator.py | 0 {src => vm/src}/tests/mod.rs | 0 {src => vm/src}/tests/pedersen_test.rs | 2 +- .../src}/tests/skip_instruction_test.rs | 2 +- {src => vm/src}/tests/struct_test.rs | 2 +- {src => vm/src}/types/errors/math_errors.rs | 0 {src => vm/src}/types/errors/mod.rs | 0 .../src}/types/errors/program_errors.rs | 0 {src => vm/src}/types/exec_scope.rs | 0 .../bitwise_instance_def.rs | 0 .../builtins_instance_def.rs | 0 .../instance_definitions/cpu_instance_def.rs | 0 .../diluted_pool_instance_def.rs | 0 .../ec_op_instance_def.rs | 0 .../ecdsa_instance_def.rs | 0 .../keccak_instance_def.rs | 0 .../src}/types/instance_definitions/mod.rs | 0 .../pedersen_instance_def.rs | 0 .../poseidon_instance_def.rs | 0 .../range_check_instance_def.rs | 0 {src => vm/src}/types/instruction.rs | 0 {src => vm/src}/types/layout.rs | 0 {src => vm/src}/types/mod.rs | 0 {src => vm/src}/types/program.rs | 8 +- {src => vm/src}/types/relocatable.rs | 0 {src => vm/src}/utils.rs | 0 {src => vm/src}/vm/context/mod.rs | 0 {src => vm/src}/vm/context/run_context.rs | 0 {src => vm/src}/vm/decoding/decoder.rs | 0 {src => vm/src}/vm/decoding/mod.rs | 0 {src => vm/src}/vm/errors/cairo_run_errors.rs | 0 .../src}/vm/errors/exec_scope_errors.rs | 0 {src => vm/src}/vm/errors/hint_errors.rs | 0 {src => vm/src}/vm/errors/memory_errors.rs | 0 {src => vm/src}/vm/errors/mod.rs | 0 {src => vm/src}/vm/errors/runner_errors.rs | 0 {src => vm/src}/vm/errors/trace_errors.rs | 0 {src => vm/src}/vm/errors/vm_errors.rs | 0 {src => vm/src}/vm/errors/vm_exception.rs | 29 +- {src => vm/src}/vm/hooks.rs | 6 +- {src => vm/src}/vm/mod.rs | 0 .../src}/vm/runners/builtin_runner/bitwise.rs | 0 .../src}/vm/runners/builtin_runner/ec_op.rs | 5 +- .../src}/vm/runners/builtin_runner/hash.rs | 0 .../src}/vm/runners/builtin_runner/keccak.rs | 2 +- .../src}/vm/runners/builtin_runner/mod.rs | 0 .../src}/vm/runners/builtin_runner/output.rs | 0 .../vm/runners/builtin_runner/poseidon.rs | 0 .../vm/runners/builtin_runner/range_check.rs | 0 .../runners/builtin_runner/segment_arena.rs | 0 .../vm/runners/builtin_runner/signature.rs | 0 {src => vm/src}/vm/runners/cairo_runner.rs | 30 +- {src => vm/src}/vm/runners/mod.rs | 0 {src => vm/src}/vm/security.rs | 0 {src => vm/src}/vm/trace/mod.rs | 0 {src => vm/src}/vm/trace/trace_entry.rs | 0 {src => vm/src}/vm/vm_core.rs | 6 +- {src => vm/src}/vm/vm_memory/memory.rs | 0 .../src}/vm/vm_memory/memory_segments.rs | 0 {src => vm/src}/vm/vm_memory/mod.rs | 0 {src => vm/src}/with_std.rs | 0 {src => vm/src}/without_std.rs | 0 136 files changed, 762 insertions(+), 397 deletions(-) create mode 100644 ensure_no_std/.cargo/config.toml create mode 100644 ensure_no_std/Cargo.lock create mode 100644 ensure_no_std/Cargo.toml create mode 100644 ensure_no_std/src/main.rs create mode 100644 vm/Cargo.toml rename {src => vm/src}/cairo_run.rs (92%) rename {src => vm/src}/hint_processor/builtin_hint_processor/bigint.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/blake2s_hash.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/blake2s_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/builtin_hint_processor_definition.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/cairo_keccak/keccak_hints.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/cairo_keccak/mod.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/dict_hint_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/dict_manager.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/ec_recover.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/ec_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/field_arithmetic.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/find_element_hint.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/garaga.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/hint_code.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/hint_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/keccak_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/math_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/memcpy_hint_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/memset_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/mod.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/poseidon_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/pow_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/secp/bigint_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/secp/ec_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/secp/field_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/secp/mod.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/secp/secp_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/secp/signature.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/segments.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/set.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/sha256_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/signature.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/skip_next_instruction.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/squash_dict_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/uint256_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/uint384.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/uint384_extension.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/uint512_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/uint_utils.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/usort.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/vrf/fq.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/vrf/inv_mod_p_uint512.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/vrf/mod.rs (100%) rename {src => vm/src}/hint_processor/builtin_hint_processor/vrf/pack.rs (100%) rename {src => vm/src}/hint_processor/cairo_1_hint_processor/dict_manager.rs (100%) rename {src => vm/src}/hint_processor/cairo_1_hint_processor/hint_processor.rs (100%) rename {src => vm/src}/hint_processor/cairo_1_hint_processor/hint_processor_utils.rs (100%) rename {src => vm/src}/hint_processor/cairo_1_hint_processor/mod.rs (100%) rename {src => vm/src}/hint_processor/hint_processor_definition.rs (100%) rename {src => vm/src}/hint_processor/hint_processor_utils.rs (100%) rename {src => vm/src}/hint_processor/mod.rs (100%) rename {src => vm/src}/lib.rs (100%) rename {src => vm/src}/math_utils.rs (100%) rename {src => vm/src}/serde/deserialize_program.rs (98%) rename {src => vm/src}/serde/deserialize_utils.rs (100%) rename {src => vm/src}/serde/mod.rs (100%) rename {src => vm/src}/tests/bitwise_test.rs (93%) rename {src => vm/src}/tests/cairo_1_run_from_entrypoint_tests.rs (72%) rename {src => vm/src}/tests/cairo_run_test.rs (64%) rename {src => vm/src}/tests/compare_vm_state.sh (91%) rename {src => vm/src}/tests/memory_comparator.py (100%) rename {src => vm/src}/tests/mod.rs (100%) rename {src => vm/src}/tests/pedersen_test.rs (87%) rename {src => vm/src}/tests/skip_instruction_test.rs (75%) rename {src => vm/src}/tests/struct_test.rs (80%) rename {src => vm/src}/types/errors/math_errors.rs (100%) rename {src => vm/src}/types/errors/mod.rs (100%) rename {src => vm/src}/types/errors/program_errors.rs (100%) rename {src => vm/src}/types/exec_scope.rs (100%) rename {src => vm/src}/types/instance_definitions/bitwise_instance_def.rs (100%) rename {src => vm/src}/types/instance_definitions/builtins_instance_def.rs (100%) rename {src => vm/src}/types/instance_definitions/cpu_instance_def.rs (100%) rename {src => vm/src}/types/instance_definitions/diluted_pool_instance_def.rs (100%) rename {src => vm/src}/types/instance_definitions/ec_op_instance_def.rs (100%) rename {src => vm/src}/types/instance_definitions/ecdsa_instance_def.rs (100%) rename {src => vm/src}/types/instance_definitions/keccak_instance_def.rs (100%) rename {src => vm/src}/types/instance_definitions/mod.rs (100%) rename {src => vm/src}/types/instance_definitions/pedersen_instance_def.rs (100%) rename {src => vm/src}/types/instance_definitions/poseidon_instance_def.rs (100%) rename {src => vm/src}/types/instance_definitions/range_check_instance_def.rs (100%) rename {src => vm/src}/types/instruction.rs (100%) rename {src => vm/src}/types/layout.rs (100%) rename {src => vm/src}/types/mod.rs (100%) rename {src => vm/src}/types/program.rs (98%) rename {src => vm/src}/types/relocatable.rs (100%) rename {src => vm/src}/utils.rs (100%) rename {src => vm/src}/vm/context/mod.rs (100%) rename {src => vm/src}/vm/context/run_context.rs (100%) rename {src => vm/src}/vm/decoding/decoder.rs (100%) rename {src => vm/src}/vm/decoding/mod.rs (100%) rename {src => vm/src}/vm/errors/cairo_run_errors.rs (100%) rename {src => vm/src}/vm/errors/exec_scope_errors.rs (100%) rename {src => vm/src}/vm/errors/hint_errors.rs (100%) rename {src => vm/src}/vm/errors/memory_errors.rs (100%) rename {src => vm/src}/vm/errors/mod.rs (100%) rename {src => vm/src}/vm/errors/runner_errors.rs (100%) rename {src => vm/src}/vm/errors/trace_errors.rs (100%) rename {src => vm/src}/vm/errors/vm_errors.rs (100%) rename {src => vm/src}/vm/errors/vm_exception.rs (96%) rename {src => vm/src}/vm/hooks.rs (97%) rename {src => vm/src}/vm/mod.rs (100%) rename {src => vm/src}/vm/runners/builtin_runner/bitwise.rs (100%) rename {src => vm/src}/vm/runners/builtin_runner/ec_op.rs (99%) rename {src => vm/src}/vm/runners/builtin_runner/hash.rs (100%) rename {src => vm/src}/vm/runners/builtin_runner/keccak.rs (99%) rename {src => vm/src}/vm/runners/builtin_runner/mod.rs (100%) rename {src => vm/src}/vm/runners/builtin_runner/output.rs (100%) rename {src => vm/src}/vm/runners/builtin_runner/poseidon.rs (100%) rename {src => vm/src}/vm/runners/builtin_runner/range_check.rs (100%) rename {src => vm/src}/vm/runners/builtin_runner/segment_arena.rs (100%) rename {src => vm/src}/vm/runners/builtin_runner/signature.rs (100%) rename {src => vm/src}/vm/runners/cairo_runner.rs (99%) rename {src => vm/src}/vm/runners/mod.rs (100%) rename {src => vm/src}/vm/security.rs (100%) rename {src => vm/src}/vm/trace/mod.rs (100%) rename {src => vm/src}/vm/trace/trace_entry.rs (100%) rename {src => vm/src}/vm/vm_core.rs (99%) rename {src => vm/src}/vm/vm_memory/memory.rs (100%) rename {src => vm/src}/vm/vm_memory/memory_segments.rs (100%) rename {src => vm/src}/vm/vm_memory/mod.rs (100%) rename {src => vm/src}/with_std.rs (100%) rename {src => vm/src}/without_std.rs (100%) diff --git a/.github/codecov.yml b/.github/codecov.yml index 07b930c0a2..4513d92b96 100644 --- a/.github/codecov.yml +++ b/.github/codecov.yml @@ -5,8 +5,8 @@ coverage: threshold: 5% ignore: - - src/vm/errors - - src/types/errors + - vm/src/vm/errors + - vm/src/types/errors - hint_accountant - - src/hint_processor/cairo-1-hint-processor # TODO: Remove this line + - vm/src/hint_processor/cairo-1-hint-processor # TODO: Remove this line - ./deps diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 836dad3f85..2e29ece03b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -217,11 +217,11 @@ jobs: cargo llvm-cov nextest --lcov --output-path lcov-${{ matrix.target }}.info --workspace --features "cairo-1-hints, test_utils" ;; 'test-no_std') - cargo llvm-cov nextest --lcov --output-path lcov-${{ matrix.target }}.info --workspace --features test_utils --no-default-features + cargo llvm-cov nextest --lcov --output-path lcov-${{ matrix.target }}.info --workspace --no-default-features ;; 'test-wasm') # NOTE: release mode is needed to avoid "too many locals" error - wasm-pack test --release --node --no-default-features + wasm-pack test --release --node vm --no-default-features ;; esac @@ -423,4 +423,4 @@ jobs: if [ ${{ matrix.program-target }} = cairo_proof_programs ]; then PROOF=proof fi - ./src/tests/compare_vm_state.sh trace memory $PROOF + ./vm/src/tests/compare_vm_state.sh trace memory $PROOF diff --git a/CHANGELOG.md b/CHANGELOG.md index b93b0322e7..e25570b1c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,10 @@ * fix: substraction of `MaybeRelocatable` always behaves as signed [#1218](https://github.com/lambdaclass/cairo-rs/pull/1218) +* move the vm in it's own directory and crate, different from the workspace + +* add a `ensure_no_std` crate that will be used by the CI to check that new changes are not reverting `no_std` support + #### [0.5.1] - 2023-6-7 * fix: fix overflow for `QUAD_BIT` and `DI_BIT` hints [#1209](https://github.com/lambdaclass/cairo-rs/pull/1209) diff --git a/Cargo.lock b/Cargo.lock index 61497fe10c..3c096be74f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,9 +26,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" dependencies = [ "memchr", ] @@ -69,7 +69,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -79,7 +79,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" dependencies = [ "anstyle", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -255,9 +255,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" [[package]] name = "byteorder" @@ -856,7 +856,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.15", ] [[package]] @@ -1033,9 +1033,9 @@ dependencies = [ [[package]] name = "csv" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086" +checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad" dependencies = [ "csv-core", "itoa", @@ -1071,9 +1071,9 @@ checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" [[package]] name = "digest" -version = "0.10.7" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ "block-buffer", "crypto-common", @@ -1147,7 +1147,7 @@ checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" dependencies = [ "errno-dragonfly", "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1249,7 +1249,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.15", ] [[package]] @@ -1331,9 +1331,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" dependencies = [ "cfg-if", "js-sys", @@ -1486,13 +1486,13 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.11" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" dependencies = [ "hermit-abi 0.3.1", "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1504,7 +1504,7 @@ dependencies = [ "hermit-abi 0.3.1", "io-lifetimes", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1588,9 +1588,9 @@ checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" [[package]] name = "libm" -version = "0.2.7" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" +checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" [[package]] name = "libmimalloc-sys" @@ -1604,15 +1604,15 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.3.8" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" dependencies = [ "autocfg", "scopeguard", @@ -1817,9 +1817,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "oorandom" @@ -1851,7 +1851,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.8", + "parking_lot_core 0.9.7", ] [[package]] @@ -1870,15 +1870,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", + "redox_syscall 0.2.16", "smallvec", - "windows-targets", + "windows-sys 0.45.0", ] [[package]] @@ -1999,15 +1999,16 @@ dependencies = [ [[package]] name = "proptest" -version = "1.2.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e35c06b98bf36aba164cc17cb25f7e232f5c4aeea73baa14b8a9f0d92dbfa65" +checksum = "29f1b898011ce9595050a68e60f90bad083ff2987a695a42357134c8381fba70" dependencies = [ "bit-set", "bitflags", "byteorder", "lazy_static", "num-traits 0.2.15", + "quick-error 2.0.1", "rand", "rand_chacha", "rand_xorshift", @@ -2023,11 +2024,17 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + [[package]] name = "quote" -version = "1.0.28" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" dependencies = [ "proc-macro2", ] @@ -2136,13 +2143,13 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.4" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" +checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.2", + "regex-syntax 0.7.1", ] [[package]] @@ -2153,9 +2160,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" +checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" [[package]] name = "relative-path" @@ -2225,7 +2232,7 @@ dependencies = [ "io-lifetimes", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2241,7 +2248,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" dependencies = [ "fnv", - "quick-error", + "quick-error 1.2.3", "tempfile", "wait-timeout", ] @@ -2356,7 +2363,7 @@ checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.15", ] [[package]] @@ -2383,9 +2390,9 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.8" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +checksum = "54c2bb1a323307527314a36bfb73f24febb08ce2b8a554bf4ffd6f51ad15198c" dependencies = [ "digest", "keccak", @@ -2466,7 +2473,7 @@ checksum = "e6dc88f1f470d9de1001ffbb90d2344c9dd1a615f5467daf0574e2975dfd9ebd" dependencies = [ "starknet-curve", "starknet-ff", - "syn 2.0.18", + "syn 2.0.15", ] [[package]] @@ -2511,9 +2518,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "subtle" -version = "2.5.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" @@ -2528,9 +2535,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.18" +version = "2.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" +checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" dependencies = [ "proc-macro2", "quote", @@ -2545,16 +2552,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.6.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" dependencies = [ - "autocfg", "cfg-if", "fastrand", "redox_syscall 0.3.5", "rustix", - "windows-sys", + "windows-sys 0.45.0", ] [[package]] @@ -2609,7 +2615,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.15", ] [[package]] @@ -2634,9 +2640,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.22" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd" +checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" dependencies = [ "itoa", "libc", @@ -2648,15 +2654,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" [[package]] name = "time-macros" -version = "0.2.9" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" +checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" dependencies = [ "time-core", ] @@ -2721,9 +2727,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.9" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" [[package]] name = "unicode-segmentation" @@ -2807,7 +2813,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.15", "wasm-bindgen-shared", ] @@ -2841,7 +2847,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.15", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2917,13 +2923,37 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -2932,51 +2962,93 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.48.0" @@ -3024,5 +3096,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.15", ] diff --git a/Cargo.toml b/Cargo.toml index 7c3433726c..43460fcec6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,44 +1,17 @@ [workspace] -members = [".", "cairo-vm-cli", "felt", "hint_accountant", "./deps/parse-hyperlinks"] +members = ["cairo-vm-cli", "felt", "vm", "hint_accountant", "./deps/parse-hyperlinks"] +exclude = ["ensure_no_std"] -[package] -name = "cairo-vm" -version = "0.5.2" -edition = "2021" -license = "Apache-2.0" -description = "Blazing fast Cairo interpreter" -repository = "https://github.com/lambdaclass/cairo-rs/" - -[features] -default = ["std", "with_mimalloc"] -with_mimalloc = ["mimalloc"] -std = [ - "serde_json/std", - "serde_bytes/std", - "bincode/std", - "anyhow/std", - "starknet-crypto/std", - "parse-hyperlinks/std", - "felt/std", -] -cairo-1-hints = ["cairo-lang-starknet", "cairo-lang-casm", "ark-ff", "ark-std"] - - -# Note that these features are not retro-compatible with the cairo Python VM. -test_utils = [ - "skip_next_instruction_hint", - "hooks" -] # This feature will reference every test-oriented feature -skip_next_instruction_hint = [] -hooks = [] - -[dependencies] -mimalloc = { version = "0.1.29", default-features = false, optional = true } -num-bigint = { version = "0.4", features = ["serde", "rand"], default-features = false } +[workspace.dependencies] +mimalloc = { version = "0.1.29", default-features = false } +num-bigint = { version = "0.4", features = [ + "serde", + "rand", +], default-features = false } rand = { version = "0.8.3", features = ["small_rng"], default-features = false } num-traits = { version = "0.2", default-features = false } num-integer = { version = "0.1.45", default-features = false } -num-prime = {version = "0.4.3", features = ["big-int"], default-features = false } +num-prime = { version = "0.4.3", features = ["big-int"], default-features = false } serde = { version = "1.0", features = ["derive"], default-features = false } serde_bytes = { version = "0.11.9", default-features = false, features = [ "alloc", @@ -83,35 +56,12 @@ felt = { package = "cairo-felt", path = "./felt", version = "0.5.2", default-fea bitvec = { version = "1", default-features = false, features = ["alloc"] } # Dependencies for cairo-1-hints feature -cairo-lang-starknet = {version = "1.1.0", optional = true} -cairo-lang-casm = {version = "1.1.0", optional = true } +cairo-lang-starknet = { version = "1.1.0"} +cairo-lang-casm = { version = "1.1.0"} # TODO: check these dependencies for wasm compatibility -ark-ff = {version = "0.4.0-alpha.7", default-features = false, optional = true} -ark-std = {version = "0.3.0", default-features = false, optional = true} - -[dev-dependencies] -assert_matches = "1.5.0" -rstest = { version = "0.17.0", default-features = false } - -[target.'cfg(target_arch = "wasm32")'.dev-dependencies] -wasm-bindgen-test = "0.3.34" - -[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] -iai-callgrind = "0.3.1" -rusty-hook = "0.11" -criterion = { version = "0.3", features = ["html_reports"] } -proptest = "1.0.0" - -[[bench]] -path = "bench/iai_benchmark.rs" -name = "iai_benchmark" -harness = false - -[[bench]] -path = "bench/criterion_benchmark.rs" -name = "criterion_benchmark" -harness = false +ark-ff = { version = "0.4.0-alpha.7", default-features = false } +ark-std = { version = "0.3.0", default-features = false } [profile.release] lto = "fat" diff --git a/Makefile b/Makefile index aace51f074..2b507729b2 100644 --- a/Makefile +++ b/Makefile @@ -172,7 +172,7 @@ test-no_std: $(COMPILED_PROOF_TESTS) $(COMPILED_TESTS) $(COMPILED_BAD_TESTS) $(C cargo llvm-cov nextest --no-report --workspace --features test_utils --no-default-features test-wasm: $(COMPILED_PROOF_TESTS) $(COMPILED_TESTS) $(COMPILED_BAD_TESTS) $(COMPILED_NORETROCOMPAT_TESTS) # NOTE: release mode is needed to avoid "too many locals" error - wasm-pack test --release --node --no-default-features + wasm-pack test --release --node vm --no-default-features clippy: cargo clippy --workspace --all-features --benches --examples --tests -- -D warnings diff --git a/cairo-vm-cli/Cargo.toml b/cairo-vm-cli/Cargo.toml index 7543eab9e0..230e3eb2c6 100644 --- a/cairo-vm-cli/Cargo.toml +++ b/cairo-vm-cli/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" [dependencies] bincode = { version = "2.0.0-rc.2", tag = "v2.0.0-rc.2", git = "https://github.com/bincode-org/bincode.git" } -cairo-vm = { path = "..", version = "0.5.2" } +cairo-vm = { path = "../vm", version = "0.5.2" } clap = { version = "3.2.5", features = ["derive"] } mimalloc = { version = "0.1.29", default-features = false, optional = true } nom = "7" diff --git a/ensure_no_std/.cargo/config.toml b/ensure_no_std/.cargo/config.toml new file mode 100644 index 0000000000..f4e8c002fc --- /dev/null +++ b/ensure_no_std/.cargo/config.toml @@ -0,0 +1,2 @@ +[build] +target = "wasm32-unknown-unknown" diff --git a/ensure_no_std/Cargo.lock b/ensure_no_std/Cargo.lock new file mode 100644 index 0000000000..6836ce3de1 --- /dev/null +++ b/ensure_no_std/Cargo.lock @@ -0,0 +1,181 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "cairo-felt" +version = "0.5.2" +dependencies = [ + "lazy_static", + "num-bigint", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "ensure_no_std" +version = "0.1.0" +dependencies = [ + "cairo-felt", + "wee_alloc", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin", +] + +[[package]] +name = "libc" +version = "0.2.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc86cde3ff845662b8f4ef6cb50ea0e20c524eb3d29ae048287e06a1b3fa6a81" + +[[package]] +name = "memory_units" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" + +[[package]] +name = "num-bigint" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "proc-macro2" +version = "1.0.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "serde" +version = "1.0.163" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.163" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "syn" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" + +[[package]] +name = "wee_alloc" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" +dependencies = [ + "cfg-if", + "libc", + "memory_units", + "winapi", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/ensure_no_std/Cargo.toml b/ensure_no_std/Cargo.toml new file mode 100644 index 0000000000..46c86ee7d8 --- /dev/null +++ b/ensure_no_std/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "ensure_no_std" +version = "0.1.0" +edition = "2021" + +[dependencies] +cairo-felt = { path = "../felt", default-features = false, features = ["alloc"] } + +wee_alloc = "0.4.5" + + +[profile.dev] +panic = "abort" + +[profile.release] +panic = "abort" diff --git a/ensure_no_std/src/main.rs b/ensure_no_std/src/main.rs new file mode 100644 index 0000000000..8e0d4e6baf --- /dev/null +++ b/ensure_no_std/src/main.rs @@ -0,0 +1,21 @@ +#![no_std] +#![no_main] + +use core::panic::PanicInfo; + +/// This function is called on panic. +#[panic_handler] +fn panic(_info: &PanicInfo) -> ! { + loop {} +} + +#[no_mangle] +pub extern "C" fn _start() -> ! { + loop {} +} + +#[global_allocator] +static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; + +#[allow(unused_imports)] +use cairo_felt; diff --git a/hint_accountant/Cargo.toml b/hint_accountant/Cargo.toml index 7608a6a629..2e344d8e03 100644 --- a/hint_accountant/Cargo.toml +++ b/hint_accountant/Cargo.toml @@ -6,6 +6,6 @@ license = "Apache-2.0" description = "A script to check which whitelisted hints we're missing" [dependencies] -cairo-vm = { path = "..", version = "0.5.2" } +cairo-vm = { path = "../vm", version = "0.5.2" } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/vm/Cargo.toml b/vm/Cargo.toml new file mode 100644 index 0000000000..f4eb3bdfd3 --- /dev/null +++ b/vm/Cargo.toml @@ -0,0 +1,92 @@ +[package] +name = "cairo-vm" +version = "0.5.2" +edition = "2021" +license = "Apache-2.0" +description = "Blazing fast Cairo interpreter" +repository = "https://github.com/lambdaclass/cairo-rs/" + +[features] +default = ["std", "with_mimalloc"] +with_mimalloc = ["mimalloc"] +std = [ + "serde_json/std", + "serde_bytes/std", + "bincode/std", + "anyhow/std", + "starknet-crypto/std", + "parse-hyperlinks/std", + "felt/std", +] +cairo-1-hints = ["cairo-lang-starknet", "cairo-lang-casm", "ark-ff", "ark-std"] + + +# Note that these features are not retro-compatible with the cairo Python VM. +test_utils = ["skip_next_instruction_hint", "hooks"] # This feature will reference every test-oriented feature +skip_next_instruction_hint = [] +hooks = [] + +[dependencies] +mimalloc = {workspace = true, optional = true} +num-bigint = {workspace = true} +rand = {workspace = true} +num-traits = {workspace = true} +num-integer = {workspace = true} +num-prime = {workspace = true} +serde = {workspace = true} +serde_bytes = {workspace = true} +serde_json = {workspace = true} +hex = {workspace = true} +bincode = {workspace = true} +starknet-crypto = {workspace = true} +sha3 = {workspace = true} +rand_core = {workspace = true} +lazy_static = {workspace = true} +nom = {workspace = true} +sha2 = {workspace = true} +generic-array = {workspace = true} +keccak = {workspace = true} +hashbrown = {workspace = true} +anyhow = {workspace = true} +thiserror = {workspace = true} +thiserror-no-std = { workspace = true} + +# This crate has only one function `take_until_unbalanced` that is +# very useful for our parsing purposes: +# https://stackoverflow.com/questions/70630556/parse-allowing-nested-parentheses-in-nom +# There is a proposal for extending nom::delimited to use this function: +# https://github.com/Geal/nom/issues/1253 +parse-hyperlinks = {workspace = true} +felt = {workspace = true} +bitvec = {workspace = true} + +# Dependencies for cairo-1-hints feature +cairo-lang-starknet = {workspace = true, optional = true} +cairo-lang-casm = {workspace = true, optional = true} + +# TODO: check these dependencies for wasm compatibility +ark-ff = {workspace = true, optional = true} +ark-std = {workspace = true, optional = true} + +[dev-dependencies] +assert_matches = "1.5.0" +rstest = { version = "0.17.0", default-features = false } + +[target.'cfg(target_arch = "wasm32")'.dev-dependencies] +wasm-bindgen-test = "0.3.34" + +[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] +iai-callgrind = "0.3.1" +rusty-hook = "0.11" +criterion = { version = "0.3", features = ["html_reports"] } +proptest = "1.0.0" + +[[bench]] +path = "../bench/iai_benchmark.rs" +name = "iai_benchmark" +harness = false + +[[bench]] +path = "../bench/criterion_benchmark.rs" +name = "criterion_benchmark" +harness = false diff --git a/src/cairo_run.rs b/vm/src/cairo_run.rs similarity index 92% rename from src/cairo_run.rs rename to vm/src/cairo_run.rs index 4976c829d6..3538f8597f 100644 --- a/src/cairo_run.rs +++ b/vm/src/cairo_run.rs @@ -166,7 +166,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_custom_entry_point() { let program = Program::from_bytes( - include_bytes!("../cairo_programs/not_main.json"), + include_bytes!("../../cairo_programs/not_main.json"), Some("not_main"), ) .unwrap(); @@ -191,7 +191,7 @@ mod tests { // it should fail when the program is loaded. let mut hint_processor = BuiltinHintProcessor::new_empty(); let no_data_program_path = - include_bytes!("../cairo_programs/manually_compiled/no_data_program.json"); + include_bytes!("../../cairo_programs/manually_compiled/no_data_program.json"); let cairo_run_config = CairoRunConfig::default(); assert!(cairo_run(no_data_program_path, &cairo_run_config, &mut hint_processor,).is_err()); } @@ -203,7 +203,7 @@ mod tests { // it should fail when trying to run initialize_main_entrypoint. let mut hint_processor = BuiltinHintProcessor::new_empty(); let no_main_program = - include_bytes!("../cairo_programs/manually_compiled/no_main_program.json"); + include_bytes!("../../cairo_programs/manually_compiled/no_main_program.json"); let cairo_run_config = CairoRunConfig::default(); assert!(cairo_run(no_main_program, &cairo_run_config, &mut hint_processor,).is_err()); } @@ -215,7 +215,7 @@ mod tests { // decode the instruction. let mut hint_processor = BuiltinHintProcessor::new_empty(); let invalid_memory = - include_bytes!("../cairo_programs/manually_compiled/invalid_memory.json"); + include_bytes!("../../cairo_programs/manually_compiled/invalid_memory.json"); let cairo_run_config = CairoRunConfig::default(); assert!(cairo_run(invalid_memory, &cairo_run_config, &mut hint_processor,).is_err()); } @@ -223,7 +223,7 @@ mod tests { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn write_output_program() { - let program_content = include_bytes!("../cairo_programs/bitwise_output.json"); + let program_content = include_bytes!("../../cairo_programs/bitwise_output.json"); let mut hint_processor = BuiltinHintProcessor::new_empty(); let (_, mut vm) = run_test_program(program_content, &mut hint_processor) .expect("Couldn't initialize cairo runner"); @@ -236,9 +236,9 @@ mod tests { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn write_binary_trace_file() { - let program_content = include_bytes!("../cairo_programs/struct.json"); + let program_content = include_bytes!("../../cairo_programs/struct.json"); let expected_encoded_trace = - include_bytes!("../cairo_programs/trace_memory/cairo_trace_struct"); + include_bytes!("../../cairo_programs/trace_memory/cairo_trace_struct"); // run test program until the end let mut hint_processor = BuiltinHintProcessor::new_empty(); @@ -261,9 +261,9 @@ mod tests { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn write_binary_memory_file() { - let program_content = include_bytes!("../cairo_programs/struct.json"); + let program_content = include_bytes!("../../cairo_programs/struct.json"); let expected_encoded_memory = - include_bytes!("../cairo_programs/trace_memory/cairo_memory_struct"); + include_bytes!("../../cairo_programs/trace_memory/cairo_memory_struct"); // run test program until the end let mut hint_processor = BuiltinHintProcessor::new_empty(); @@ -286,7 +286,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn run_with_no_trace() { let program = Program::from_bytes( - include_bytes!("../cairo_programs/struct.json"), + include_bytes!("../../cairo_programs/struct.json"), Some("main"), ) .unwrap(); diff --git a/src/hint_processor/builtin_hint_processor/bigint.rs b/vm/src/hint_processor/builtin_hint_processor/bigint.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/bigint.rs rename to vm/src/hint_processor/builtin_hint_processor/bigint.rs diff --git a/src/hint_processor/builtin_hint_processor/blake2s_hash.rs b/vm/src/hint_processor/builtin_hint_processor/blake2s_hash.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/blake2s_hash.rs rename to vm/src/hint_processor/builtin_hint_processor/blake2s_hash.rs diff --git a/src/hint_processor/builtin_hint_processor/blake2s_utils.rs b/vm/src/hint_processor/builtin_hint_processor/blake2s_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/blake2s_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/blake2s_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/builtin_hint_processor_definition.rs b/vm/src/hint_processor/builtin_hint_processor/builtin_hint_processor_definition.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/builtin_hint_processor_definition.rs rename to vm/src/hint_processor/builtin_hint_processor/builtin_hint_processor_definition.rs diff --git a/src/hint_processor/builtin_hint_processor/cairo_keccak/keccak_hints.rs b/vm/src/hint_processor/builtin_hint_processor/cairo_keccak/keccak_hints.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/cairo_keccak/keccak_hints.rs rename to vm/src/hint_processor/builtin_hint_processor/cairo_keccak/keccak_hints.rs diff --git a/src/hint_processor/builtin_hint_processor/cairo_keccak/mod.rs b/vm/src/hint_processor/builtin_hint_processor/cairo_keccak/mod.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/cairo_keccak/mod.rs rename to vm/src/hint_processor/builtin_hint_processor/cairo_keccak/mod.rs diff --git a/src/hint_processor/builtin_hint_processor/dict_hint_utils.rs b/vm/src/hint_processor/builtin_hint_processor/dict_hint_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/dict_hint_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/dict_hint_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/dict_manager.rs b/vm/src/hint_processor/builtin_hint_processor/dict_manager.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/dict_manager.rs rename to vm/src/hint_processor/builtin_hint_processor/dict_manager.rs diff --git a/src/hint_processor/builtin_hint_processor/ec_recover.rs b/vm/src/hint_processor/builtin_hint_processor/ec_recover.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/ec_recover.rs rename to vm/src/hint_processor/builtin_hint_processor/ec_recover.rs diff --git a/src/hint_processor/builtin_hint_processor/ec_utils.rs b/vm/src/hint_processor/builtin_hint_processor/ec_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/ec_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/ec_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/field_arithmetic.rs b/vm/src/hint_processor/builtin_hint_processor/field_arithmetic.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/field_arithmetic.rs rename to vm/src/hint_processor/builtin_hint_processor/field_arithmetic.rs diff --git a/src/hint_processor/builtin_hint_processor/find_element_hint.rs b/vm/src/hint_processor/builtin_hint_processor/find_element_hint.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/find_element_hint.rs rename to vm/src/hint_processor/builtin_hint_processor/find_element_hint.rs diff --git a/src/hint_processor/builtin_hint_processor/garaga.rs b/vm/src/hint_processor/builtin_hint_processor/garaga.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/garaga.rs rename to vm/src/hint_processor/builtin_hint_processor/garaga.rs diff --git a/src/hint_processor/builtin_hint_processor/hint_code.rs b/vm/src/hint_processor/builtin_hint_processor/hint_code.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/hint_code.rs rename to vm/src/hint_processor/builtin_hint_processor/hint_code.rs diff --git a/src/hint_processor/builtin_hint_processor/hint_utils.rs b/vm/src/hint_processor/builtin_hint_processor/hint_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/hint_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/hint_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/keccak_utils.rs b/vm/src/hint_processor/builtin_hint_processor/keccak_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/keccak_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/keccak_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/math_utils.rs b/vm/src/hint_processor/builtin_hint_processor/math_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/math_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/math_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/memcpy_hint_utils.rs b/vm/src/hint_processor/builtin_hint_processor/memcpy_hint_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/memcpy_hint_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/memcpy_hint_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/memset_utils.rs b/vm/src/hint_processor/builtin_hint_processor/memset_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/memset_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/memset_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/mod.rs b/vm/src/hint_processor/builtin_hint_processor/mod.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/mod.rs rename to vm/src/hint_processor/builtin_hint_processor/mod.rs diff --git a/src/hint_processor/builtin_hint_processor/poseidon_utils.rs b/vm/src/hint_processor/builtin_hint_processor/poseidon_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/poseidon_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/poseidon_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/pow_utils.rs b/vm/src/hint_processor/builtin_hint_processor/pow_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/pow_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/pow_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/secp/bigint_utils.rs b/vm/src/hint_processor/builtin_hint_processor/secp/bigint_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/secp/bigint_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/secp/bigint_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/secp/ec_utils.rs b/vm/src/hint_processor/builtin_hint_processor/secp/ec_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/secp/ec_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/secp/ec_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/secp/field_utils.rs b/vm/src/hint_processor/builtin_hint_processor/secp/field_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/secp/field_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/secp/field_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/secp/mod.rs b/vm/src/hint_processor/builtin_hint_processor/secp/mod.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/secp/mod.rs rename to vm/src/hint_processor/builtin_hint_processor/secp/mod.rs diff --git a/src/hint_processor/builtin_hint_processor/secp/secp_utils.rs b/vm/src/hint_processor/builtin_hint_processor/secp/secp_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/secp/secp_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/secp/secp_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/secp/signature.rs b/vm/src/hint_processor/builtin_hint_processor/secp/signature.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/secp/signature.rs rename to vm/src/hint_processor/builtin_hint_processor/secp/signature.rs diff --git a/src/hint_processor/builtin_hint_processor/segments.rs b/vm/src/hint_processor/builtin_hint_processor/segments.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/segments.rs rename to vm/src/hint_processor/builtin_hint_processor/segments.rs diff --git a/src/hint_processor/builtin_hint_processor/set.rs b/vm/src/hint_processor/builtin_hint_processor/set.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/set.rs rename to vm/src/hint_processor/builtin_hint_processor/set.rs diff --git a/src/hint_processor/builtin_hint_processor/sha256_utils.rs b/vm/src/hint_processor/builtin_hint_processor/sha256_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/sha256_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/sha256_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/signature.rs b/vm/src/hint_processor/builtin_hint_processor/signature.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/signature.rs rename to vm/src/hint_processor/builtin_hint_processor/signature.rs diff --git a/src/hint_processor/builtin_hint_processor/skip_next_instruction.rs b/vm/src/hint_processor/builtin_hint_processor/skip_next_instruction.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/skip_next_instruction.rs rename to vm/src/hint_processor/builtin_hint_processor/skip_next_instruction.rs diff --git a/src/hint_processor/builtin_hint_processor/squash_dict_utils.rs b/vm/src/hint_processor/builtin_hint_processor/squash_dict_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/squash_dict_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/squash_dict_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/uint256_utils.rs b/vm/src/hint_processor/builtin_hint_processor/uint256_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/uint256_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/uint256_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/uint384.rs b/vm/src/hint_processor/builtin_hint_processor/uint384.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/uint384.rs rename to vm/src/hint_processor/builtin_hint_processor/uint384.rs diff --git a/src/hint_processor/builtin_hint_processor/uint384_extension.rs b/vm/src/hint_processor/builtin_hint_processor/uint384_extension.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/uint384_extension.rs rename to vm/src/hint_processor/builtin_hint_processor/uint384_extension.rs diff --git a/src/hint_processor/builtin_hint_processor/uint512_utils.rs b/vm/src/hint_processor/builtin_hint_processor/uint512_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/uint512_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/uint512_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/uint_utils.rs b/vm/src/hint_processor/builtin_hint_processor/uint_utils.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/uint_utils.rs rename to vm/src/hint_processor/builtin_hint_processor/uint_utils.rs diff --git a/src/hint_processor/builtin_hint_processor/usort.rs b/vm/src/hint_processor/builtin_hint_processor/usort.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/usort.rs rename to vm/src/hint_processor/builtin_hint_processor/usort.rs diff --git a/src/hint_processor/builtin_hint_processor/vrf/fq.rs b/vm/src/hint_processor/builtin_hint_processor/vrf/fq.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/vrf/fq.rs rename to vm/src/hint_processor/builtin_hint_processor/vrf/fq.rs diff --git a/src/hint_processor/builtin_hint_processor/vrf/inv_mod_p_uint512.rs b/vm/src/hint_processor/builtin_hint_processor/vrf/inv_mod_p_uint512.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/vrf/inv_mod_p_uint512.rs rename to vm/src/hint_processor/builtin_hint_processor/vrf/inv_mod_p_uint512.rs diff --git a/src/hint_processor/builtin_hint_processor/vrf/mod.rs b/vm/src/hint_processor/builtin_hint_processor/vrf/mod.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/vrf/mod.rs rename to vm/src/hint_processor/builtin_hint_processor/vrf/mod.rs diff --git a/src/hint_processor/builtin_hint_processor/vrf/pack.rs b/vm/src/hint_processor/builtin_hint_processor/vrf/pack.rs similarity index 100% rename from src/hint_processor/builtin_hint_processor/vrf/pack.rs rename to vm/src/hint_processor/builtin_hint_processor/vrf/pack.rs diff --git a/src/hint_processor/cairo_1_hint_processor/dict_manager.rs b/vm/src/hint_processor/cairo_1_hint_processor/dict_manager.rs similarity index 100% rename from src/hint_processor/cairo_1_hint_processor/dict_manager.rs rename to vm/src/hint_processor/cairo_1_hint_processor/dict_manager.rs diff --git a/src/hint_processor/cairo_1_hint_processor/hint_processor.rs b/vm/src/hint_processor/cairo_1_hint_processor/hint_processor.rs similarity index 100% rename from src/hint_processor/cairo_1_hint_processor/hint_processor.rs rename to vm/src/hint_processor/cairo_1_hint_processor/hint_processor.rs diff --git a/src/hint_processor/cairo_1_hint_processor/hint_processor_utils.rs b/vm/src/hint_processor/cairo_1_hint_processor/hint_processor_utils.rs similarity index 100% rename from src/hint_processor/cairo_1_hint_processor/hint_processor_utils.rs rename to vm/src/hint_processor/cairo_1_hint_processor/hint_processor_utils.rs diff --git a/src/hint_processor/cairo_1_hint_processor/mod.rs b/vm/src/hint_processor/cairo_1_hint_processor/mod.rs similarity index 100% rename from src/hint_processor/cairo_1_hint_processor/mod.rs rename to vm/src/hint_processor/cairo_1_hint_processor/mod.rs diff --git a/src/hint_processor/hint_processor_definition.rs b/vm/src/hint_processor/hint_processor_definition.rs similarity index 100% rename from src/hint_processor/hint_processor_definition.rs rename to vm/src/hint_processor/hint_processor_definition.rs diff --git a/src/hint_processor/hint_processor_utils.rs b/vm/src/hint_processor/hint_processor_utils.rs similarity index 100% rename from src/hint_processor/hint_processor_utils.rs rename to vm/src/hint_processor/hint_processor_utils.rs diff --git a/src/hint_processor/mod.rs b/vm/src/hint_processor/mod.rs similarity index 100% rename from src/hint_processor/mod.rs rename to vm/src/hint_processor/mod.rs diff --git a/src/lib.rs b/vm/src/lib.rs similarity index 100% rename from src/lib.rs rename to vm/src/lib.rs diff --git a/src/math_utils.rs b/vm/src/math_utils.rs similarity index 100% rename from src/math_utils.rs rename to vm/src/math_utils.rs diff --git a/src/serde/deserialize_program.rs b/vm/src/serde/deserialize_program.rs similarity index 98% rename from src/serde/deserialize_program.rs rename to vm/src/serde/deserialize_program.rs index d2ec8f42a3..af03542197 100644 --- a/src/serde/deserialize_program.rs +++ b/vm/src/serde/deserialize_program.rs @@ -723,7 +723,8 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn deserialize_program_json_from_json_file_a() { // Open json file with (valid) even length encoded hex - let reader = include_bytes!("../../cairo_programs/manually_compiled/valid_program_a.json"); + let reader = + include_bytes!("../../../cairo_programs/manually_compiled/valid_program_a.json"); let program_json: ProgramJson = serde_json::from_slice(reader).unwrap(); @@ -740,7 +741,8 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn deserialize_program_json_from_json_file_b() { // Open json file with (valid) odd length encoded hex - let reader = include_bytes!("../../cairo_programs/manually_compiled/valid_program_b.json"); + let reader = + include_bytes!("../../../cairo_programs/manually_compiled/valid_program_b.json"); let program_json: ProgramJson = serde_json::from_slice(reader).unwrap(); let builtins: Vec = vec![BuiltinName::output, BuiltinName::range_check]; @@ -758,8 +760,9 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn deserialize_program_json_from_json_file_gives_error() { // Open json file with (invalid) even length encoded hex - let reader = - include_bytes!("../../cairo_programs/manually_compiled/invalid_even_length_hex.json"); + let reader = include_bytes!( + "../../../cairo_programs/manually_compiled/invalid_even_length_hex.json" + ); let even_result: Result = serde_json::from_slice(reader); @@ -767,7 +770,7 @@ mod tests { // Open json file with (invalid) odd length encoded hex let reader = - include_bytes!("../../cairo_programs/manually_compiled/invalid_odd_length_hex.json"); + include_bytes!("../../../cairo_programs/manually_compiled/invalid_odd_length_hex.json"); let odd_result: Result = serde_json::from_slice(reader); @@ -777,7 +780,8 @@ mod tests { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn deserialize_missing_entrypoint_gives_error() { - let reader = include_bytes!("../../cairo_programs/manually_compiled/valid_program_a.json"); + let reader = + include_bytes!("../../../cairo_programs/manually_compiled/valid_program_a.json"); let deserialization_result = deserialize_and_parse_program(reader, Some("missing_function")); @@ -791,7 +795,8 @@ mod tests { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn deserialize_program_test() { - let reader = include_bytes!("../../cairo_programs/manually_compiled/valid_program_a.json"); + let reader = + include_bytes!("../../../cairo_programs/manually_compiled/valid_program_a.json"); let program: Program = deserialize_and_parse_program(reader, Some("main")) .expect("Failed to deserialize program"); @@ -849,7 +854,8 @@ mod tests { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn deserialize_program_without_entrypoint_test() { - let reader = include_bytes!("../../cairo_programs/manually_compiled/valid_program_a.json"); + let reader = + include_bytes!("../../../cairo_programs/manually_compiled/valid_program_a.json"); let program: Program = deserialize_and_parse_program(reader, None).expect("Failed to deserialize program"); @@ -906,8 +912,9 @@ mod tests { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn deserialize_constant() { - let reader = - include_bytes!("../../cairo_programs/manually_compiled/deserialize_constant_test.json"); + let reader = include_bytes!( + "../../../cairo_programs/manually_compiled/deserialize_constant_test.json" + ); let program_json: ProgramJson = serde_json::from_slice(reader).unwrap(); let mut identifiers: HashMap = HashMap::new(); @@ -1351,7 +1358,7 @@ mod tests { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn deserialize_program_with_type_definition() { - let reader = include_bytes!("../../cairo_programs/uint256_integration_tests.json"); + let reader = include_bytes!("../../../cairo_programs/uint256_integration_tests.json"); let program_json: ProgramJson = serde_json::from_slice(reader).unwrap(); diff --git a/src/serde/deserialize_utils.rs b/vm/src/serde/deserialize_utils.rs similarity index 100% rename from src/serde/deserialize_utils.rs rename to vm/src/serde/deserialize_utils.rs diff --git a/src/serde/mod.rs b/vm/src/serde/mod.rs similarity index 100% rename from src/serde/mod.rs rename to vm/src/serde/mod.rs diff --git a/src/tests/bitwise_test.rs b/vm/src/tests/bitwise_test.rs similarity index 93% rename from src/tests/bitwise_test.rs rename to vm/src/tests/bitwise_test.rs index f42b66a6b1..32380debbe 100644 --- a/src/tests/bitwise_test.rs +++ b/vm/src/tests/bitwise_test.rs @@ -6,7 +6,7 @@ use wasm_bindgen_test::*; #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn bitwise_integration_test() { - let program_data = include_bytes!("../../cairo_programs/bitwise_builtin_test.json"); + let program_data = include_bytes!("../../../cairo_programs/bitwise_builtin_test.json"); let trace = [ (27, 72, 72), (28, 73, 72), diff --git a/src/tests/cairo_1_run_from_entrypoint_tests.rs b/vm/src/tests/cairo_1_run_from_entrypoint_tests.rs similarity index 72% rename from src/tests/cairo_1_run_from_entrypoint_tests.rs rename to vm/src/tests/cairo_1_run_from_entrypoint_tests.rs index 5234f966f4..0e72392c3e 100644 --- a/src/tests/cairo_1_run_from_entrypoint_tests.rs +++ b/vm/src/tests/cairo_1_run_from_entrypoint_tests.rs @@ -5,7 +5,7 @@ use assert_matches::assert_matches; #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn test_init_squash_data() { let program_data = - include_bytes!("../../cairo_programs/cairo-1-contracts/init_squash_data.casm"); + include_bytes!("../../../cairo_programs/cairo-1-contracts/init_squash_data.casm"); run_cairo_1_entrypoint( program_data.as_slice(), @@ -18,7 +18,7 @@ fn test_init_squash_data() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn dict_hint_test() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/dict_test.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/dict_test.casm"); run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[5_usize.into()]); } @@ -26,7 +26,7 @@ fn dict_hint_test() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn test_uint256_div_mod_hint_max_value() { let program_data = - include_bytes!("../../cairo_programs/cairo-1-contracts/uint256_div_mod.casm"); + include_bytes!("../../../cairo_programs/cairo-1-contracts/uint256_div_mod.casm"); run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[]); } @@ -35,7 +35,7 @@ fn test_uint256_div_mod_hint_max_value() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn test_uint256_div_mod_hint() { let program_data = - include_bytes!("../../cairo_programs/cairo-1-contracts/uint256_div_mod.casm"); + include_bytes!("../../../cairo_programs/cairo-1-contracts/uint256_div_mod.casm"); run_cairo_1_entrypoint( program_data.as_slice(), @@ -48,7 +48,8 @@ fn test_uint256_div_mod_hint() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn test_less_than_or_equal() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/test_less_than.casm"); + let program_data = + include_bytes!("../../../cairo_programs/cairo-1-contracts/test_less_than.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -74,7 +75,7 @@ fn test_less_than_or_equal() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn fibonacci_1() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/fib.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/fib.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -86,7 +87,7 @@ fn fibonacci_1() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn fibonacci_3() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/fib.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/fib.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -98,7 +99,7 @@ fn fibonacci_3() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u8_sqrt_9() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u8_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u8_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -110,7 +111,7 @@ fn u8_sqrt_9() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u8_sqrt_10() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u8_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u8_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -122,7 +123,7 @@ fn u8_sqrt_10() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u8_sqrt_one() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u8_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u8_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -134,7 +135,7 @@ fn u8_sqrt_one() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u8_sqrt_zero() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u8_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u8_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -146,7 +147,7 @@ fn u8_sqrt_zero() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u16_sqrt_9() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u16_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u16_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -158,7 +159,7 @@ fn u16_sqrt_9() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u16_sqrt_10() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u16_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u16_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -170,7 +171,7 @@ fn u16_sqrt_10() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u16_sqrt_one() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u16_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u16_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -182,7 +183,7 @@ fn u16_sqrt_one() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u16_sqrt_zero() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u16_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u16_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -194,7 +195,7 @@ fn u16_sqrt_zero() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u32_sqrt_9() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u32_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u32_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -206,7 +207,7 @@ fn u32_sqrt_9() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u32_sqrt_10() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u32_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u32_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -218,7 +219,7 @@ fn u32_sqrt_10() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u32_sqrt_one() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u32_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u32_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -230,7 +231,7 @@ fn u32_sqrt_one() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u32_sqrt_zero() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u32_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u32_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -242,7 +243,7 @@ fn u32_sqrt_zero() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u64_sqrt_9() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u64_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u64_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -254,7 +255,7 @@ fn u64_sqrt_9() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u64_sqrt_10() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u64_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u64_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -266,7 +267,7 @@ fn u64_sqrt_10() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u64_sqrt_one() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u64_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u64_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -278,7 +279,7 @@ fn u64_sqrt_one() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u64_sqrt_zero() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u64_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u64_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -290,7 +291,7 @@ fn u64_sqrt_zero() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u128_sqrt_9() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u128_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u128_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -302,7 +303,7 @@ fn u128_sqrt_9() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u128_sqrt_10() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u128_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u128_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -314,7 +315,7 @@ fn u128_sqrt_10() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u128_sqrt_one() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u128_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u128_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -326,7 +327,7 @@ fn u128_sqrt_one() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u128_sqrt_zero() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u128_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u128_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -338,7 +339,7 @@ fn u128_sqrt_zero() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u256_sqrt_9() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u256_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u256_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -350,7 +351,7 @@ fn u256_sqrt_9() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u256_sqrt_10() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u256_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u256_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -362,7 +363,7 @@ fn u256_sqrt_10() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u256_sqrt_one() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u256_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u256_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -374,7 +375,7 @@ fn u256_sqrt_one() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u256_sqrt_zero() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u256_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u256_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -386,7 +387,7 @@ fn u256_sqrt_zero() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u256_sqrt_max_num() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u256_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u256_sqrt.casm"); run_cairo_1_entrypoint(program_data.as_slice(), 257, &[], &[1.into()]); } @@ -394,7 +395,7 @@ fn u256_sqrt_max_num() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u256_sqrt_big_num() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/u256_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/u256_sqrt.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 144, @@ -406,7 +407,7 @@ fn u256_sqrt_big_num() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn divmod_hint_test() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/divmod.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/divmod.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -418,7 +419,8 @@ fn divmod_hint_test() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn alloc_segment_hint_test() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/alloc_segment.casm"); + let program_data = + include_bytes!("../../../cairo_programs/cairo-1-contracts/alloc_segment.casm"); run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[]); } @@ -426,7 +428,7 @@ fn alloc_segment_hint_test() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn should_skip_squash_loop_hint_test() { let program_data = - include_bytes!("../../cairo_programs/cairo-1-contracts/should_skip_squash_loop.casm"); + include_bytes!("../../../cairo_programs/cairo-1-contracts/should_skip_squash_loop.casm"); run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[]); } @@ -434,7 +436,7 @@ fn should_skip_squash_loop_hint_test() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn get_segment_arena_test() { let program_data = - include_bytes!("../../cairo_programs/cairo-1-contracts/get_segment_arena_index.casm"); + include_bytes!("../../../cairo_programs/cairo-1-contracts/get_segment_arena_index.casm"); run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[1_usize.into()]); } @@ -442,7 +444,7 @@ fn get_segment_arena_test() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn boxed_fibonacci() { let program_data = - include_bytes!("../../cairo_programs/cairo-1-contracts/alloc_constant_size.casm"); + include_bytes!("../../../cairo_programs/cairo-1-contracts/alloc_constant_size.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -454,7 +456,8 @@ fn boxed_fibonacci() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn linear_split() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/linear_split.casm"); + let program_data = + include_bytes!("../../../cairo_programs/cairo-1-contracts/linear_split.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -480,7 +483,8 @@ fn linear_split() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn alloc_felt_252_dict() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/felt_252_dict.casm"); + let program_data = + include_bytes!("../../../cairo_programs/cairo-1-contracts/felt_252_dict.casm"); run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[1.into()]); } @@ -488,7 +492,7 @@ fn alloc_felt_252_dict() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn random_ec_point() { let program_data = - include_bytes!("../../cairo_programs/cairo-1-contracts/random_ec_point.casm"); + include_bytes!("../../../cairo_programs/cairo-1-contracts/random_ec_point.casm"); run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[1.into()]); } @@ -496,7 +500,7 @@ fn random_ec_point() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn assert_le_find_small_arcs() { let program_data = - include_bytes!("../../cairo_programs/cairo-1-contracts/assert_le_find_small_arcs.casm"); + include_bytes!("../../../cairo_programs/cairo-1-contracts/assert_le_find_small_arcs.casm"); run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[]); } @@ -504,7 +508,7 @@ fn assert_le_find_small_arcs() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn felt252_dict_entry_init() { let program_data = - include_bytes!("../../cairo_programs/cairo-1-contracts/felt252_dict_entry_init.casm"); + include_bytes!("../../../cairo_programs/cairo-1-contracts/felt252_dict_entry_init.casm"); run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[]); } @@ -512,7 +516,7 @@ fn felt252_dict_entry_init() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn felt252_dict_entry_update() { let program_data = - include_bytes!("../../cairo_programs/cairo-1-contracts/felt252_dict_entry_update.casm"); + include_bytes!("../../../cairo_programs/cairo-1-contracts/felt252_dict_entry_update.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -524,7 +528,7 @@ fn felt252_dict_entry_update() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn widelmul128_test() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/widemul128.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/widemul128.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -541,14 +545,14 @@ fn widelmul128_test() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn field_sqrt_test() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/field_sqrt.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/field_sqrt.casm"); run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[10.into()]); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn uint512_div_mod_test() { let program_data = - include_bytes!("../../cairo_programs/cairo-1-contracts/uint512_div_mod.casm"); + include_bytes!("../../../cairo_programs/cairo-1-contracts/uint512_div_mod.casm"); run_cairo_1_entrypoint( program_data.as_slice(), 0, @@ -567,7 +571,7 @@ fn uint512_div_mod_test() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn fibonacci_with_run_resources_ok() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/fib.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/fib.casm"); let mut resources = Some(RunResources::new(621)); // Program takes 621 steps assert_matches!( @@ -586,7 +590,7 @@ fn fibonacci_with_run_resources_ok() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn fibonacci_with_run_resources_2_ok() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/fib.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/fib.casm"); let mut resources = Some(RunResources::new(1000)); // Program takes 621 steps assert_matches!( @@ -604,7 +608,7 @@ fn fibonacci_with_run_resources_2_ok() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn fibonacci_with_run_resources_error() { - let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/fib.casm"); + let program_data = include_bytes!("../../../cairo_programs/cairo-1-contracts/fib.casm"); let mut resources = Some(RunResources::new(100)); // Program takes 621 steps assert!(run_cairo_1_entrypoint_with_run_resources( diff --git a/src/tests/cairo_run_test.rs b/vm/src/tests/cairo_run_test.rs similarity index 64% rename from src/tests/cairo_run_test.rs rename to vm/src/tests/cairo_run_test.rs index e9a27d6465..513d8828c5 100644 --- a/src/tests/cairo_run_test.rs +++ b/vm/src/tests/cairo_run_test.rs @@ -3,21 +3,21 @@ use crate::tests::*; #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn fibonacci() { - let program_data = include_bytes!("../../cairo_programs/fibonacci.json"); + let program_data = include_bytes!("../../../cairo_programs/fibonacci.json"); run_program_small(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn array_sum() { - let program_data = include_bytes!("../../cairo_programs/array_sum.json"); + let program_data = include_bytes!("../../../cairo_programs/array_sum.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn big_struct() { - let program_data = include_bytes!("../../cairo_programs/big_struct.json"); + let program_data = include_bytes!("../../../cairo_programs/big_struct.json"); run_program_simple(program_data.as_slice()); } @@ -25,455 +25,456 @@ fn big_struct() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn call_function_assign_param_by_name() { let program_data = - include_bytes!("../../cairo_programs/call_function_assign_param_by_name.json"); + include_bytes!("../../../cairo_programs/call_function_assign_param_by_name.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn function_return() { - let program_data = include_bytes!("../../cairo_programs/function_return.json"); + let program_data = include_bytes!("../../../cairo_programs/function_return.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn function_return_if_print() { - let program_data = include_bytes!("../../cairo_programs/function_return_if_print.json"); + let program_data = include_bytes!("../../../cairo_programs/function_return_if_print.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn function_return_to_variable() { - let program_data = include_bytes!("../../cairo_programs/function_return_to_variable.json"); + let program_data = include_bytes!("../../../cairo_programs/function_return_to_variable.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn if_and_prime() { - let program_data = include_bytes!("../../cairo_programs/if_and_prime.json"); + let program_data = include_bytes!("../../../cairo_programs/if_and_prime.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn if_in_function() { - let program_data = include_bytes!("../../cairo_programs/if_in_function.json"); + let program_data = include_bytes!("../../../cairo_programs/if_in_function.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn if_list() { - let program_data = include_bytes!("../../cairo_programs/if_list.json"); + let program_data = include_bytes!("../../../cairo_programs/if_list.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn jmp() { - let program_data = include_bytes!("../../cairo_programs/jmp.json"); + let program_data = include_bytes!("../../../cairo_programs/jmp.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn jmp_if_condition() { - let program_data = include_bytes!("../../cairo_programs/jmp_if_condition.json"); + let program_data = include_bytes!("../../../cairo_programs/jmp_if_condition.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 1); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn pointers() { - let program_data = include_bytes!("../../cairo_programs/pointers.json"); + let program_data = include_bytes!("../../../cairo_programs/pointers.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn print() { - let program_data = include_bytes!("../../cairo_programs/print.json"); + let program_data = include_bytes!("../../../cairo_programs/print.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn program_return() { - let program_data = include_bytes!("../../cairo_programs/return.json"); + let program_data = include_bytes!("../../../cairo_programs/return.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn reversed_register_instructions() { - let program_data = include_bytes!("../../cairo_programs/reversed_register_instructions.json"); + let program_data = + include_bytes!("../../../cairo_programs/reversed_register_instructions.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn simple_print() { - let program_data = include_bytes!("../../cairo_programs/simple_print.json"); + let program_data = include_bytes!("../../../cairo_programs/simple_print.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn test_addition_if() { - let program_data = include_bytes!("../../cairo_programs/test_addition_if.json"); + let program_data = include_bytes!("../../../cairo_programs/test_addition_if.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn test_reverse_if() { - let program_data = include_bytes!("../../cairo_programs/test_reverse_if.json"); + let program_data = include_bytes!("../../../cairo_programs/test_reverse_if.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn test_subtraction_if() { - let program_data = include_bytes!("../../cairo_programs/test_subtraction_if.json"); + let program_data = include_bytes!("../../../cairo_programs/test_subtraction_if.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn use_imported_module() { - let program_data = include_bytes!("../../cairo_programs/use_imported_module.json"); + let program_data = include_bytes!("../../../cairo_programs/use_imported_module.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn bitwise_output() { - let program_data = include_bytes!("../../cairo_programs/bitwise_output.json"); + let program_data = include_bytes!("../../../cairo_programs/bitwise_output.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn bitwise_recursion() { - let program_data = include_bytes!("../../cairo_programs/bitwise_recursion.json"); + let program_data = include_bytes!("../../../cairo_programs/bitwise_recursion.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn integration() { - let program_data = include_bytes!("../../cairo_programs/integration.json"); + let program_data = include_bytes!("../../../cairo_programs/integration.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn integration_with_alloc_locals() { - let program_data = include_bytes!("../../cairo_programs/integration_with_alloc_locals.json"); + let program_data = include_bytes!("../../../cairo_programs/integration_with_alloc_locals.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn compare_arrays() { - let program_data = include_bytes!("../../cairo_programs/compare_arrays.json"); + let program_data = include_bytes!("../../../cairo_programs/compare_arrays.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn compare_greater_array() { - let program_data = include_bytes!("../../cairo_programs/compare_greater_array.json"); + let program_data = include_bytes!("../../../cairo_programs/compare_greater_array.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 170); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn compare_lesser_array() { - let program_data = include_bytes!("../../cairo_programs/compare_lesser_array.json"); + let program_data = include_bytes!("../../../cairo_programs/compare_lesser_array.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 200); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn assert_le_felt_hint() { - let program_data = include_bytes!("../../cairo_programs/assert_le_felt_hint.json"); + let program_data = include_bytes!("../../../cairo_programs/assert_le_felt_hint.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 2); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn assert_250_bit_element_array() { - let program_data = include_bytes!("../../cairo_programs/assert_250_bit_element_array.json"); + let program_data = include_bytes!("../../../cairo_programs/assert_250_bit_element_array.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn abs_value_array() { - let program_data = include_bytes!("../../cairo_programs/abs_value_array.json"); + let program_data = include_bytes!("../../../cairo_programs/abs_value_array.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn compare_different_arrays() { - let program_data = include_bytes!("../../cairo_programs/compare_different_arrays.json"); + let program_data = include_bytes!("../../../cairo_programs/compare_different_arrays.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn assert_nn() { - let program_data = include_bytes!("../../cairo_programs/assert_nn.json"); + let program_data = include_bytes!("../../../cairo_programs/assert_nn.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn sqrt() { - let program_data = include_bytes!("../../cairo_programs/sqrt.json"); + let program_data = include_bytes!("../../../cairo_programs/sqrt.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn assert_not_zero() { - let program_data = include_bytes!("../../cairo_programs/assert_not_zero.json"); + let program_data = include_bytes!("../../../cairo_programs/assert_not_zero.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn split_int() { - let program_data = include_bytes!("../../cairo_programs/split_int.json"); + let program_data = include_bytes!("../../../cairo_programs/split_int.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn split_int_big() { - let program_data = include_bytes!("../../cairo_programs/split_int_big.json"); + let program_data = include_bytes!("../../../cairo_programs/split_int_big.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn split_felt() { - let program_data = include_bytes!("../../cairo_programs/split_felt.json"); + let program_data = include_bytes!("../../../cairo_programs/split_felt.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn math_cmp() { - let program_data = include_bytes!("../../cairo_programs/math_cmp.json"); + let program_data = include_bytes!("../../../cairo_programs/math_cmp.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 372); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn unsigned_div_rem() { - let program_data = include_bytes!("../../cairo_programs/unsigned_div_rem.json"); + let program_data = include_bytes!("../../../cairo_programs/unsigned_div_rem.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn signed_div_rem() { - let program_data = include_bytes!("../../cairo_programs/signed_div_rem.json"); + let program_data = include_bytes!("../../../cairo_programs/signed_div_rem.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn assert_lt_felt() { - let program_data = include_bytes!("../../cairo_programs/assert_lt_felt.json"); + let program_data = include_bytes!("../../../cairo_programs/assert_lt_felt.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 8); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn memcpy_test() { - let program_data = include_bytes!("../../cairo_programs/memcpy_test.json"); + let program_data = include_bytes!("../../../cairo_programs/memcpy_test.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn memset() { - let program_data = include_bytes!("../../cairo_programs/memset.json"); + let program_data = include_bytes!("../../../cairo_programs/memset.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn pow() { - let program_data = include_bytes!("../../cairo_programs/pow.json"); + let program_data = include_bytes!("../../../cairo_programs/pow.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 6); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn dict() { - let program_data = include_bytes!("../../cairo_programs/dict.json"); + let program_data = include_bytes!("../../../cairo_programs/dict.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 4); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn dict_update() { - let program_data = include_bytes!("../../cairo_programs/dict_update.json"); + let program_data = include_bytes!("../../../cairo_programs/dict_update.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 1); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn uint256() { - let program_data = include_bytes!("../../cairo_programs/uint256.json"); + let program_data = include_bytes!("../../../cairo_programs/uint256.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 3534); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn find_element() { - let program_data = include_bytes!("../../cairo_programs/find_element.json"); + let program_data = include_bytes!("../../../cairo_programs/find_element.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn search_sorted_lower() { - let program_data = include_bytes!("../../cairo_programs/search_sorted_lower.json"); + let program_data = include_bytes!("../../../cairo_programs/search_sorted_lower.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 4); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn usort() { - let program_data = include_bytes!("../../cairo_programs/usort.json"); + let program_data = include_bytes!("../../../cairo_programs/usort.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 3); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn squash_dict() { - let program_data = include_bytes!("../../cairo_programs/squash_dict.json"); + let program_data = include_bytes!("../../../cairo_programs/squash_dict.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn dict_squash() { - let program_data = include_bytes!("../../cairo_programs/dict_squash.json"); + let program_data = include_bytes!("../../../cairo_programs/dict_squash.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn set_add() { - let program_data = include_bytes!("../../cairo_programs/set_add.json"); + let program_data = include_bytes!("../../../cairo_programs/set_add.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 2); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn secp() { - let program_data = include_bytes!("../../cairo_programs/secp.json"); + let program_data = include_bytes!("../../../cairo_programs/secp.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn secp_ec() { - let program_data = include_bytes!("../../cairo_programs/secp_ec.json"); + let program_data = include_bytes!("../../../cairo_programs/secp_ec.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 1752); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn signature() { - let program_data = include_bytes!("../../cairo_programs/signature.json"); + let program_data = include_bytes!("../../../cairo_programs/signature.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn blake2s_hello_world_hash() { - let program_data = include_bytes!("../../cairo_programs/blake2s_hello_world_hash.json"); + let program_data = include_bytes!("../../../cairo_programs/blake2s_hello_world_hash.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 20); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn example_blake2s() { - let program_data = include_bytes!("../../cairo_programs/example_blake2s.json"); + let program_data = include_bytes!("../../../cairo_programs/example_blake2s.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 2); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn finalize_blake2s() { - let program_data = include_bytes!("../../cairo_programs/finalize_blake2s.json"); + let program_data = include_bytes!("../../../cairo_programs/finalize_blake2s.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 20); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn finalize_blake2s_v2_hint() { - let program_data = include_bytes!("../../cairo_programs/finalize_blake2s_v2_hint.json"); + let program_data = include_bytes!("../../../cairo_programs/finalize_blake2s_v2_hint.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 20); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn unsafe_keccak() { - let program_data = include_bytes!("../../cairo_programs/unsafe_keccak.json"); + let program_data = include_bytes!("../../../cairo_programs/unsafe_keccak.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn blake2s_felts() { - let program_data = include_bytes!("../../cairo_programs/blake2s_felts.json"); + let program_data = include_bytes!("../../../cairo_programs/blake2s_felts.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 139); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn unsafe_keccak_finalize() { - let program_data = include_bytes!("../../cairo_programs/unsafe_keccak_finalize.json"); + let program_data = include_bytes!("../../../cairo_programs/unsafe_keccak_finalize.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn keccak_add_uint256() { - let program_data = include_bytes!("../../cairo_programs/keccak_add_uint256.json"); + let program_data = include_bytes!("../../../cairo_programs/keccak_add_uint256.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn keccak() { - let program_data = include_bytes!("../../cairo_programs/_keccak.json"); + let program_data = include_bytes!("../../../cairo_programs/_keccak.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 21); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn keccak_copy_inputs() { - let program_data = include_bytes!("../../cairo_programs/keccak_copy_inputs.json"); + let program_data = include_bytes!("../../../cairo_programs/keccak_copy_inputs.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_finalize_keccak_v1() { - let program_data = include_bytes!("../../cairo_programs/cairo_finalize_keccak.json"); + let program_data = include_bytes!("../../../cairo_programs/cairo_finalize_keccak.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 50); } @@ -481,21 +482,22 @@ fn cairo_finalize_keccak_v1() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_finalize_keccak_v2() { let program_data = - include_bytes!("../../cairo_programs/cairo_finalize_keccak_block_size_1000.json"); + include_bytes!("../../../cairo_programs/cairo_finalize_keccak_block_size_1000.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 50); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn operations_with_data_structures() { - let program_data = include_bytes!("../../cairo_programs/operations_with_data_structures.json"); + let program_data = + include_bytes!("../../../cairo_programs/operations_with_data_structures.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 72); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn packed_sha256() { - let program_data = include_bytes!("../../cairo_programs/packed_sha256_test.json"); + let program_data = include_bytes!("../../../cairo_programs/packed_sha256_test.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 2); } @@ -503,91 +505,91 @@ fn packed_sha256() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn math_cmp_and_pow_integration_tests() { let program_data = - include_bytes!("../../cairo_programs/math_cmp_and_pow_integration_tests.json"); + include_bytes!("../../../cairo_programs/math_cmp_and_pow_integration_tests.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 1213); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn uint256_integration_tests() { - let program_data = include_bytes!("../../cairo_programs/uint256_integration_tests.json"); + let program_data = include_bytes!("../../../cairo_programs/uint256_integration_tests.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 1027); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn set_integration_tests() { - let program_data = include_bytes!("../../cairo_programs/set_integration_tests.json"); + let program_data = include_bytes!("../../../cairo_programs/set_integration_tests.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 20); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn memory_integration_tests() { - let program_data = include_bytes!("../../cairo_programs/memory_integration_tests.json"); + let program_data = include_bytes!("../../../cairo_programs/memory_integration_tests.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 5); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn dict_integration_tests() { - let program_data = include_bytes!("../../cairo_programs/dict_integration_tests.json"); + let program_data = include_bytes!("../../../cairo_programs/dict_integration_tests.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 32); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn secp_integration_tests() { - let program_data = include_bytes!("../../cairo_programs/secp_integration_tests.json"); + let program_data = include_bytes!("../../../cairo_programs/secp_integration_tests.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 4626); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn keccak_integration_tests() { - let program_data = include_bytes!("../../cairo_programs/keccak_integration_tests.json"); + let program_data = include_bytes!("../../../cairo_programs/keccak_integration_tests.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 507); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn blake2s_integration_tests() { - let program_data = include_bytes!("../../cairo_programs/blake2s_integration_tests.json"); + let program_data = include_bytes!("../../../cairo_programs/blake2s_integration_tests.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 409); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn relocate_segments() { - let program_data = include_bytes!("../../cairo_programs/relocate_segments.json"); + let program_data = include_bytes!("../../../cairo_programs/relocate_segments.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn relocate_segments_with_offset() { - let program_data = include_bytes!("../../cairo_programs/relocate_segments_with_offset.json"); + let program_data = include_bytes!("../../../cairo_programs/relocate_segments_with_offset.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 5); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn dict_store_cast_ptr() { - let program_data = include_bytes!("../../cairo_programs/dict_store_cast_ptr.json"); + let program_data = include_bytes!("../../../cairo_programs/dict_store_cast_ptr.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 1); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn common_signature() { - let program_data = include_bytes!("../../cairo_programs/common_signature.json"); + let program_data = include_bytes!("../../../cairo_programs/common_signature.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn bad_usort() { - let program_data = include_bytes!("../../cairo_programs/bad_programs/bad_usort.json"); + let program_data = include_bytes!("../../../cairo_programs/bad_programs/bad_usort.json"); let error_msg = "unexpected verify multiplicity fail: positions length != 0"; run_program_with_error(program_data.as_slice(), error_msg); } @@ -595,7 +597,7 @@ fn bad_usort() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn bad_dict_new() { - let program_data = include_bytes!("../../cairo_programs/bad_programs/bad_dict_new.json"); + let program_data = include_bytes!("../../../cairo_programs/bad_programs/bad_dict_new.json"); let error_msg = "Dict Error: Tried to create a dict without an initial dict"; run_program_with_error(program_data.as_slice(), error_msg); } @@ -603,7 +605,7 @@ fn bad_dict_new() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn bad_dict_update() { - let program_data = include_bytes!("../../cairo_programs/bad_programs/bad_dict_update.json"); + let program_data = include_bytes!("../../../cairo_programs/bad_programs/bad_dict_update.json"); let error_msg = "Dict Error: Got the wrong value for dict_update, expected value: 3, got: 5 for key: 2"; run_program_with_error(program_data.as_slice(), error_msg); @@ -612,7 +614,7 @@ fn bad_dict_update() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn error_msg_attr() { - let program_data = include_bytes!("../../cairo_programs/bad_programs/error_msg_attr.json"); + let program_data = include_bytes!("../../../cairo_programs/bad_programs/error_msg_attr.json"); let error_msg = "SafeUint256: addition overflow"; run_program_with_error(program_data.as_slice(), error_msg); } @@ -621,7 +623,7 @@ fn error_msg_attr() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn error_msg_attr_tempvar() { let program_data = - include_bytes!("../../cairo_programs/bad_programs/error_msg_attr_tempvar.json"); + include_bytes!("../../../cairo_programs/bad_programs/error_msg_attr_tempvar.json"); #[cfg(feature = "std")] let error_msg = "Error message: SafeUint256: addition overflow: {x} (Cannot evaluate ap-based or complex references: ['x'])\ncairo_programs/bad_programs/error_msg_attr_tempvar.cairo:4:9: Error at pc=0:2:\nAn ASSERT_EQ instruction failed: 3 != 2.\n assert x = 2;\n ^***********^\n"; @@ -634,7 +636,7 @@ fn error_msg_attr_tempvar() { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn error_msg_attr_struct() { let program_data = - include_bytes!("../../cairo_programs/bad_programs/error_msg_attr_struct.json"); + include_bytes!("../../../cairo_programs/bad_programs/error_msg_attr_struct.json"); let error_msg = "Error message: Cats cannot have more than nine lives: {cat} (Cannot evaluate ap-based or complex references: ['cat'])"; run_program_with_error(program_data.as_slice(), error_msg); } @@ -642,334 +644,334 @@ fn error_msg_attr_struct() { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn poseidon_builtin() { - let program_data = include_bytes!("../../cairo_programs/poseidon_builtin.json"); + let program_data = include_bytes!("../../../cairo_programs/poseidon_builtin.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn ec_op() { - let program_data = include_bytes!("../../cairo_programs/ec_op.json"); + let program_data = include_bytes!("../../../cairo_programs/ec_op.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn poseidon_hash() { - let program_data = include_bytes!("../../cairo_programs/poseidon_hash.json"); + let program_data = include_bytes!("../../../cairo_programs/poseidon_hash.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_chained_run_ec_op() { - let program_data = include_bytes!("../../cairo_programs/chained_ec_op.json"); + let program_data = include_bytes!("../../../cairo_programs/chained_ec_op.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn keccak_builtin() { - let program_data = include_bytes!("../../cairo_programs/keccak_builtin.json"); + let program_data = include_bytes!("../../../cairo_programs/keccak_builtin.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn keccak_uint256() { - let program_data = include_bytes!("../../cairo_programs/keccak_uint256.json"); + let program_data = include_bytes!("../../../cairo_programs/keccak_uint256.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn recover_y() { - let program_data = include_bytes!("../../cairo_programs/recover_y.json"); + let program_data = include_bytes!("../../../cairo_programs/recover_y.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn math_integration() { - let program_data = include_bytes!("../../cairo_programs/math_integration_tests.json"); + let program_data = include_bytes!("../../../cairo_programs/math_integration_tests.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 109); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn is_quad_residue_test() { - let program_data = include_bytes!("../../cairo_programs/is_quad_residue_test.json"); + let program_data = include_bytes!("../../../cairo_programs/is_quad_residue_test.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 6); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn mul_s_inv() { - let program_data = include_bytes!("../../cairo_programs/mul_s_inv.json"); + let program_data = include_bytes!("../../../cairo_programs/mul_s_inv.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn keccak_alternative_hint() { - let program_data = include_bytes!("../../cairo_programs/_keccak_alternative_hint.json"); + let program_data = include_bytes!("../../../cairo_programs/_keccak_alternative_hint.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 24); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn uint384() { - let program_data = include_bytes!("../../cairo_programs/uint384_test.json"); + let program_data = include_bytes!("../../../cairo_programs/uint384_test.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 54); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn uint384_extension() { - let program_data = include_bytes!("../../cairo_programs/uint384_extension_test.json"); + let program_data = include_bytes!("../../../cairo_programs/uint384_extension_test.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 40); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn field_arithmetic() { - let program_data = include_bytes!("../../cairo_programs/field_arithmetic.json"); + let program_data = include_bytes!("../../../cairo_programs/field_arithmetic.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 507); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn ed25519_field() { - let program_data = include_bytes!("../../cairo_programs/ed25519_field.json"); + let program_data = include_bytes!("../../../cairo_programs/ed25519_field.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn ed25519_ec() { - let program_data = include_bytes!("../../cairo_programs/ed25519_ec.json"); + let program_data = include_bytes!("../../../cairo_programs/ed25519_ec.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn efficient_secp256r1_ec() { - let program_data = include_bytes!("../../cairo_programs/efficient_secp256r1_ec.json"); + let program_data = include_bytes!("../../../cairo_programs/efficient_secp256r1_ec.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_secp256r1_slope() { - let program_data = include_bytes!("../../cairo_programs/secp256r1_slope.json"); + let program_data = include_bytes!("../../../cairo_programs/secp256r1_slope.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn garaga() { - let program_data = include_bytes!("../../cairo_programs/garaga.json"); + let program_data = include_bytes!("../../../cairo_programs/garaga.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_bigint_div_mod() { - let program_data = include_bytes!("../../cairo_programs/bigint.json"); + let program_data = include_bytes!("../../../cairo_programs/bigint.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn div_mod_n() { - let program_data = include_bytes!("../../cairo_programs/div_mod_n.json"); + let program_data = include_bytes!("../../../cairo_programs/div_mod_n.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn is_zero() { - let program_data = include_bytes!("../../cairo_programs/is_zero.json"); + let program_data = include_bytes!("../../../cairo_programs/is_zero.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_secp256r1_div_mod_n() { - let program_data = include_bytes!("../../cairo_programs/secp256r1_div_mod_n.json"); + let program_data = include_bytes!("../../../cairo_programs/secp256r1_div_mod_n.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn is_zero_pack() { - let program_data = include_bytes!("../../cairo_programs/is_zero_pack.json"); + let program_data = include_bytes!("../../../cairo_programs/is_zero_pack.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn n_bit() { - let program_data = include_bytes!("../../cairo_programs/n_bit.json"); + let program_data = include_bytes!("../../../cairo_programs/n_bit.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn highest_bitlen() { - let program_data = include_bytes!("../../cairo_programs/highest_bitlen.json"); + let program_data = include_bytes!("../../../cairo_programs/highest_bitlen.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn uint256_improvements() { - let program_data = include_bytes!("../../cairo_programs/uint256_improvements.json"); + let program_data = include_bytes!("../../../cairo_programs/uint256_improvements.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 128); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn memory_holes() { - let program_data = include_bytes!("../../cairo_programs/memory_holes.json"); + let program_data = include_bytes!("../../../cairo_programs/memory_holes.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 5) } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn ec_recover() { - let program_data = include_bytes!("../../cairo_programs/ec_recover.json"); + let program_data = include_bytes!("../../../cairo_programs/ec_recover.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_inv_mod_p_uint512() { - let program_data = include_bytes!("../../cairo_programs/inv_mod_p_uint512.json"); + let program_data = include_bytes!("../../../cairo_programs/inv_mod_p_uint512.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn bitand_hint() { - let program_data = include_bytes!("../../cairo_programs/bitand_hint.json"); + let program_data = include_bytes!("../../../cairo_programs/bitand_hint.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn assert_le_felt_old() { - let program_data = include_bytes!("../../cairo_programs/assert_le_felt_old.json"); + let program_data = include_bytes!("../../../cairo_programs/assert_le_felt_old.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 35); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_fq_test() { - let program_data = include_bytes!("../../cairo_programs/fq_test.json"); + let program_data = include_bytes!("../../../cairo_programs/fq_test.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 120); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_ec_negate() { - let program_data = include_bytes!("../../cairo_programs/ec_negate.json"); + let program_data = include_bytes!("../../../cairo_programs/ec_negate.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_compute_slope_v2_test() { - let program_data = include_bytes!("../../cairo_programs/compute_slope_v2.json"); + let program_data = include_bytes!("../../../cairo_programs/compute_slope_v2.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_compute_doubling_slope_v2_test() { - let program_data = include_bytes!("../../cairo_programs/compute_doubling_slope_v2.json"); + let program_data = include_bytes!("../../../cairo_programs/compute_doubling_slope_v2.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn fast_ec_add_v2() { - let program_data = include_bytes!("../../cairo_programs/fast_ec_add_v2.json"); + let program_data = include_bytes!("../../../cairo_programs/fast_ec_add_v2.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn fast_ec_add_v3() { - let program_data = include_bytes!("../../cairo_programs/fast_ec_add_v3.json"); + let program_data = include_bytes!("../../../cairo_programs/fast_ec_add_v3.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn ec_double_assign_new_x_v3() { - let program_data = include_bytes!("../../cairo_programs/ec_double_assign_new_x_v3.json"); + let program_data = include_bytes!("../../../cairo_programs/ec_double_assign_new_x_v3.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn secp256r1_fast_ec_add() { - let program_data = include_bytes!("../../cairo_programs/secp256r1_fast_ec_add.json"); + let program_data = include_bytes!("../../../cairo_programs/secp256r1_fast_ec_add.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn split_xx_hint() { - let program_data = include_bytes!("../../cairo_programs/split_xx_hint.json"); + let program_data = include_bytes!("../../../cairo_programs/split_xx_hint.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn nondet_bigint3_v2() { - let program_data = include_bytes!("../../cairo_programs/nondet_bigint3_v2.json"); + let program_data = include_bytes!("../../../cairo_programs/nondet_bigint3_v2.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn ec_double_v4() { - let program_data = include_bytes!("../../cairo_programs/ec_double_v4.json"); + let program_data = include_bytes!("../../../cairo_programs/ec_double_v4.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_ec_double_slope() { - let program_data = include_bytes!("../../cairo_programs/ec_double_slope.json"); + let program_data = include_bytes!("../../../cairo_programs/ec_double_slope.json"); run_program_simple(program_data.as_slice()); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_normalize_address() { - let program_data = include_bytes!("../../cairo_programs/normalize_address.json"); + let program_data = include_bytes!("../../../cairo_programs/normalize_address.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 110); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_sha256_test() { - let program_data = include_bytes!("../../cairo_programs/sha256_test.json"); + let program_data = include_bytes!("../../../cairo_programs/sha256_test.json"); run_program_simple_with_memory_holes(program_data.as_slice(), 923); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn cairo_run_reduce() { - let program_data = include_bytes!("../../cairo_programs/reduce.json"); + let program_data = include_bytes!("../../../cairo_programs/reduce.json"); run_program_simple(program_data.as_slice()); } #[test] fn cairo_run_if_reloc_equal() { - let program_data = include_bytes!("../../cairo_programs/if_reloc_equal.json"); + let program_data = include_bytes!("../../../cairo_programs/if_reloc_equal.json"); run_program_simple_with_memory_holes(program_data, 4); } diff --git a/src/tests/compare_vm_state.sh b/vm/src/tests/compare_vm_state.sh similarity index 91% rename from src/tests/compare_vm_state.sh rename to vm/src/tests/compare_vm_state.sh index e9b62cbcfb..656b6f204b 100755 --- a/src/tests/compare_vm_state.sh +++ b/vm/src/tests/compare_vm_state.sh @@ -1,6 +1,6 @@ #!/usr/bin/env sh -tests_path="../../cairo_programs" +tests_path="../../../cairo_programs" exit_code=0 trace=false memory=false @@ -13,7 +13,7 @@ for i in $@; do ;; "memory") memory=true ;; - "proof_mode") tests_path="../../cairo_programs/proof_programs" + "proof_mode") tests_path="../../../cairo_programs/proof_programs" ;; *) ;; diff --git a/src/tests/memory_comparator.py b/vm/src/tests/memory_comparator.py similarity index 100% rename from src/tests/memory_comparator.py rename to vm/src/tests/memory_comparator.py diff --git a/src/tests/mod.rs b/vm/src/tests/mod.rs similarity index 100% rename from src/tests/mod.rs rename to vm/src/tests/mod.rs diff --git a/src/tests/pedersen_test.rs b/vm/src/tests/pedersen_test.rs similarity index 87% rename from src/tests/pedersen_test.rs rename to vm/src/tests/pedersen_test.rs index e3ecda4571..5e146266b6 100644 --- a/src/tests/pedersen_test.rs +++ b/vm/src/tests/pedersen_test.rs @@ -6,7 +6,7 @@ use wasm_bindgen_test::*; #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn pedersen_integration_test() { - let program_data = include_bytes!("../../cairo_programs/pedersen_test.json"); + let program_data = include_bytes!("../../../cairo_programs/pedersen_test.json"); let expected_trace = [ (7, 25, 25), (8, 26, 25), diff --git a/src/tests/skip_instruction_test.rs b/vm/src/tests/skip_instruction_test.rs similarity index 75% rename from src/tests/skip_instruction_test.rs rename to vm/src/tests/skip_instruction_test.rs index 7ca52944c8..dbdba0da4a 100644 --- a/src/tests/skip_instruction_test.rs +++ b/vm/src/tests/skip_instruction_test.rs @@ -7,7 +7,7 @@ use wasm_bindgen_test::*; #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn skip_next_instruction_test() { let program_data = include_bytes!( - "../../cairo_programs/noretrocompat/test_skip_next_instruction.noretrocompat.json" + "../../../cairo_programs/noretrocompat/test_skip_next_instruction.noretrocompat.json" ); run_program_simple(program_data.as_slice()); } diff --git a/src/tests/struct_test.rs b/vm/src/tests/struct_test.rs similarity index 80% rename from src/tests/struct_test.rs rename to vm/src/tests/struct_test.rs index 4b34770010..9dac5118cf 100644 --- a/src/tests/struct_test.rs +++ b/vm/src/tests/struct_test.rs @@ -6,7 +6,7 @@ use wasm_bindgen_test::*; #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn struct_integration_test() { - let program_data = include_bytes!("../../cairo_programs/struct.json"); + let program_data = include_bytes!("../../../cairo_programs/struct.json"); let expected_trace = [(1, 4, 4)]; run_program_with_trace(program_data.as_slice(), expected_trace.as_slice()); } diff --git a/src/types/errors/math_errors.rs b/vm/src/types/errors/math_errors.rs similarity index 100% rename from src/types/errors/math_errors.rs rename to vm/src/types/errors/math_errors.rs diff --git a/src/types/errors/mod.rs b/vm/src/types/errors/mod.rs similarity index 100% rename from src/types/errors/mod.rs rename to vm/src/types/errors/mod.rs diff --git a/src/types/errors/program_errors.rs b/vm/src/types/errors/program_errors.rs similarity index 100% rename from src/types/errors/program_errors.rs rename to vm/src/types/errors/program_errors.rs diff --git a/src/types/exec_scope.rs b/vm/src/types/exec_scope.rs similarity index 100% rename from src/types/exec_scope.rs rename to vm/src/types/exec_scope.rs diff --git a/src/types/instance_definitions/bitwise_instance_def.rs b/vm/src/types/instance_definitions/bitwise_instance_def.rs similarity index 100% rename from src/types/instance_definitions/bitwise_instance_def.rs rename to vm/src/types/instance_definitions/bitwise_instance_def.rs diff --git a/src/types/instance_definitions/builtins_instance_def.rs b/vm/src/types/instance_definitions/builtins_instance_def.rs similarity index 100% rename from src/types/instance_definitions/builtins_instance_def.rs rename to vm/src/types/instance_definitions/builtins_instance_def.rs diff --git a/src/types/instance_definitions/cpu_instance_def.rs b/vm/src/types/instance_definitions/cpu_instance_def.rs similarity index 100% rename from src/types/instance_definitions/cpu_instance_def.rs rename to vm/src/types/instance_definitions/cpu_instance_def.rs diff --git a/src/types/instance_definitions/diluted_pool_instance_def.rs b/vm/src/types/instance_definitions/diluted_pool_instance_def.rs similarity index 100% rename from src/types/instance_definitions/diluted_pool_instance_def.rs rename to vm/src/types/instance_definitions/diluted_pool_instance_def.rs diff --git a/src/types/instance_definitions/ec_op_instance_def.rs b/vm/src/types/instance_definitions/ec_op_instance_def.rs similarity index 100% rename from src/types/instance_definitions/ec_op_instance_def.rs rename to vm/src/types/instance_definitions/ec_op_instance_def.rs diff --git a/src/types/instance_definitions/ecdsa_instance_def.rs b/vm/src/types/instance_definitions/ecdsa_instance_def.rs similarity index 100% rename from src/types/instance_definitions/ecdsa_instance_def.rs rename to vm/src/types/instance_definitions/ecdsa_instance_def.rs diff --git a/src/types/instance_definitions/keccak_instance_def.rs b/vm/src/types/instance_definitions/keccak_instance_def.rs similarity index 100% rename from src/types/instance_definitions/keccak_instance_def.rs rename to vm/src/types/instance_definitions/keccak_instance_def.rs diff --git a/src/types/instance_definitions/mod.rs b/vm/src/types/instance_definitions/mod.rs similarity index 100% rename from src/types/instance_definitions/mod.rs rename to vm/src/types/instance_definitions/mod.rs diff --git a/src/types/instance_definitions/pedersen_instance_def.rs b/vm/src/types/instance_definitions/pedersen_instance_def.rs similarity index 100% rename from src/types/instance_definitions/pedersen_instance_def.rs rename to vm/src/types/instance_definitions/pedersen_instance_def.rs diff --git a/src/types/instance_definitions/poseidon_instance_def.rs b/vm/src/types/instance_definitions/poseidon_instance_def.rs similarity index 100% rename from src/types/instance_definitions/poseidon_instance_def.rs rename to vm/src/types/instance_definitions/poseidon_instance_def.rs diff --git a/src/types/instance_definitions/range_check_instance_def.rs b/vm/src/types/instance_definitions/range_check_instance_def.rs similarity index 100% rename from src/types/instance_definitions/range_check_instance_def.rs rename to vm/src/types/instance_definitions/range_check_instance_def.rs diff --git a/src/types/instruction.rs b/vm/src/types/instruction.rs similarity index 100% rename from src/types/instruction.rs rename to vm/src/types/instruction.rs diff --git a/src/types/layout.rs b/vm/src/types/layout.rs similarity index 100% rename from src/types/layout.rs rename to vm/src/types/layout.rs diff --git a/src/types/mod.rs b/vm/src/types/mod.rs similarity index 100% rename from src/types/mod.rs rename to vm/src/types/mod.rs diff --git a/src/types/program.rs b/vm/src/types/program.rs similarity index 98% rename from src/types/program.rs rename to vm/src/types/program.rs index 8bb7ffdf87..8f774180f7 100644 --- a/src/types/program.rs +++ b/vm/src/types/program.rs @@ -619,7 +619,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn deserialize_program_test() { let program = Program::from_bytes( - include_bytes!("../../cairo_programs/manually_compiled/valid_program_a.json"), + include_bytes!("../../../cairo_programs/manually_compiled/valid_program_a.json"), Some("main"), ) .unwrap(); @@ -703,7 +703,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn deserialize_program_without_entrypoint_test() { let program = Program::from_bytes( - include_bytes!("../../cairo_programs/manually_compiled/valid_program_a.json"), + include_bytes!("../../../cairo_programs/manually_compiled/valid_program_a.json"), None, ) .unwrap(); @@ -805,7 +805,9 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn deserialize_program_constants_test() { let program = Program::from_bytes( - include_bytes!("../../cairo_programs/manually_compiled/deserialize_constant_test.json"), + include_bytes!( + "../../../cairo_programs/manually_compiled/deserialize_constant_test.json" + ), Some("main"), ) .unwrap(); diff --git a/src/types/relocatable.rs b/vm/src/types/relocatable.rs similarity index 100% rename from src/types/relocatable.rs rename to vm/src/types/relocatable.rs diff --git a/src/utils.rs b/vm/src/utils.rs similarity index 100% rename from src/utils.rs rename to vm/src/utils.rs diff --git a/src/vm/context/mod.rs b/vm/src/vm/context/mod.rs similarity index 100% rename from src/vm/context/mod.rs rename to vm/src/vm/context/mod.rs diff --git a/src/vm/context/run_context.rs b/vm/src/vm/context/run_context.rs similarity index 100% rename from src/vm/context/run_context.rs rename to vm/src/vm/context/run_context.rs diff --git a/src/vm/decoding/decoder.rs b/vm/src/vm/decoding/decoder.rs similarity index 100% rename from src/vm/decoding/decoder.rs rename to vm/src/vm/decoding/decoder.rs diff --git a/src/vm/decoding/mod.rs b/vm/src/vm/decoding/mod.rs similarity index 100% rename from src/vm/decoding/mod.rs rename to vm/src/vm/decoding/mod.rs diff --git a/src/vm/errors/cairo_run_errors.rs b/vm/src/vm/errors/cairo_run_errors.rs similarity index 100% rename from src/vm/errors/cairo_run_errors.rs rename to vm/src/vm/errors/cairo_run_errors.rs diff --git a/src/vm/errors/exec_scope_errors.rs b/vm/src/vm/errors/exec_scope_errors.rs similarity index 100% rename from src/vm/errors/exec_scope_errors.rs rename to vm/src/vm/errors/exec_scope_errors.rs diff --git a/src/vm/errors/hint_errors.rs b/vm/src/vm/errors/hint_errors.rs similarity index 100% rename from src/vm/errors/hint_errors.rs rename to vm/src/vm/errors/hint_errors.rs diff --git a/src/vm/errors/memory_errors.rs b/vm/src/vm/errors/memory_errors.rs similarity index 100% rename from src/vm/errors/memory_errors.rs rename to vm/src/vm/errors/memory_errors.rs diff --git a/src/vm/errors/mod.rs b/vm/src/vm/errors/mod.rs similarity index 100% rename from src/vm/errors/mod.rs rename to vm/src/vm/errors/mod.rs diff --git a/src/vm/errors/runner_errors.rs b/vm/src/vm/errors/runner_errors.rs similarity index 100% rename from src/vm/errors/runner_errors.rs rename to vm/src/vm/errors/runner_errors.rs diff --git a/src/vm/errors/trace_errors.rs b/vm/src/vm/errors/trace_errors.rs similarity index 100% rename from src/vm/errors/trace_errors.rs rename to vm/src/vm/errors/trace_errors.rs diff --git a/src/vm/errors/vm_errors.rs b/vm/src/vm/errors/vm_errors.rs similarity index 100% rename from src/vm/errors/vm_errors.rs rename to vm/src/vm/errors/vm_errors.rs diff --git a/src/vm/errors/vm_exception.rs b/vm/src/vm/errors/vm_exception.rs similarity index 96% rename from src/vm/errors/vm_exception.rs rename to vm/src/vm/errors/vm_exception.rs index 933f4223ca..2a82fa717e 100644 --- a/src/vm/errors/vm_exception.rs +++ b/vm/src/vm/errors/vm_exception.rs @@ -256,6 +256,17 @@ impl Location { pub fn to_string_with_content(&self, message: &str) -> String { let mut string = self.to_string(message); let input_file_path = std::path::Path::new(&self.input_file.filename); + #[cfg(test)] + let input_file_path = { + use std::path::PathBuf; + let current_dir = std::env::current_dir().expect("should return the current directory"); + let mut parent_dir: PathBuf = current_dir + .parent() + .expect("should have a parent directory") + .into(); + parent_dir.push(input_file_path); + parent_dir + }; if let Ok(file_content) = std::fs::read(input_file_path) { string.push_str(&format!("\n{}", self.get_location_marks(&file_content))); } @@ -632,7 +643,7 @@ mod test { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn get_traceback_bad_dict_update() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/bad_programs/bad_dict_update.json"), + include_bytes!("../../../../cairo_programs/bad_programs/bad_dict_update.json"), Some("main"), ) .expect("Call to `Program::from_file()` failed."); @@ -666,7 +677,7 @@ mod test { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn get_traceback_bad_usort() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/bad_programs/bad_usort.json"), + include_bytes!("../../../../cairo_programs/bad_programs/bad_usort.json"), Some("main"), ) .unwrap(); @@ -778,7 +789,7 @@ cairo_programs/bad_programs/bad_usort.cairo:64:5: (pc=0:60) end_line: 5, end_col: 2, input_file: InputFile { - filename: String::from("cairo_programs/bad_programs/bad_usort.cairo"), + filename: String::from("../cairo_programs/bad_programs/bad_usort.cairo"), }, parent_location: None, start_line: 5, @@ -843,7 +854,7 @@ cairo_programs/bad_programs/bad_range_check.cairo:19:33: (pc=0:17) cairo_programs/bad_programs/bad_range_check.cairo:11:5: (pc=0:6) "#; let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/bad_programs/bad_range_check.json"), + include_bytes!("../../../../cairo_programs/bad_programs/bad_range_check.json"), Some("main"), ) .unwrap(); @@ -888,7 +899,7 @@ cairo_programs/bad_programs/bad_usort.cairo:36:5: (pc=0:30) cairo_programs/bad_programs/bad_usort.cairo:64:5: (pc=0:60) "#; let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/bad_programs/bad_usort.json"), + include_bytes!("../../../../cairo_programs/bad_programs/bad_usort.json"), Some("main"), ) .unwrap(); @@ -909,7 +920,7 @@ cairo_programs/bad_programs/bad_usort.cairo:64:5: (pc=0:60) #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn get_value_from_simple_reference_ap_based() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/bad_programs/error_msg_attr_tempvar.json"), + include_bytes!("../../../../cairo_programs/bad_programs/error_msg_attr_tempvar.json"), Some("main"), ) .unwrap(); @@ -928,7 +939,7 @@ cairo_programs/bad_programs/bad_usort.cairo:64:5: (pc=0:60) #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn substitute_error_message_references_ap_based() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/bad_programs/error_msg_attr_tempvar.json"), + include_bytes!("../../../../cairo_programs/bad_programs/error_msg_attr_tempvar.json"), Some("main"), ) .unwrap(); @@ -950,7 +961,7 @@ cairo_programs/bad_programs/bad_usort.cairo:64:5: (pc=0:60) #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn get_value_from_simple_reference_complex() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/bad_programs/error_msg_attr_struct.json"), + include_bytes!("../../../../cairo_programs/bad_programs/error_msg_attr_struct.json"), Some("main"), ) .unwrap(); @@ -969,7 +980,7 @@ cairo_programs/bad_programs/bad_usort.cairo:64:5: (pc=0:60) #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn substitute_error_message_references_complex() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/bad_programs/error_msg_attr_struct.json"), + include_bytes!("../../../../cairo_programs/bad_programs/error_msg_attr_struct.json"), Some("main"), ) .unwrap(); diff --git a/src/vm/hooks.rs b/vm/src/vm/hooks.rs similarity index 97% rename from src/vm/hooks.rs rename to vm/src/vm/hooks.rs index 02b177452a..53a14bd0d8 100644 --- a/src/vm/hooks.rs +++ b/vm/src/vm/hooks.rs @@ -134,7 +134,7 @@ mod tests { #[test] fn empty_hooks() { let program = Program::from_bytes( - include_bytes!("../../cairo_programs/sqrt.json"), + include_bytes!("../../../cairo_programs/sqrt.json"), Some("main"), ) .expect("Call to `Program::from_file()` failed."); @@ -153,7 +153,7 @@ mod tests { #[test] fn hook_failure() { let program = Program::from_bytes( - include_bytes!("../../cairo_programs/sqrt.json"), + include_bytes!("../../../cairo_programs/sqrt.json"), Some("main"), ) .expect("Call to `Program::from_file()` failed."); @@ -223,7 +223,7 @@ mod tests { #[test] fn hook_success() { let program = Program::from_bytes( - include_bytes!("../../cairo_programs/sqrt.json"), + include_bytes!("../../../cairo_programs/sqrt.json"), Some("main"), ) .expect("Call to `Program::from_file()` failed."); diff --git a/src/vm/mod.rs b/vm/src/vm/mod.rs similarity index 100% rename from src/vm/mod.rs rename to vm/src/vm/mod.rs diff --git a/src/vm/runners/builtin_runner/bitwise.rs b/vm/src/vm/runners/builtin_runner/bitwise.rs similarity index 100% rename from src/vm/runners/builtin_runner/bitwise.rs rename to vm/src/vm/runners/builtin_runner/bitwise.rs diff --git a/src/vm/runners/builtin_runner/ec_op.rs b/vm/src/vm/runners/builtin_runner/ec_op.rs similarity index 99% rename from src/vm/runners/builtin_runner/ec_op.rs rename to vm/src/vm/runners/builtin_runner/ec_op.rs index 083f437f76..b686ef73c5 100644 --- a/src/vm/runners/builtin_runner/ec_op.rs +++ b/vm/src/vm/runners/builtin_runner/ec_op.rs @@ -971,7 +971,8 @@ mod tests { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn catch_point_same_x() { - let program = include_bytes!("../../../../cairo_programs/bad_programs/ec_op_same_x.json"); + let program = + include_bytes!("../../../../../cairo_programs/bad_programs/ec_op_same_x.json"); let cairo_run_config = crate::cairo_run::CairoRunConfig { layout: "all_cairo", ..crate::cairo_run::CairoRunConfig::default() @@ -996,7 +997,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn catch_point_not_in_curve() { let program = - include_bytes!("../../../../cairo_programs/bad_programs/ec_op_not_in_curve.json"); + include_bytes!("../../../../../cairo_programs/bad_programs/ec_op_not_in_curve.json"); let cairo_run_config = crate::cairo_run::CairoRunConfig { layout: "all_cairo", ..crate::cairo_run::CairoRunConfig::default() diff --git a/src/vm/runners/builtin_runner/hash.rs b/vm/src/vm/runners/builtin_runner/hash.rs similarity index 100% rename from src/vm/runners/builtin_runner/hash.rs rename to vm/src/vm/runners/builtin_runner/hash.rs diff --git a/src/vm/runners/builtin_runner/keccak.rs b/vm/src/vm/runners/builtin_runner/keccak.rs similarity index 99% rename from src/vm/runners/builtin_runner/keccak.rs rename to vm/src/vm/runners/builtin_runner/keccak.rs index 579c4df1aa..1a26bfee53 100644 --- a/src/vm/runners/builtin_runner/keccak.rs +++ b/vm/src/vm/runners/builtin_runner/keccak.rs @@ -375,7 +375,7 @@ mod tests { vm.segments.segment_used_sizes = Some(vec![0]); let program = Program::from_bytes( - include_bytes!("../../../../cairo_programs/_keccak.json"), + include_bytes!("../../../../../cairo_programs/_keccak.json"), Some("main"), ) .unwrap(); diff --git a/src/vm/runners/builtin_runner/mod.rs b/vm/src/vm/runners/builtin_runner/mod.rs similarity index 100% rename from src/vm/runners/builtin_runner/mod.rs rename to vm/src/vm/runners/builtin_runner/mod.rs diff --git a/src/vm/runners/builtin_runner/output.rs b/vm/src/vm/runners/builtin_runner/output.rs similarity index 100% rename from src/vm/runners/builtin_runner/output.rs rename to vm/src/vm/runners/builtin_runner/output.rs diff --git a/src/vm/runners/builtin_runner/poseidon.rs b/vm/src/vm/runners/builtin_runner/poseidon.rs similarity index 100% rename from src/vm/runners/builtin_runner/poseidon.rs rename to vm/src/vm/runners/builtin_runner/poseidon.rs diff --git a/src/vm/runners/builtin_runner/range_check.rs b/vm/src/vm/runners/builtin_runner/range_check.rs similarity index 100% rename from src/vm/runners/builtin_runner/range_check.rs rename to vm/src/vm/runners/builtin_runner/range_check.rs diff --git a/src/vm/runners/builtin_runner/segment_arena.rs b/vm/src/vm/runners/builtin_runner/segment_arena.rs similarity index 100% rename from src/vm/runners/builtin_runner/segment_arena.rs rename to vm/src/vm/runners/builtin_runner/segment_arena.rs diff --git a/src/vm/runners/builtin_runner/signature.rs b/vm/src/vm/runners/builtin_runner/signature.rs similarity index 100% rename from src/vm/runners/builtin_runner/signature.rs rename to vm/src/vm/runners/builtin_runner/signature.rs diff --git a/src/vm/runners/cairo_runner.rs b/vm/src/vm/runners/cairo_runner.rs similarity index 99% rename from src/vm/runners/cairo_runner.rs rename to vm/src/vm/runners/cairo_runner.rs index 3063090a69..e989a9a269 100644 --- a/src/vm/runners/cairo_runner.rs +++ b/vm/src/vm/runners/cairo_runner.rs @@ -1577,7 +1577,7 @@ mod tests { // The fibonacci program has 24 instructions, so there should be 24 accessed addresses, // from (0, 0) to (0, 23). let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/fibonacci.json"), + include_bytes!("../../../../cairo_programs/fibonacci.json"), Some("main"), ) .unwrap(); @@ -3444,7 +3444,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn end_run_proof_mode_insufficient_allocated_cells() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/proof_programs/fibonacci.json"), + include_bytes!("../../../../cairo_programs/proof_programs/fibonacci.json"), Some("main"), ) .unwrap(); @@ -3514,7 +3514,7 @@ mod tests { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn get_execution_resources_run_program() { - let program_data = include_bytes!("../../../cairo_programs/fibonacci.json"); + let program_data = include_bytes!("../../../../cairo_programs/fibonacci.json"); let cairo_run_config = CairoRunConfig { entrypoint: "main", trace_enabled: true, @@ -3531,7 +3531,7 @@ mod tests { #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn get_execution_resources_run_program_no_trace() { - let program_data = include_bytes!("../../../cairo_programs/fibonacci.json"); + let program_data = include_bytes!("../../../../cairo_programs/fibonacci.json"); let cairo_run_config = CairoRunConfig { entrypoint: "main", trace_enabled: false, @@ -4565,7 +4565,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn run_from_entrypoint_custom_program_test() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/example_program.json"), + include_bytes!("../../../../cairo_programs/example_program.json"), None, ) .unwrap(); @@ -4636,7 +4636,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn run_from_entrypoint_bitwise_test_check_memory_holes() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/bitwise_builtin_test.json"), + include_bytes!("../../../../cairo_programs/bitwise_builtin_test.json"), None, ) .unwrap(); @@ -4756,7 +4756,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn run_from_entrypoint_substitute_error_message_test() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/bad_programs/error_msg_function.json"), + include_bytes!("../../../../cairo_programs/bad_programs/error_msg_function.json"), None, ) .unwrap(); @@ -4801,7 +4801,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn get_builtins_final_stack_range_check_builtin() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/assert_le_felt_hint.json"), + include_bytes!("../../../../cairo_programs/assert_le_felt_hint.json"), Some("main"), ) .unwrap(); @@ -4829,7 +4829,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn get_builtins_final_stack_4_builtins() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/integration.json"), + include_bytes!("../../../../cairo_programs/integration.json"), Some("main"), ) .unwrap(); @@ -4857,7 +4857,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn get_builtins_final_stack_no_builtins() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/fibonacci.json"), + include_bytes!("../../../../cairo_programs/fibonacci.json"), Some("main"), ) .unwrap(); @@ -4886,7 +4886,7 @@ mod tests { fn filter_unused_builtins_test() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/integration.json"), + include_bytes!("../../../../cairo_programs/integration.json"), Some("main"), ) .unwrap(); @@ -4979,7 +4979,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn test_run_resources_none() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/fibonacci.json"), + include_bytes!("../../../../cairo_programs/fibonacci.json"), Some("main"), ) .unwrap(); @@ -5003,7 +5003,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn test_run_resources_ok() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/fibonacci.json"), + include_bytes!("../../../../cairo_programs/fibonacci.json"), Some("main"), ) .unwrap(); @@ -5029,7 +5029,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn test_run_resources_ok_2() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/fibonacci.json"), + include_bytes!("../../../../cairo_programs/fibonacci.json"), Some("main"), ) .unwrap(); @@ -5055,7 +5055,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn test_run_resources_error() { let program = Program::from_bytes( - include_bytes!("../../../cairo_programs/fibonacci.json"), + include_bytes!("../../../../cairo_programs/fibonacci.json"), Some("main"), ) .unwrap(); diff --git a/src/vm/runners/mod.rs b/vm/src/vm/runners/mod.rs similarity index 100% rename from src/vm/runners/mod.rs rename to vm/src/vm/runners/mod.rs diff --git a/src/vm/security.rs b/vm/src/vm/security.rs similarity index 100% rename from src/vm/security.rs rename to vm/src/vm/security.rs diff --git a/src/vm/trace/mod.rs b/vm/src/vm/trace/mod.rs similarity index 100% rename from src/vm/trace/mod.rs rename to vm/src/vm/trace/mod.rs diff --git a/src/vm/trace/trace_entry.rs b/vm/src/vm/trace/trace_entry.rs similarity index 100% rename from src/vm/trace/trace_entry.rs rename to vm/src/vm/trace/trace_entry.rs diff --git a/src/vm/vm_core.rs b/vm/src/vm/vm_core.rs similarity index 99% rename from src/vm/vm_core.rs rename to vm/src/vm/vm_core.rs index 707f860b2e..b8b8691b79 100644 --- a/src/vm/vm_core.rs +++ b/vm/src/vm/vm_core.rs @@ -4118,7 +4118,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn get_traceback_entries_bad_usort() { let program = Program::from_bytes( - include_bytes!("../../cairo_programs/bad_programs/bad_usort.json"), + include_bytes!("../../../cairo_programs/bad_programs/bad_usort.json"), Some("main"), ) .unwrap(); @@ -4143,7 +4143,7 @@ mod tests { #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn get_traceback_entries_bad_dict_update() { let program = Program::from_bytes( - include_bytes!("../../cairo_programs/bad_programs/bad_dict_update.json"), + include_bytes!("../../../cairo_programs/bad_programs/bad_dict_update.json"), Some("main"), ) .unwrap(); @@ -4232,7 +4232,7 @@ mod tests { #[cfg(feature = "hooks")] { let program = crate::types::program::Program::from_bytes( - include_bytes!("../../cairo_programs/sqrt.json"), + include_bytes!("../../../cairo_programs/sqrt.json"), Some("main"), ) .expect("Call to `Program::from_file()` failed."); diff --git a/src/vm/vm_memory/memory.rs b/vm/src/vm/vm_memory/memory.rs similarity index 100% rename from src/vm/vm_memory/memory.rs rename to vm/src/vm/vm_memory/memory.rs diff --git a/src/vm/vm_memory/memory_segments.rs b/vm/src/vm/vm_memory/memory_segments.rs similarity index 100% rename from src/vm/vm_memory/memory_segments.rs rename to vm/src/vm/vm_memory/memory_segments.rs diff --git a/src/vm/vm_memory/mod.rs b/vm/src/vm/vm_memory/mod.rs similarity index 100% rename from src/vm/vm_memory/mod.rs rename to vm/src/vm/vm_memory/mod.rs diff --git a/src/with_std.rs b/vm/src/with_std.rs similarity index 100% rename from src/with_std.rs rename to vm/src/with_std.rs diff --git a/src/without_std.rs b/vm/src/without_std.rs similarity index 100% rename from src/without_std.rs rename to vm/src/without_std.rs