Documentation
¶
Overview ¶
Package progresslaboratory says which mutant is running, as it runs.
Backlog entry 22: a release used to print nothing between "Releasing Ditto…" and the report, so a run advancing normally and a run that was stuck produced identical bytes. A ten-minute wait was reported as a hang because there was nothing on screen to tell the two apart.
It is a laboratory decorator rather than a line in Release, and the reason is an invariant the goldens hold: `ditto run` has to say exactly what ditto.Release says. Release stacks testingtlaboratory on top, which implements TestAll whether or not anything beneath it can batch — so a line printed by the caller lands in a different order on the two paths, while a line printed by a laboratory lands in the same one on both.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func New ¶
func New(logger ditto.Logger, delegate ditto.Laboratory) ditto.Laboratory
New returns a decorator that batches exactly when what it wraps does.
Types ¶
type ProgressLaboratory ¶
type ProgressLaboratory struct {
// contains filtered or unexported fields
}
ProgressLaboratory announces one mutant at a time.
func (*ProgressLaboratory) Test ¶
func (l *ProgressLaboratory) Test( repository ditto.Repository, file *gomutatedfile.GoMutatedFile, ) future.Future[result.Result[string]]
Test names the mutant BEFORE handing it over. A line printed once a mutant has finished still cannot say which mutant a stall is inside, which is the whole of what this is for.