Skip to content

Commit 4d46bf6

Browse files
sonalgaud12dmathieu
authored andcommitted
Added Test for http.Handler returned from zpages.NewTracezHandler (#8108)
Co-authored-by: Damien Mathieu <[email protected]>
1 parent 2714a67 commit 4d46bf6

12 files changed

+321
-39
lines changed

otelconf/config_json.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -194,11 +194,6 @@ func (j *LogRecordExporter) UnmarshalJSON(b []byte) error {
194194
return nil
195195
}
196196

197-
// MarshalJSON implements json.Marshaler.
198-
func (j *AttributeType) MarshalJSON() ([]byte, error) {
199-
return json.Marshal(j.Value)
200-
}
201-
202197
// UnmarshalJSON implements json.Unmarshaler.
203198
func (j *TextMapPropagator) UnmarshalJSON(b []byte) error {
204199
type Plain TextMapPropagator

otelconf/config_test.go

Lines changed: 98 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,51 @@ func TestNewSDK(t *testing.T) {
394394
wantMeterProvider: metricnoop.NewMeterProvider(),
395395
wantLoggerProvider: lognoop.NewLoggerProvider(),
396396
},
397+
{
398+
name: "invalid resource",
399+
cfg: []ConfigurationOption{
400+
WithContext(t.Context()),
401+
WithOpenTelemetryConfiguration(OpenTelemetryConfiguration{
402+
TracerProvider: &TracerProviderJson{},
403+
MeterProvider: &MeterProviderJson{},
404+
LoggerProvider: &LoggerProviderJson{},
405+
Resource: &LoggerProviderJson{},
406+
}),
407+
},
408+
wantErr: newErrInvalid("resource"),
409+
wantTracerProvider: tracenoop.NewTracerProvider(),
410+
wantMeterProvider: metricnoop.NewMeterProvider(),
411+
wantLoggerProvider: lognoop.NewLoggerProvider(),
412+
},
413+
{
414+
name: "invalid logger provider",
415+
cfg: []ConfigurationOption{
416+
WithContext(t.Context()),
417+
WithOpenTelemetryConfiguration(OpenTelemetryConfiguration{
418+
TracerProvider: &TracerProviderJson{},
419+
MeterProvider: &MeterProviderJson{},
420+
LoggerProvider: &ResourceJson{},
421+
Resource: &ResourceJson{},
422+
}),
423+
},
424+
wantErr: newErrInvalid("logger_provider"),
425+
wantTracerProvider: tracenoop.NewTracerProvider(),
426+
wantMeterProvider: metricnoop.NewMeterProvider(),
427+
wantLoggerProvider: lognoop.NewLoggerProvider(),
428+
},
429+
{
430+
name: "invalid tracer provider",
431+
cfg: []ConfigurationOption{
432+
WithContext(t.Context()),
433+
WithOpenTelemetryConfiguration(OpenTelemetryConfiguration{
434+
TracerProvider: &ResourceJson{},
435+
}),
436+
},
437+
wantErr: newErrInvalid("tracer_provider"),
438+
wantTracerProvider: tracenoop.NewTracerProvider(),
439+
wantMeterProvider: metricnoop.NewMeterProvider(),
440+
wantLoggerProvider: lognoop.NewLoggerProvider(),
441+
},
397442
}
398443
for _, tt := range tests {
399444
sdk, err := NewSDK(tt.cfg...)
@@ -975,38 +1020,69 @@ var v100OpenTelemetryConfigEnvParsing = OpenTelemetryConfiguration{
9751020

9761021
func TestUnmarshalOpenTelemetryConfiguration(t *testing.T) {
9771022
tests := []struct {
978-
name string
979-
input string
980-
wantErr error
981-
wantType *OpenTelemetryConfiguration
1023+
name string
1024+
jsonConfig []byte
1025+
yamlConfig []byte
1026+
wantErr error
1027+
wantType *OpenTelemetryConfiguration
9821028
}{
9831029
{
984-
name: "invalid config missing required file_format",
985-
input: `missing_file_format`,
986-
wantErr: newErrRequired(&OpenTelemetryConfiguration{}, "file_format"),
987-
wantType: &OpenTelemetryConfiguration{},
988-
},
989-
{
990-
name: "file_format invalid",
991-
input: `invalid_file_format`,
992-
wantErr: newErrUnmarshal(&OpenTelemetryConfiguration{}),
993-
wantType: &OpenTelemetryConfiguration{},
994-
},
995-
{
996-
name: "valid defaults config",
997-
input: `valid_defaults`,
1030+
name: "valid defaults config",
1031+
jsonConfig: []byte(`{"file_format": "1.0"}`),
1032+
yamlConfig: []byte("file_format: 1.0"),
9981033
wantType: &OpenTelemetryConfiguration{
9991034
Disabled: ptr(false),
10001035
FileFormat: "1.0",
10011036
LogLevel: ptr("info"),
10021037
},
10031038
},
10041039
{
1005-
name: "invalid config",
1006-
input: "invalid_bool",
1007-
wantErr: newErrUnmarshal(&OpenTelemetryConfiguration{}),
1008-
wantType: &OpenTelemetryConfiguration{},
1040+
name: "invalid config missing required file_format",
1041+
jsonConfig: []byte(`{"disabled": false}`),
1042+
yamlConfig: []byte("disabled: false"),
1043+
wantErr: newErrRequired(&OpenTelemetryConfiguration{}, "file_format"),
1044+
wantType: &OpenTelemetryConfiguration{},
1045+
},
1046+
{
1047+
name: "file_format invalid",
1048+
jsonConfig: []byte(`{"file_format":[], "disabled": false}`),
1049+
yamlConfig: []byte("file_format: []\ndisabled: false"),
1050+
wantErr: newErrUnmarshal(&OpenTelemetryConfiguration{}),
1051+
wantType: &OpenTelemetryConfiguration{},
10091052
},
1053+
{
1054+
name: "invalid config",
1055+
jsonConfig: []byte(`{"file_format": "yaml", "disabled": "notabool"}`),
1056+
yamlConfig: []byte("file_format: []\ndisabled: notabool"),
1057+
wantErr: newErrUnmarshal(&OpenTelemetryConfiguration{}),
1058+
wantType: &OpenTelemetryConfiguration{},
1059+
},
1060+
}
1061+
1062+
for _, tt := range tests {
1063+
t.Run("yaml "+tt.name, func(t *testing.T) {
1064+
got, err := ParseYAML(tt.yamlConfig)
1065+
require.ErrorIs(t, err, tt.wantErr)
1066+
if tt.wantErr == nil {
1067+
assert.Equal(t, tt.wantType, got)
1068+
}
1069+
})
1070+
t.Run("json "+tt.name, func(t *testing.T) {
1071+
var got OpenTelemetryConfiguration
1072+
err := json.Unmarshal(tt.jsonConfig, &got)
1073+
require.ErrorIs(t, err, tt.wantErr)
1074+
assert.Equal(t, tt.wantType, &got)
1075+
})
1076+
}
1077+
}
1078+
1079+
func TestParseFiles(t *testing.T) {
1080+
tests := []struct {
1081+
name string
1082+
input string
1083+
wantErr error
1084+
wantType *OpenTelemetryConfiguration
1085+
}{
10101086
{
10111087
name: "invalid nil name",
10121088
input: "v1.0.0_invalid_nil_name",

otelconf/config_yaml.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,10 @@ func (j *OpenTelemetryConfiguration) UnmarshalYAML(node *yaml.Node) error {
9696
sh.Plain.InstrumentationDevelopment = sh.InstrumentationDevelopment
9797
}
9898

99-
if sh.Plain.LogLevel == nil {
99+
if sh.LogLevel == nil {
100100
// Configure the log level of the internal logger used by the SDK.
101101
// If omitted, info is used.
102-
sh.Plain.LogLevel = ptr("info")
102+
sh.LogLevel = ptr("info")
103103
}
104104

105105
*j = OpenTelemetryConfiguration(sh.Plain)

otelconf/example_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ import (
1212
"go.opentelemetry.io/otel"
1313
"go.opentelemetry.io/otel/log/global"
1414

15-
otelconf "go.opentelemetry.io/contrib/otelconf/v0.3.0"
15+
"go.opentelemetry.io/contrib/otelconf"
1616
)
1717

1818
func Example() {
19-
b, err := os.ReadFile(filepath.Join("testdata", "v0.3.yaml"))
19+
b, err := os.ReadFile(filepath.Join("testdata", "v1.0.0.yaml"))
2020
if err != nil {
2121
log.Fatal(err)
2222
}

otelconf/testdata/invalid_file_format.json

Lines changed: 0 additions & 1 deletion
This file was deleted.

otelconf/testdata/invalid_file_format.yaml

Lines changed: 0 additions & 2 deletions
This file was deleted.

otelconf/testdata/missing_file_format.json

Lines changed: 0 additions & 1 deletion
This file was deleted.

otelconf/testdata/missing_file_format.yaml

Lines changed: 0 additions & 1 deletion
This file was deleted.

otelconf/testdata/valid_defaults.json

Lines changed: 0 additions & 1 deletion
This file was deleted.

otelconf/testdata/valid_defaults.yaml

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)