Skip to content

Commit b9543ac

Browse files
committed
updating obsreport for coverage
Signed-off-by: Andreas Gkizas <[email protected]>
1 parent 7f5d19f commit b9543ac

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

receiver/receiverhelper/obsreport_test.go

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ func TestReceiveTraceDataOp(t *testing.T) {
4646
params := []testParams{
4747
{items: 13, err: WrapDownstreamError(errFake)},
4848
{items: 42, err: nil},
49+
{items: 7, err: errors.New("non-downstream error")}, // Regular error to test numFailedErrors path
4950
}
5051
for i, param := range params {
5152
rec, err := newReceiver(ObsReportSettings{
@@ -62,19 +63,29 @@ func TestReceiveTraceDataOp(t *testing.T) {
6263
spans := tt.SpanRecorder.Ended()
6364
require.Len(t, spans, len(params))
6465

65-
var acceptedSpans, refusedSpans int
66+
var acceptedSpans, refusedSpans, failedSpans int
6667
for i, span := range spans {
6768
assert.Equal(t, "receiver/"+receiverID.String()+"/TraceDataReceived", span.Name())
6869
switch {
6970
case params[i].err == nil:
7071
acceptedSpans += params[i].items
7172
require.Contains(t, span.Attributes(), attribute.KeyValue{Key: internal.AcceptedSpansKey, Value: attribute.Int64Value(int64(params[i].items))})
7273
require.Contains(t, span.Attributes(), attribute.KeyValue{Key: internal.RefusedSpansKey, Value: attribute.Int64Value(0)})
74+
require.Contains(t, span.Attributes(), attribute.KeyValue{Key: internal.FailedSpansKey, Value: attribute.Int64Value(0)})
7375
assert.Equal(t, codes.Unset, span.Status().Code)
7476
case errors.Is(params[i].err, errFake):
7577
refusedSpans += params[i].items
7678
require.Contains(t, span.Attributes(), attribute.KeyValue{Key: internal.AcceptedSpansKey, Value: attribute.Int64Value(0)})
7779
require.Contains(t, span.Attributes(), attribute.KeyValue{Key: internal.RefusedSpansKey, Value: attribute.Int64Value(int64(params[i].items))})
80+
require.Contains(t, span.Attributes(), attribute.KeyValue{Key: internal.FailedSpansKey, Value: attribute.Int64Value(0)})
81+
assert.Equal(t, codes.Error, span.Status().Code)
82+
assert.Equal(t, params[i].err.Error(), span.Status().Description)
83+
case params[i].err != nil && !errors.Is(params[i].err, ErrDownstreamError):
84+
// Non-downstream error case - this covers the uncovered numFailedErrors path
85+
failedSpans += params[i].items
86+
require.Contains(t, span.Attributes(), attribute.KeyValue{Key: internal.AcceptedSpansKey, Value: attribute.Int64Value(0)})
87+
require.Contains(t, span.Attributes(), attribute.KeyValue{Key: internal.RefusedSpansKey, Value: attribute.Int64Value(0)})
88+
require.Contains(t, span.Attributes(), attribute.KeyValue{Key: internal.FailedSpansKey, Value: attribute.Int64Value(int64(params[i].items))})
7889
assert.Equal(t, codes.Error, span.Status().Code)
7990
assert.Equal(t, params[i].err.Error(), span.Status().Description)
8091
default:
@@ -100,6 +111,15 @@ func TestReceiveTraceDataOp(t *testing.T) {
100111
Value: int64(refusedSpans),
101112
},
102113
}, metricdatatest.IgnoreTimestamp(), metricdatatest.IgnoreExemplars())
114+
metadatatest.AssertEqualReceiverFailedSpans(t, tt,
115+
[]metricdata.DataPoint[int64]{
116+
{
117+
Attributes: attribute.NewSet(
118+
attribute.String(internal.ReceiverKey, receiverID.String()),
119+
attribute.String(internal.TransportKey, transport)),
120+
Value: int64(failedSpans),
121+
},
122+
}, metricdatatest.IgnoreTimestamp(), metricdatatest.IgnoreExemplars())
103123

104124
// Assert otelcol_receiver_requests metric with outcome attribute
105125
var expectedRequests []metricdata.DataPoint[int64]

0 commit comments

Comments
 (0)