Add a ppx facility to test expressions #403
Merged
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.
This PR introduces a ppx facility to test expressions.
It embeds compiler-libs/pprintast.cmi into the grading environment. This allows to compose reports quoting well-formed pieces of syntaxe produced by ppx-metaquot (e.g. an expression of type Parsetree.expression builded by
[%expr e]
).It implements the ppx extension
[%printable e]
specified in #379 as a shortcut forTest_lib.printable_fun e (Pprintast.string_of_expression [%expr e])
.It implements the ppx extension
[%code e]
which build the tuple(Code.(e), Solution.(e), [%expr e])
. This may be useful for testing an expressione
in the scope of the student code, against the same expressione
in the scope of the solution while having access to the syntax tree ofe
(typically for quotinge
in the report).Here is some examples.
The following grader:
produces the following report:
The following grader:
produces the following report:
The following grader:
produces the following report: