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.
The original implementation in #137 was a bit lazy: due to accidental complexity, it was very hard to return the whole test tree if the execution was stopped on first failure. However, down the stack it turned out that we do need the full tree after all, so this PR makes it happen.
Instead of a downstream filtering pipe, the
failFast
option is now checked during the tree traversal, and a mutable cell is used to indicate when the execution ought to stop. When that mutable flag is set, the tree traversal itself still runs to the end, producing the full tree, even though the actual example execution gets skipped. Accordingly, in that case, skipped tests will show up in the results as "pending".The mutable cell is used instead of a, say,
StateT
, because of parallelization, which doesn't supportStateT
.