Commit f3911a8
authored
feat(ci): Snapshots for aztec-nr contract compilation failures and nargo expand (#23061)
Resolves
[F-607](https://linear.app/aztec-labs/issue/F-607/adopt-cargo-insta-for-noir-contract-snapshot-testing)
Don't be scared by the diff size, the majority of the diff is new
snapshots.
- Deleted `noir-projects/noir-contracts-comp-failures/` crate. We now
have `noir-projects/contract-snapshots/`
- `nargo expand` tests cover Token, AMM, StorageProofTest, AvmTest,
AvmGadgetsTest to match the CI benchmarks
- `compile_failure` snapshots are now full stderr (not just `error: `
headlines)
Asserting the full stderr and `expand` output provide us a strong test
invariant on the current compiler behavior. Some of the expanded
snapshots are quite large, and that is why I ultimately chose to only
have snapshots for the benchmark contracts. For compilation failures, I
felt it would be better to have the full snapshot in all cases. We then
assert against the actual compiler behavior rather than some stripped
version of the stderr.
A great example of how these snapshots are useful can be seen in the
child PR #23062.1 parent b6e2d69 commit f3911a8
238 files changed
Lines changed: 21902 additions & 360 deletions
File tree
- noir-projects
- contract-snapshots
- src
- test_programs
- compile_failure
- allow_phase_change_on_non_external_fn
- src
- allow_phase_change_on_utility_fn
- src
- authorization_selector_collision
- src
- authorize_once_from_wrong_type
- src
- authorize_once_missing_from_param
- src
- authorize_once_missing_nonce_param
- src
- authorize_once_nonce_wrong_type
- src
- authorize_once_on_non_external_fn
- src
- authorize_once_on_utility_fn
- src
- aztec_macro_too_many_args
- src
- bob_token
- src
- duplicate_storage
- src
- event_selector_collision
- src
- external_and_internal_together
- src
- incorrect_storage_struct_name
- src
- initializer_on_non_external_fn
- src
- initializer_on_utility_fn
- src
- invalid_event
- src
- invalid_external_function_type
- src
- invalid_internal_function_type
- src
- invalid_note
- src
- marked_private_unconstrained
- src
- marked_public_unconstrained
- src
- noinitcheck_on_non_external_fn
- src
- noinitcheck_on_utility_fn
- src
- noinitcheck_without_initializer
- src
- non_deserializable
- src
- non_serializable
- src
- only_self_on_non_external_fn
- src
- only_self_on_utility_fn
- src
- panic_on_direct_private_external_fn_call
- src
- panic_on_direct_private_internal_fn_call
- src
- panic_on_direct_public_external_fn_call
- src
- panic_on_direct_public_internal_fn_call
- src
- panic_on_direct_utility_external_fn_call
- src
- panic_on_incorrectly_performed_private_call
- src
- panic_on_incorrectly_performed_private_static_call
- src
- panic_on_incorrectly_performed_public_call
- src
- panic_on_incorrectly_performed_public_static_call
- src
- panic_on_non_state_var_in_storage
- src
- panic_on_owned_state_var_in_storage
- src
- pub_private_external_fn
- src
- pub_public_external_fn
- src
- pub_utility_external_fn
- src
- public_allow_phase_change
- src
- public_function_selector_collision
- src
- reserved_emit_public_init_nullifier
- src
- reserved_public_dispatch
- src
- unmacroified_function_in_contract
- src
- user_defined_offchain_receive
- src
- utility_not_unconstrained
- src
- view_on_non_external_fn
- src
- view_on_utility_fn
- src
- compile_success/authorize_once_before_external
- src
- tests
- snapshots
- compile_failure
- allow_phase_change_on_non_external_fn
- allow_phase_change_on_utility_fn
- authorization_selector_collision
- authorize_once_from_wrong_type
- authorize_once_missing_from_param
- authorize_once_missing_nonce_param
- authorize_once_nonce_wrong_type
- authorize_once_on_non_external_fn
- authorize_once_on_utility_fn
- aztec_macro_too_many_args
- bob_token
- duplicate_storage
- event_selector_collision
- external_and_internal_together
- incorrect_storage_struct_name
- initializer_on_non_external_fn
- initializer_on_utility_fn
- invalid_event
- invalid_external_function_type
- invalid_internal_function_type
- invalid_note
- marked_private_unconstrained
- marked_public_unconstrained
- noinitcheck_on_non_external_fn
- noinitcheck_on_utility_fn
- noinitcheck_without_initializer
- non_deserializable
- non_serializable
- only_self_on_non_external_fn
- only_self_on_utility_fn
- panic_on_direct_private_external_fn_call
- panic_on_direct_private_internal_fn_call
- panic_on_direct_public_external_fn_call
- panic_on_direct_public_internal_fn_call
- panic_on_direct_utility_external_fn_call
- panic_on_incorrectly_performed_private_call
- panic_on_incorrectly_performed_private_static_call
- panic_on_incorrectly_performed_public_call
- panic_on_incorrectly_performed_public_static_call
- panic_on_non_state_var_in_storage
- panic_on_owned_state_var_in_storage
- pub_private_external_fn
- pub_public_external_fn
- pub_utility_external_fn
- public_allow_phase_change
- public_function_selector_collision
- reserved_emit_public_init_nullifier
- reserved_public_dispatch
- unmacroified_function_in_contract
- user_defined_offchain_receive
- utility_not_unconstrained
- view_on_non_external_fn
- view_on_utility_fn
- compile_success/authorize_once_before_external
- expand
- amm_contract
- avm_gadgets_test_contract
- avm_test_contract
- storage_proof_test_contract
- token_contract
- noir-contracts-comp-failures
- contracts
- allow_phase_change_on_non_external_fn
- allow_phase_change_on_utility_fn
- authorization_selector_collision
- authorize_once_before_external
- authorize_once_from_wrong_type
- authorize_once_missing_from_param
- authorize_once_missing_nonce_param
- authorize_once_nonce_wrong_type
- authorize_once_on_non_external_fn
- authorize_once_on_utility_fn
- aztec_macro_too_many_args
- bob_token
- duplicate_storage
- event_selector_collision
- external_and_internal_together
- incorrect_storage_struct_name
- initializer_on_non_external_fn
- initializer_on_utility_fn
- invalid_event
- invalid_external_function_type
- invalid_internal_function_type
- invalid_note
- marked_private_unconstrained
- marked_public_unconstrained
- noinitcheck_on_non_external_fn
- noinitcheck_on_utility_fn
- noinitcheck_without_initializer
- non_deserializable
- non_serializable
- only_self_on_non_external_fn
- only_self_on_utility_fn
- panic_on_direct_private_external_fn_call
- panic_on_direct_private_internal_fn_call
- panic_on_direct_public_external_fn_call
- panic_on_direct_public_internal_fn_call
- panic_on_direct_utility_external_fn_call
- panic_on_incorrectly_performed_private_call
- panic_on_incorrectly_performed_private_static_call
- panic_on_incorrectly_performed_public_call
- panic_on_incorrectly_performed_public_static_call
- panic_on_non_state_var_in_storage
- panic_on_owned_state_var_in_storage
- pub_private_external_fn
- pub_public_external_fn
- pub_utility_external_fn
- public_allow_phase_change
- public_function_selector_collision
- reserved_emit_public_init_nullifier
- reserved_public_dispatch
- unmacroified_function_in_contract
- user_defined_offchain_receive
- utility_not_unconstrained
- view_on_non_external_fn
- view_on_utility_fn
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
301 | 301 | | |
302 | 302 | | |
303 | 303 | | |
304 | | - | |
305 | 304 | | |
306 | 305 | | |
307 | 306 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| 74 | + | |
74 | 75 | | |
75 | 76 | | |
76 | 77 | | |
| |||
171 | 172 | | |
172 | 173 | | |
173 | 174 | | |
| 175 | + | |
174 | 176 | | |
175 | 177 | | |
176 | 178 | | |
| |||
367 | 369 | | |
368 | 370 | | |
369 | 371 | | |
370 | | - | |
371 | 372 | | |
| 373 | + | |
372 | 374 | | |
373 | 375 | | |
374 | 376 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
0 commit comments