-
Notifications
You must be signed in to change notification settings - Fork 219
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reworking the Noir compiler test suite [WIP] #2013
Comments
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: #2036 |
This issue being addressed would also make potential optimisations such as #2189 painfully obvious. |
Workflow to build nargo CLI in #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
The text was updated successfully, but these errors were encountered: