Closed TomAFrench closed 1 year ago
Part of this rework could also include the ability to have Brillig foreign calls that are purely for tests. As per issue #1911 we currently have oracles that exist as nargo builtins when they do not need to be. Other callers (aside nargo like aztec's acvm_js) also have many oracles of their own that they need to be able to call for tests. Some sort of ability to mock oracle calls for tests would be very useful.
Linking this issue for visibility: https://github.com/noir-lang/noir/issues/2036
This issue being addressed would also make potential optimisations such as https://github.com/noir-lang/noir/issues/2189 painfully obvious.
Workflow to build nargo CLI in https://github.com/noir-lang/noir/issues/2013 can be repurposed to provide the nargo cli to use for all of this compilation, etc.
I think we can consider this closed. I'll break out issues for the extra checks we can perform.
Problem
Submitting this so I don't lose it but I'll continue fleshing this out later today
The Noir compiler integration test suite has grown to be quite large and we're treating all the different test cases in the same way, i.e. we attempt to compile and execute every single circuit.
witness - constant = 0
Happy Case
We should split up our test suite into the following categories which all live in different directories for ease of manipulation.
compile-failure
: circuits which are not valid or unsatisfiable Noir code and so the compiler should reject.compile-success
: circuits which are valid satisfiable Noir code but have no arguments.execution-success
: circuits which are valid Noir satisfiable code and have arguments.test-success
: Noir programs which are written as#[test]
cases.execution-success
andcompile-success
are distinct ascompile-success
is expected to compile down to an empty circuit. It is then not useful to test its execution or pass this to barretenberg as a test case.The new testing flow would look something like this:
Alternatives Considered
No response
Additional Context
No response
Would you like to submit a PR for this Issue?
Yes
Support Needs
No response