diff --git a/cairo1-run/cairo b/cairo1-run/cairo new file mode 160000 index 0000000000..879302d8ce --- /dev/null +++ b/cairo1-run/cairo @@ -0,0 +1 @@ +Subproject commit 879302d8cea7206ed6349bcc2bff2b3bfa0c7521 diff --git a/vm/src/tests/compare_factorial_outputs_all_layouts.sh b/vm/src/tests/compare_factorial_outputs_all_layouts.sh index e634fbb9d4..c6c784069a 100755 --- a/vm/src/tests/compare_factorial_outputs_all_layouts.sh +++ b/vm/src/tests/compare_factorial_outputs_all_layouts.sh @@ -21,15 +21,6 @@ for layout in "plain" "small" "dex" "recursive" "starknet" "starknet_with_keccak else passed_tests=$((passed_tests + 1)) fi - # Compare memory - echo "Running memory comparison for layout $layout" - if ! ./vm/src/tests/memory_comparator.py factorial_rs.memory factorial_py.memory; then - echo "Memory differs for layout $layout" - exit_code=1 - failed_tests=$((failed_tests + 1)) - else - passed_tests=$((passed_tests + 1)) - fi # Compare air public input echo "Running air public input comparison for layout $layout" if ! ./vm/src/tests/air_public_input_comparator.py factorial_rs.air_public_input factorial_py.air_public_input; then diff --git a/vm/src/tests/compare_outputs_dynamic_layouts.sh b/vm/src/tests/compare_outputs_dynamic_layouts.sh index 41c7bf0f17..8346d4ba39 100755 --- a/vm/src/tests/compare_outputs_dynamic_layouts.sh +++ b/vm/src/tests/compare_outputs_dynamic_layouts.sh @@ -207,15 +207,6 @@ for case in "${CASES[@]}"; do passed_tests=$((passed_tests + 1)) fi - # Compare memory - echo "Running memory comparison for case: $case" - if ! ./vm/src/tests/memory_comparator.py program_rs.memory program_py.memory; then - echo "Memory differs for case: $case" - exit_code=1 - failed_tests=$((failed_tests + 1)) - else - passed_tests=$((passed_tests + 1)) - fi # Compare air public input echo "Running air public input comparison for case: $case" diff --git a/vm/src/tests/compare_vm_state.sh b/vm/src/tests/compare_vm_state.sh index 34c7486663..bac9aa8cb6 100755 --- a/vm/src/tests/compare_vm_state.sh +++ b/vm/src/tests/compare_vm_state.sh @@ -65,7 +65,7 @@ for file in $(ls $tests_path | grep .cairo$ | sed -E 's/\.cairo$//'); do fi fi - if $memory; then + if $memory && -z $proof_tests_path; then if ! ./memory_comparator.py $path_file.memory $path_file.rs.memory; then echo "Memory differs for $file" exit_code=1 diff --git a/vm/src/tests/memory_comparator.py b/vm/src/tests/memory_comparator.py index 4054bd3bc6..686368a4d5 100755 --- a/vm/src/tests/memory_comparator.py +++ b/vm/src/tests/memory_comparator.py @@ -13,28 +13,27 @@ def compare_memory_file_contents(cairo_raw_mem, cairo_rs_raw_mem): cairo_mem = read_memory_file_contents(cairo_raw_mem) cairo_rs_mem = read_memory_file_contents(cairo_rs_raw_mem) - # TODO(Stav): Uncomment the following lines when moving the logic for filling builtin segment holes into `get_prover_input_info`. - # assert len(cairo_mem) == len(cairo_rs_mem), f'len(cairo_mem)={len(cairo_mem)} len(cairo_mem)={len(cairo_rs_mem)}' - # if cairo_mem != cairo_rs_mem: - # print(f'Mismatch between cairo_lang and cairo-vm') - # print('keys in cairo_lang but not cairo-vm:') - # for k in cairo_mem: - # if k in cairo_rs_mem: - # continue - # print(f'{k}:{cairo_mem[k]}') - # print('keys in cairo-vm but not cairo_lang:') - # for k in cairo_rs_mem: - # if k in cairo_mem: - # continue - # print(f'{k}:{cairo_rs_mem[k]}') - # print('mismatched values (cairo_lang <-> cairo-vm)):') - # for k in cairo_rs_mem: - # if k not in cairo_mem: - # continue - # if cairo_rs_mem[k] == cairo_mem[k]: - # continue - # print(f'{k}:({cairo_mem[k]} <-> {cairo_rs_mem[k]})') - # exit(1) + assert len(cairo_mem) == len(cairo_rs_mem), f'len(cairo_mem)={len(cairo_mem)} len(cairo_mem)={len(cairo_rs_mem)}' + if cairo_mem != cairo_rs_mem: + print(f'Mismatch between cairo_lang and cairo-vm') + print('keys in cairo_lang but not cairo-vm:') + for k in cairo_mem: + if k in cairo_rs_mem: + continue + print(f'{k}:{cairo_mem[k]}') + print('keys in cairo-vm but not cairo_lang:') + for k in cairo_rs_mem: + if k in cairo_mem: + continue + print(f'{k}:{cairo_rs_mem[k]}') + print('mismatched values (cairo_lang <-> cairo-vm)):') + for k in cairo_rs_mem: + if k not in cairo_mem: + continue + if cairo_rs_mem[k] == cairo_mem[k]: + continue + print(f'{k}:({cairo_mem[k]} <-> {cairo_rs_mem[k]})') + exit(1) def read_memory_file_contents(raw_mem_content) -> {}: mem = {}