kkrt-labs/cairo-vm-ts

test: add more Cairo programs

Closed this issue · 1 comments

Now that all builtins have been implemented, we should make the test suite more extensive.
The hints haven't been implemented yet, so we limit this to programs which doesn't require hints

  • Make a list of all programs without hints from the lambdaclass/cairo-vm cairo programs suite and add them (some imported functions might be inlined (e.g. serialize_word...)

List of all Cairo programs in cairo-vm found with the jq:
find ./cairo-vm/cairo_programs -type f -name "*.json" -exec sh -c 'jq ".hints | length == 0" "$1" | grep -q true && echo "$1"' _ {} \; > cairo-vm-no-hint-programs.txt:

./cairo-vm/cairo_programs/not_main.json
./cairo-vm/cairo_programs/fibonacci.json
./cairo-vm/cairo_programs/poseidon_builtin.json
./cairo-vm/cairo_programs/if_in_function.json
./cairo-vm/cairo_programs/if_list.json
./cairo-vm/cairo_programs/simple_print.json
./cairo-vm/cairo_programs/pointers.json
./cairo-vm/cairo_programs/reversed_register_instructions.json
./cairo-vm/cairo_programs/function_return_if_print.json
./cairo-vm/cairo_programs/integration_with_alloc_locals.json
./cairo-vm/cairo_programs/pedersen_test.json
./cairo-vm/cairo_programs/factorial.json
./cairo-vm/cairo_programs/test_subtraction_if.json
./cairo-vm/cairo_programs/integration.json
./cairo-vm/cairo_programs/jmp_if_condition.json
./cairo-vm/cairo_programs/jmp.json
./cairo-vm/cairo_programs/test_reverse_if.json
./cairo-vm/cairo_programs/function_return_to_variable.json
./cairo-vm/cairo_programs/big_struct.json
./cairo-vm/cairo_programs/function_return.json
./cairo-vm/cairo_programs/struct.json
./cairo-vm/cairo_programs/bitwise_output.json
./cairo-vm/cairo_programs/if_and_prime.json
./cairo-vm/cairo_programs/multiplicative_inverse.json
./cairo-vm/cairo_programs/bitwise_builtin_test.json
./cairo-vm/cairo_programs/keccak_builtin.json
./cairo-vm/cairo_programs/print.json
./cairo-vm/cairo_programs/bitwise_recursion.json
./cairo-vm/cairo_programs/test_addition_if.json
./cairo-vm/cairo_programs/memory_holes.json
./cairo-vm/cairo_programs/return.json
./cairo-vm/cairo_programs/call_function_assign_param_by_name.json

./cairo-vm/cairo_programs/benchmarks/big_fibonacci.json
./cairo-vm/cairo_programs/benchmarks/integration_builtins.json
./cairo-vm/cairo_programs/benchmarks/pedersen.json
./cairo-vm/cairo_programs/benchmarks/big_factorial.json

./cairo-vm/cairo_programs/bad_programs/error_msg_attr.json
./cairo-vm/cairo_programs/bad_programs/error_msg_function.json
./cairo-vm/cairo_programs/bad_programs/error_msg_attr_tempvar.json
./cairo-vm/cairo_programs/bad_programs/bad_range_check.json

./cairo-vm/cairo_programs/manually_compiled/overflowing_dict.json
./cairo-vm/cairo_programs/manually_compiled/no_data_program.json
./cairo-vm/cairo_programs/manually_compiled/invalid_even_length_hex.json
./cairo-vm/cairo_programs/manually_compiled/valid_program_b.json
./cairo-vm/cairo_programs/manually_compiled/no_main_program.json
./cairo-vm/cairo_programs/manually_compiled/invalid_memory.json
./cairo-vm/cairo_programs/manually_compiled/invalid_odd_length_hex.json
./cairo-vm/cairo_programs/manually_compiled/deserialize_constant_test.json

No need to import the manually compiled programs to the test suite imo
The other contracts should be imported (might prune a few programs if not that relevant)