mirror of
https://github.com/hanzoai/telemetry.git
synced 2026-10-30 20:01:49 +00:00
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description Add `component.Type` parameter to `NewNopSettings` And deprecate `NewNopSettingsWithType` cc @mx-psi <!-- Issue number if applicable --> #### Link to tracking issue Relevant to #12305 <!--Describe what testing was performed and which tests were added.--> #### Testing Updated <!--Describe the documentation added.--> #### Documentation Added <!--Please delete paragraphs that you did not use before submitting.-->
57 lines
1.7 KiB
Go
57 lines
1.7 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package otlpreceiver
|
|
|
|
import (
|
|
"bytes"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"go.opentelemetry.io/collector/component/componenttest"
|
|
"go.opentelemetry.io/collector/consumer/consumertest"
|
|
"go.opentelemetry.io/collector/receiver/otlpreceiver/internal/logs"
|
|
"go.opentelemetry.io/collector/receiver/otlpreceiver/internal/metrics"
|
|
"go.opentelemetry.io/collector/receiver/otlpreceiver/internal/trace"
|
|
"go.opentelemetry.io/collector/receiver/receivertest"
|
|
)
|
|
|
|
func FuzzReceiverHandlers(f *testing.F) {
|
|
f.Fuzz(func(_ *testing.T, data []byte, pb bool, handler int) {
|
|
req, err := http.NewRequest(http.MethodPost, "", bytes.NewReader(data))
|
|
if err != nil {
|
|
return
|
|
}
|
|
if pb {
|
|
req.Header.Add("Content-Type", pbContentType)
|
|
} else {
|
|
req.Header.Add("Content-Type", jsonContentType)
|
|
}
|
|
set := receivertest.NewNopSettings(receivertest.NopType)
|
|
set.TelemetrySettings = componenttest.NewNopTelemetrySettings()
|
|
set.ID = otlpReceiverID
|
|
cfg := createDefaultConfig().(*Config)
|
|
r, err := newOtlpReceiver(cfg, &set)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
r.nextTraces = consumertest.NewNop()
|
|
r.nextLogs = consumertest.NewNop()
|
|
r.nextMetrics = consumertest.NewNop()
|
|
r.nextProfiles = consumertest.NewNop()
|
|
resp := httptest.NewRecorder()
|
|
switch handler % 3 {
|
|
case 0:
|
|
httpTracesReceiver := trace.New(r.nextTraces, r.obsrepHTTP)
|
|
handleTraces(resp, req, httpTracesReceiver)
|
|
case 1:
|
|
httpMetricsReceiver := metrics.New(r.nextMetrics, r.obsrepHTTP)
|
|
handleMetrics(resp, req, httpMetricsReceiver)
|
|
case 2:
|
|
httpLogsReceiver := logs.New(r.nextLogs, r.obsrepHTTP)
|
|
handleLogs(resp, req, httpLogsReceiver)
|
|
}
|
|
})
|
|
}
|