test(tester): migrate the solx-solidity MLIR semantic tests - #674
test(tester): migrate the solx-solidity MLIR semantic tests#674PavelKopyl wants to merge 1 commit into
Conversation
Coverage Summary
|
There was a problem hiding this comment.
Pull request overview
Migrates era-solidity MLIR semantic tests into solx-tester and registers the new test directory.
Changes:
- Adds 211 Solidity semantic tests with tester metadata.
- Defines EVMLA/via-IR modes and expected execution results.
- Registers
tests/solidity/mlirwithsolx-tester.
Reviewed changes
Copilot reviewed 50 out of 212 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/solidity/mlir/uninit-fn-ptr.sol | Updated as part of this pull request. |
| tests/solidity/mlir/type-runtime-code.sol | Updated as part of this pull request. |
| tests/solidity/mlir/type-name.sol | Updated as part of this pull request. |
| tests/solidity/mlir/type-interface-id.sol | Updated as part of this pull request. |
| tests/solidity/mlir/type-creation-code.sol | Updated as part of this pull request. |
| tests/solidity/mlir/tx_origin.sol | Updated as part of this pull request. |
| tests/solidity/mlir/tx_gasprice.sol | Updated as part of this pull request. |
| tests/solidity/mlir/try.sol | Updated as part of this pull request. |
| tests/solidity/mlir/struct-constructor.sol | Updated as part of this pull request. |
| tests/solidity/mlir/string_concat_nested.sol | Updated as part of this pull request. |
| tests/solidity/mlir/string_concat_empty_strings.sol | Updated as part of this pull request. |
| tests/solidity/mlir/string_concat_empty_argument_list.sol | Updated as part of this pull request. |
| tests/solidity/mlir/string_and_bytes.sol | Updated as part of this pull request. |
| tests/solidity/mlir/state-var.sol | Updated as part of this pull request. |
| tests/solidity/mlir/shift_bytes_cleanup.sol | Updated as part of this pull request. |
| tests/solidity/mlir/send-transfer.sol | Updated as part of this pull request. |
| tests/solidity/mlir/selector.sol | Updated as part of this pull request. |
| tests/solidity/mlir/revert.sol | Updated as part of this pull request. |
| tests/solidity/mlir/return-void-call.sol | Updated as part of this pull request. |
| tests/solidity/mlir/require.sol | Updated as part of this pull request. |
| tests/solidity/mlir/recursive_struct_string_member.sol | Updated as part of this pull request. |
| tests/solidity/mlir/recursive_struct_return_memory.sol | Updated as part of this pull request. |
| tests/solidity/mlir/recursive_struct_push_mem_arg.sol | Updated as part of this pull request. |
| tests/solidity/mlir/recursive_struct_pop_clears.sol | Updated as part of this pull request. |
| tests/solidity/mlir/recursive_struct_packed_copy.sol | Updated as part of this pull request. |
| tests/solidity/mlir/recursive_struct_mutual.sol | Updated as part of this pull request. |
| tests/solidity/mlir/recursive_struct_mapping.sol | Updated as part of this pull request. |
| tests/solidity/mlir/recursive_struct_internal_recursion.sol | Updated as part of this pull request. |
| tests/solidity/mlir/recursive_struct_delete_element.sol | Updated as part of this pull request. |
| tests/solidity/mlir/recursive_struct_copy_mem_to_storage.sol | Updated as part of this pull request. |
| tests/solidity/mlir/recursive_struct_copy_mem_to_storage_deep.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_uint8_partial_slot.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_uint8_alone_in_slot.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_uint72_partial_slot.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_uint72_alone_in_slot.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_uint256_element.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_struct_with_string_member.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_struct_with_fixed_arr_of_dyn.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_struct_with_dyn_member.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_struct_packed_fixed.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_struct_packed_fields.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_struct_nested_struct.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_struct_fixed_arr_member.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_struct_c_inner.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_struct_c_dyn_fields.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_struct_bytes_member.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_struct_all_packed.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_string_element.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_packed_fixed_arr.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_nested_dyn_array.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_nested_dyn_array_multi_elem.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_fixed_array_element.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_fixed_arr_of_struct.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_fixed_arr_of_string.sol | Updated as part of this pull request. |
| tests/solidity/mlir/pop_clears_fixed_arr_of_dyn_arr.sol | Updated as part of this pull request. |
| tests/solidity/mlir/override-getter.sol | Updated as part of this pull request. |
| tests/solidity/mlir/new.sol | Updated as part of this pull request. |
| tests/solidity/mlir/new-string-array.sol | Updated as part of this pull request. |
| tests/solidity/mlir/msg-data.sol | Updated as part of this pull request. |
| tests/solidity/mlir/msg_value.sol | Updated as part of this pull request. |
| tests/solidity/mlir/msg_sig.sol | Updated as part of this pull request. |
| tests/solidity/mlir/msg_sender.sol | Updated as part of this pull request. |
| tests/solidity/mlir/modifier.sol | Updated as part of this pull request. |
| tests/solidity/mlir/modifier-ref-return.sol | Updated as part of this pull request. |
| tests/solidity/mlir/modifier-param-mutation.sol | Updated as part of this pull request. |
| tests/solidity/mlir/modifier-multi-return-paths.sol | Updated as part of this pull request. |
| tests/solidity/mlir/modifier-multi-result.sol | Updated as part of this pull request. |
| tests/solidity/mlir/modifier-library-call.sol | Updated as part of this pull request. |
| tests/solidity/mlir/modifier-arg-side-effect.sol | Updated as part of this pull request. |
| tests/solidity/mlir/mapping-key-cleanup.sol | Updated as part of this pull request. |
| tests/solidity/mlir/mapping_storage_string_key.sol | Updated as part of this pull request. |
| tests/solidity/mlir/library.sol | Updated as part of this pull request. |
| tests/solidity/mlir/library-storage-ref-abi.sol | Updated as part of this pull request. |
| tests/solidity/mlir/library-public-internal-call.sol | Updated as part of this pull request. |
| tests/solidity/mlir/library-2.sol | Updated as part of this pull request. |
| tests/solidity/mlir/internal-fn-ref-cmp.sol | Updated as part of this pull request. |
| tests/solidity/mlir/internal-fn-ptr.sol | Updated as part of this pull request. |
| tests/solidity/mlir/interface.sol | Updated as part of this pull request. |
| tests/solidity/mlir/inline-shifts.sol | Updated as part of this pull request. |
| tests/solidity/mlir/inheritance.sol | Updated as part of this pull request. |
| tests/solidity/mlir/inheritance-3.sol | Updated as part of this pull request. |
| tests/solidity/mlir/inheritance-2.sol | Updated as part of this pull request. |
| tests/solidity/mlir/immutable.sol | Updated as part of this pull request. |
| tests/solidity/mlir/ignored-tuple-decl.sol | Updated as part of this pull request. |
| tests/solidity/mlir/getter_bounds_revert.sol | Updated as part of this pull request. |
| tests/solidity/mlir/getter_arrays.sol | Updated as part of this pull request. |
| tests/solidity/mlir/gasleft.sol | Updated as part of this pull request. |
| tests/solidity/mlir/free-fn-inline-asm.sol | Updated as part of this pull request. |
| tests/solidity/mlir/free_func_ptr.sol | Updated as part of this pull request. |
| tests/solidity/mlir/free_func_multi_callsite.sol | Updated as part of this pull request. |
| tests/solidity/mlir/for-stepless.sol | Updated as part of this pull request. |
| tests/solidity/mlir/fixedbytes-memory-store.sol | Updated as part of this pull request. |
| tests/solidity/mlir/event.sol | Updated as part of this pull request. |
| tests/solidity/mlir/error.sol | Updated as part of this pull request. |
| tests/solidity/mlir/ecrecover-invalid.sol | Updated as part of this pull request. |
| tests/solidity/mlir/dirty-slice-bounds.sol | Updated as part of this pull request. |
| tests/solidity/mlir/dirty-memory-static-array.sol | Updated as part of this pull request. |
| tests/solidity/mlir/dirty-memory-allocation-cleanup.sol | Updated as part of this pull request. |
| tests/solidity/mlir/custom-storage-layout.sol | Updated as part of this pull request. |
| tests/solidity/mlir/ctor.sol | Updated as part of this pull request. |
| tests/solidity/mlir/ctor-2.sol | Updated as part of this pull request. |
| tests/solidity/mlir/create-fail.sol | Updated as part of this pull request. |
| tests/solidity/mlir/copy_recursive_struct_to_memory.sol | Updated as part of this pull request. |
| tests/solidity/mlir/copy_recursive_struct_storage.sol | Updated as part of this pull request. |
| tests/solidity/mlir/contract-cmp.sol | Updated as part of this pull request. |
| tests/solidity/mlir/contract-cast.sol | Updated as part of this pull request. |
| tests/solidity/mlir/code.sol | Updated as part of this pull request. |
| tests/solidity/mlir/calldata-bytes.sol | Updated as part of this pull request. |
| tests/solidity/mlir/calldata_struct_multi_fixed_arr.sol | Updated as part of this pull request. |
| tests/solidity/mlir/calldata_struct_fixed_arr_member.sol | Updated as part of this pull request. |
| tests/solidity/mlir/call-targets.sol | Updated as part of this pull request. |
| tests/solidity/mlir/bytes_literal_from_string.sol | Updated as part of this pull request. |
| tests/solidity/mlir/bytes_concat_nested.sol | Updated as part of this pull request. |
| tests/solidity/mlir/bytes_concat_empty_argument_list.sol | Updated as part of this pull request. |
| tests/solidity/mlir/bytes_concat_as_argument.sol | Updated as part of this pull request. |
| tests/solidity/mlir/bytes_concat_3_args.sol | Updated as part of this pull request. |
| tests/solidity/mlir/block_timestamp.sol | Updated as part of this pull request. |
| tests/solidity/mlir/block_prevrandao.sol | Updated as part of this pull request. |
| tests/solidity/mlir/block_number.sol | Updated as part of this pull request. |
| tests/solidity/mlir/block_gaslimit.sol | Updated as part of this pull request. |
| tests/solidity/mlir/block_difficulty.sol | Updated as part of this pull request. |
| tests/solidity/mlir/block_difficulty_post_paris.sol | Updated as part of this pull request. |
| tests/solidity/mlir/block_coinbase.sol | Updated as part of this pull request. |
| tests/solidity/mlir/block_chainid.sol | Updated as part of this pull request. |
| tests/solidity/mlir/block_blobbasefee.sol | Updated as part of this pull request. |
| tests/solidity/mlir/block_basefee.sol | Updated as part of this pull request. |
| tests/solidity/mlir/balance.sol | Updated as part of this pull request. |
| tests/solidity/mlir/assert.sol | Updated as part of this pull request. |
| tests/solidity/mlir/asm_local_storage_ref_slot_write.sol | Updated as part of this pull request. |
| tests/solidity/mlir/array-decode.sol | Updated as part of this pull request. |
| tests/solidity/mlir/array_pop_packed.sol | Updated as part of this pull request. |
| tests/solidity/mlir/array_lit_narrow_elt.sol | Updated as part of this pull request. |
| tests/solidity/mlir/address-literal.sol | Updated as part of this pull request. |
| tests/solidity/mlir/abi-decode-string-tail-cleanup.sol | Updated as part of this pull request. |
| solx-tester/src/lib.rs | Updated as part of this pull request. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
ebb390b to
5112750
Compare
Convert the isoltest files of era-solidity's semanticTests/mlir into solx-tester files under tests/solidity/mlir. Tests run under the EVMLA pipeline (`modes: ["E"]`) per their origin, except nine files forced to via-IR because the legacy codegen cannot compile them (nested calldata-to-storage and recursive struct copies) or because they assert the IR allocator model (memory-alloc-rounding). This also exposes the storage-emptiness check to Matter Labs tests through the `#storage_empty` method which asserts that every storage word of every account is zero.
5112750 to
9fdb02d
Compare
hedgar2017
left a comment
There was a problem hiding this comment.
Thanks! I will review first thing next week.
One nit: by era-solidity do you mean solx-solidity? Let's use up-to-date names for things as I believe we've gotten rid of all Matter Labs era leftovers by now.
Yes, I meant solx-solidity. Thanks, I've updated that. By the way, the name "Matter Labs" is still mentioned several times in the code as a test format type. |
Convert the isoltest files of solx-solidity's semanticTests/mlir into solx-tester files under tests/solidity/mlir.
Tests run under the EVMLA pipeline (
modes: ["E"]) per their origin, except nine files forced to via-IR because the legacy codegen cannot compile them (nested calldata-to-storage and recursive struct copies) or because they assert the IR allocator model (memory-alloc-rounding).This also exposes the storage-emptiness check through the
#storage_emptymethod which asserts that every storage word of every account is zero.