Files
fission-src/pkg/utils/otel/provider_test.go
T
2022-09-26 16:05:45 +05:30

92 lines
2.2 KiB
Go

package otel
import (
"context"
"fmt"
"os"
"reflect"
"sort"
"testing"
"go.opentelemetry.io/contrib/propagators/autoprop"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace"
"github.com/fission/fission/pkg/utils/loggerfactory"
)
func TestGetPropogater(t *testing.T) {
if OtelPropagaters != "OTEL_PROPAGATORS" {
t.Errorf("Expected OTEL_PROPAGATORS to be set, got %s", OtelPropagaters)
}
// tracecontext, baggage, b3, b3multi, jaeger, xray, ottrace, and none
tests := []struct {
propogaterEnv string
propogaters []string
}{
{
"none",
[]string{},
},
{
"tracecontext,baggage",
[]string{"baggage", "traceparent", "tracestate"},
},
{
"jaeger",
[]string{"uber-trace-id"},
},
{
"baggage,tracecontext",
[]string{"baggage", "traceparent", "tracestate"},
},
{
"jaeger,baggage",
[]string{"baggage", "uber-trace-id"},
},
}
for _, tt := range tests {
os.Setenv(OtelPropagaters, tt.propogaterEnv)
propFields := autoprop.NewTextMapPropagator().Fields()
sort.Strings(propFields)
if !reflect.DeepEqual(propFields, tt.propogaters) {
t.Errorf("Expected %s, got %s", tt.propogaters, propFields)
}
}
}
func TestGetTraceExporter(t *testing.T) {
if OtelEndpointEnvVar != "OTEL_EXPORTER_OTLP_ENDPOINT" {
t.Errorf("Expected OTEL_EXPORTER_OTLP_ENDPOINT to be set, got %s", OtelEndpointEnvVar)
}
if OtelInsecureEnvVar != "OTEL_EXPORTER_OTLP_INSECURE" {
t.Errorf("Expected OTEL_EXPORTER_OTLP_INSECURE to be set, got %s", OtelInsecureEnvVar)
}
logger := loggerfactory.GetLogger()
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
tests := []struct {
oltpEndpoint string
oltpInsecure string
wantExporter *otlptrace.Exporter
wantError error
}{
{
"",
"",
nil,
nil,
},
}
for _, tt := range tests {
os.Setenv(OtelEndpointEnvVar, tt.oltpEndpoint)
os.Setenv(OtelInsecureEnvVar, tt.oltpInsecure)
exporter, err := getTraceExporter(ctx, logger)
if !reflect.DeepEqual(exporter, tt.wantExporter) {
t.Errorf("getTraceExporter() exporter = %#v, want %#v", exporter, tt.wantExporter)
}
if fmt.Sprintf("%s", err) != fmt.Sprintf("%s", tt.wantError) {
t.Errorf("getTraceExporter() err = %#v, want %#v", err, tt.wantError)
}
}
}