Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of the change
This PR makes some changes to the test suite & includes a few miscellaneous fixes and needed features.
The (generated) portion of the test suite is now organized in a more sensible manner, with only a bare minimum of preparatory IO actions. Tests are now generated project directory-by-project directory, excessive file IO and redundant compilation is eliminated, etc.
Additionally, a basic framework for evaluating with execution limits has been added. We will need this to test non-terminating functions (and I guess we could use it as a rough gauge of script performance too?). Prior to this, all of our tests had been run using the machinery for evaluating PLC (that is, typed Plutus core) terms. I couldn't figure out how to add execution limits/budgets there, so we convert to UPLC before evaluating. The test suite runs both the PLC and UPLC versions of the evaluation tests for each function, for now, but we can likely remove the PLC evaluator in a subsequent PR and only use the UPLC one.
Finally there are some misc changes an fixes, the most important of which is that incomplete coverage in case expressions has been upgraded to error from a warning. We need this because we cannot compile a case expression with incomplete coverage.
This is a baby-steps PR - I still need to incorporate some existing (but disabled) tests which the changes here will allow us to finally run.
Checklist: