-
Notifications
You must be signed in to change notification settings - Fork 36
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
Redesigning Testing Architecture #978
Comments
The key question here is: what is the proposed file format? Some thoughts:
That's a reasonably challenging feature set! But, that would go a long way to helping the testing setup. |
Initial draft (to become an RFC):
An outstanding question is: how to signal a diff rather than a complete replacement? Likewise, for deletions etc. |
Details within a frame:
This indicates changes to |
Done. It remains to enable QuickCheck on the tests. Also, need to work it into a framework which is usable by other repos. |
Currently, the testing architecture is pretty simplistic:
Assert_Valid_1.whiley
) which is correct and verifiable.Assert_Invalid_1.whiley
), along with an output file (e.g.Assert_Invalid_1.sysout
). The output file identifies the expected errors to be generated.As we move towards incremental compilation, this is no longer going to be sufficient. Specifically, we will need each test to be a sequence of program iterations, some of which may produce invalid code and error messages. In this model, we no longer need to distinguish valid from invalid as every file will contain examples of both. Indeed, we may have different tests which produce the same file but in a different sequence.
In addition to this, we have two major stages which need to be tested:
valid
andinvalid
tests. However, a number of tests are ignored because they lead to internal failures, etc.QuickCheck
cannot correctly identify all invalid tests as invalid (and potentially will never be able to).Potentially, other things we might like to test include refactoring, etc.
Solution
The proposal here is to have some kind of file format for encoding tests. Specifically, that encodes a sequence of edits on a file along with expected error messages. Potentially, this could also support multiple compilation units to test
NameResolution
, etc. And, even some regression metrics to help identify performance regressions, etc. Some issues:The text was updated successfully, but these errors were encountered: