chore: add unit tests for brillig-gen#10130
Conversation
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Execution Time'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: b5a5ebb | Previous: b5ece4a | Ratio |
|---|---|---|---|
sha512-100-bytes |
0.081 s |
0.059 s |
1.37 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Test Suite Duration'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: 813e76a | Previous: b5ece4a | Ratio |
|---|---|---|---|
test_report_zkpassport_noir-ecdsa_ |
3 s |
2 s |
1.50 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
There was a problem hiding this comment.
Generally it is a bit challenging following the tests when they are all built to a single and final entry point artifact. I think using ssa_to_acir_program is good for testing a complete Brillig entry point (e.g., did we set up the call data entry point correctly, did we link our separate brillig artifacts together in the case of multiple procedures or functions). However, it clutters the tests when used for every unit test which is just looking at test the code gen of individual instructions or single functions. For example, I see for the brillig_add tests we have comments describing how each of the artifacts links together to form the entry point and the code gen result of the individual instruction we want to test. It is difficult for a new contributor to see exactly what is being tested without these types of comments on every test. Also, if we ever change the entry point logic we would have to update every Brillig gen unit test. We still want entry point tests but they should be their own thing.
We should make a display for BrilligArtifact and check snapshots against that for individual instruction unit tests. We don't need a separate parser or anything as we will just be asserting against a display. I'll make a follow-up to show what I am thinking.
EDIT: #10165
compiler/noirc_evaluator/src/brillig/brillig_gen/tests/binary_test.rs
Outdated
Show resolved
Hide resolved
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: add unit tests for brillig-gen (noir-lang/noir#10130) chore(ACIR): remove non-ACIR intrinsics during simplification (noir-lang/noir#10145) fix: Do not carry over `#[fold]` to unconstrained functions during monomorphization (noir-lang/noir#10155) chore(SSA): avoid consuming self when returning Arc (noir-lang/noir#10147) fix(ssa): Use `Type::element_size` instead of `Type::flattened_size` for `optimize_length_one_array_read` (noir-lang/noir#10146) fix(ssa): SSA Interpreter handle overflow by promoting to Field (noir-lang/noir#10097) chore: Try to optimize compilation memory (noir-lang/noir#10113) chore(ACIRgen): smaller AcirDynamicArray value_types (noir-lang/noir#10128) chore(brillig_vm): Re-org integration tests and add a couple more (noir-lang/noir#10129) chore: unhide `inliner-aggressiveness` option (noir-lang/noir#10137) chore(brillig_vm): Expand arithmetic int ops tests and add field ops tests (noir-lang/noir#10101) chore(ACIR): don't override output count in black box function (noir-lang/noir#10123) chore(test): Add `interpret_execution_failure` tests (noir-lang/noir#9912) fix(ACIR): correctly display the zero expression (noir-lang/noir#10124) chore: typos and some refactors in `acvm/src/pwg/mod.rs` (noir-lang/noir#10055) chore: add brillig_call submodule (noir-lang/noir#10108) chore(ACIRgen): always compute array offset (noir-lang/noir#10099) chore: More BTreeSet avoidance (noir-lang/noir#10107) END_COMMIT_OVERRIDE Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: add unit tests for brillig-gen (noir-lang/noir#10130) chore(ACIR): remove non-ACIR intrinsics during simplification (noir-lang/noir#10145) fix: Do not carry over `#[fold]` to unconstrained functions during monomorphization (noir-lang/noir#10155) chore(SSA): avoid consuming self when returning Arc (noir-lang/noir#10147) fix(ssa): Use `Type::element_size` instead of `Type::flattened_size` for `optimize_length_one_array_read` (noir-lang/noir#10146) fix(ssa): SSA Interpreter handle overflow by promoting to Field (noir-lang/noir#10097) chore: Try to optimize compilation memory (noir-lang/noir#10113) chore(ACIRgen): smaller AcirDynamicArray value_types (noir-lang/noir#10128) chore(brillig_vm): Re-org integration tests and add a couple more (noir-lang/noir#10129) chore: unhide `inliner-aggressiveness` option (noir-lang/noir#10137) chore(brillig_vm): Expand arithmetic int ops tests and add field ops tests (noir-lang/noir#10101) chore(ACIR): don't override output count in black box function (noir-lang/noir#10123) chore(test): Add `interpret_execution_failure` tests (noir-lang/noir#9912) fix(ACIR): correctly display the zero expression (noir-lang/noir#10124) chore: typos and some refactors in `acvm/src/pwg/mod.rs` (noir-lang/noir#10055) chore: add brillig_call submodule (noir-lang/noir#10108) chore(ACIRgen): always compute array offset (noir-lang/noir#10099) chore: More BTreeSet avoidance (noir-lang/noir#10107) END_COMMIT_OVERRIDE
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: add unit tests for brillig-gen (noir-lang/noir#10130) chore(ACIR): remove non-ACIR intrinsics during simplification (noir-lang/noir#10145) fix: Do not carry over `#[fold]` to unconstrained functions during monomorphization (noir-lang/noir#10155) chore(SSA): avoid consuming self when returning Arc (noir-lang/noir#10147) fix(ssa): Use `Type::element_size` instead of `Type::flattened_size` for `optimize_length_one_array_read` (noir-lang/noir#10146) fix(ssa): SSA Interpreter handle overflow by promoting to Field (noir-lang/noir#10097) chore: Try to optimize compilation memory (noir-lang/noir#10113) chore(ACIRgen): smaller AcirDynamicArray value_types (noir-lang/noir#10128) chore(brillig_vm): Re-org integration tests and add a couple more (noir-lang/noir#10129) chore: unhide `inliner-aggressiveness` option (noir-lang/noir#10137) chore(brillig_vm): Expand arithmetic int ops tests and add field ops tests (noir-lang/noir#10101) chore(ACIR): don't override output count in black box function (noir-lang/noir#10123) chore(test): Add `interpret_execution_failure` tests (noir-lang/noir#9912) fix(ACIR): correctly display the zero expression (noir-lang/noir#10124) chore: typos and some refactors in `acvm/src/pwg/mod.rs` (noir-lang/noir#10055) chore: add brillig_call submodule (noir-lang/noir#10108) chore(ACIRgen): always compute array offset (noir-lang/noir#10099) chore: More BTreeSet avoidance (noir-lang/noir#10107) END_COMMIT_OVERRIDE
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: add unit tests for brillig-gen (noir-lang/noir#10130) chore(ACIR): remove non-ACIR intrinsics during simplification (noir-lang/noir#10145) fix: Do not carry over `#[fold]` to unconstrained functions during monomorphization (noir-lang/noir#10155) chore(SSA): avoid consuming self when returning Arc (noir-lang/noir#10147) fix(ssa): Use `Type::element_size` instead of `Type::flattened_size` for `optimize_length_one_array_read` (noir-lang/noir#10146) fix(ssa): SSA Interpreter handle overflow by promoting to Field (noir-lang/noir#10097) chore: Try to optimize compilation memory (noir-lang/noir#10113) chore(ACIRgen): smaller AcirDynamicArray value_types (noir-lang/noir#10128) chore(brillig_vm): Re-org integration tests and add a couple more (noir-lang/noir#10129) chore: unhide `inliner-aggressiveness` option (noir-lang/noir#10137) chore(brillig_vm): Expand arithmetic int ops tests and add field ops tests (noir-lang/noir#10101) chore(ACIR): don't override output count in black box function (noir-lang/noir#10123) chore(test): Add `interpret_execution_failure` tests (noir-lang/noir#9912) fix(ACIR): correctly display the zero expression (noir-lang/noir#10124) chore: typos and some refactors in `acvm/src/pwg/mod.rs` (noir-lang/noir#10055) chore: add brillig_call submodule (noir-lang/noir#10108) chore(ACIRgen): always compute array offset (noir-lang/noir#10099) chore: More BTreeSet avoidance (noir-lang/noir#10107) END_COMMIT_OVERRIDE
Description
Problem*
Related to #9799
Summary*
Unit tests for Brillig-gen
Additional Context
Documentation*
Check one:
PR Checklist*
cargo fmton default settings.