Transport structured diagnostics through the pipeline
This commit is contained in:
@@ -367,7 +367,8 @@ func TestRunnerBoundsExtractJobsAndStabilizesReverseCompletion(t *testing.T) {
|
||||
case <-ctx.Done():
|
||||
return erasedTypedResult{}, ctx.Err()
|
||||
}
|
||||
return erasedTypedResult{Value: typedValueForLane(lane, request.Chunk.Index), Warnings: []contracts.Warning{{Scope: fmt.Sprintf("lane-%d/chunk-%d", lane, request.Chunk.Index), ReasonCode: "observed", Message: "ordered"}}}, nil
|
||||
scope := fmt.Sprintf("lane-%d/chunk-%d", lane, request.Chunk.Index)
|
||||
return erasedTypedResult{Value: typedValueForLane(lane, request.Chunk.Index), Warnings: []contracts.Warning{{Scope: scope, ReasonCode: "observed", Message: "ordered"}}, Diagnostics: []contracts.ProducerDiagnostic{{Disposition: contracts.DiagnosticDispositionObservation, Category: contracts.DiagnosticCategoryNormalization, ReasonCode: "observed", OccurrenceCount: 1, Samples: []contracts.DiagnosticSample{{Scope: scope, Message: "ordered"}}}}}, nil
|
||||
})
|
||||
}
|
||||
|
||||
@@ -404,6 +405,24 @@ func TestRunnerBoundsExtractJobsAndStabilizesReverseCompletion(t *testing.T) {
|
||||
if !reflect.DeepEqual(gotScopes, wantScopes) {
|
||||
t.Fatalf("warning order = %#v, want %#v", gotScopes, wantScopes)
|
||||
}
|
||||
if len(result.output.Diagnostics.Groups) != 2 {
|
||||
t.Fatalf("diagnostic groups = %#v, want one deterministic group per lane", result.output.Diagnostics.Groups)
|
||||
}
|
||||
for lane, group := range result.output.Diagnostics.Groups {
|
||||
if group.Origin.LaneID != prepared.Steps[0].lanes[lane].resolved.ID {
|
||||
t.Fatalf("group origin = %#v, want configured lane %q", group.Origin, prepared.Steps[0].lanes[lane].resolved.ID)
|
||||
}
|
||||
indexes := make([]int, len(group.Samples))
|
||||
for index, sample := range group.Samples {
|
||||
if sample.ChunkIndex == nil {
|
||||
t.Fatalf("sample = %#v, want chunk index", sample)
|
||||
}
|
||||
indexes[index] = *sample.ChunkIndex
|
||||
}
|
||||
if !reflect.DeepEqual(indexes, []int{0, 1, 2}) {
|
||||
t.Fatalf("group sample chunk order = %#v, want canonical chunk order", indexes)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRunnerStartsLaneContinuationWhileOtherLaneExtractsRemain(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user