Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type VerboseLaboratory ¶
type VerboseLaboratory struct {
// contains filtered or unexported fields
}
func New ¶
func New(logger ditto.Logger, delegate ditto.Laboratory) *VerboseLaboratory
func (*VerboseLaboratory) Test ¶
func (l *VerboseLaboratory) Test( repository ditto.Repository, file *gomutatedfile.GoMutatedFile, ) future.Future[result.Result[string]]
func (*VerboseLaboratory) TestAll ¶ added in v0.3.0
func (l *VerboseLaboratory) TestAll( repository ditto.Repository, files []*gomutatedfile.GoMutatedFile, ) []future.Future[result.Result[string]]
TestAll forwards a whole file's mutants when the laboratory below can take them, and keeps one mutant at a time otherwise.
Without this the batch stops here, silently. `Release` wraps the stack in this decorator whenever `testing.Verbose` is set, and `Ditto.Release` reaches the gated laboratory only by asserting each layer to BatchLaboratory — so a layer that implements Test and not TestAll turns the gated path off and reports nothing, because the run still works, one compilation per mutant, exactly as if nothing had been wired at all.
Measured on the golden fixture before this existed: 4 of 7 mutants gated without `-v`, none of 7 with it. `go test -v` is what CI runs. docs/experiments/forwarding-the-batch.md.
The logging stays on the one-at-a-time path. A batch is one compilation for several mutants, so there is no per-mutant run below this to announce and nothing to await without serialising what was just batched.