diff --git a/trace/config_test.go b/trace/config_test.go index 547b817d0..1811230cd 100644 --- a/trace/config_test.go +++ b/trace/config_test.go @@ -20,69 +20,89 @@ import ( ) func TestApplyConfig(t *testing.T) { - testCfgs := []Config{ - {}, + cfg := config.Load().(*Config) + defaultCfg := Config{ + DefaultSampler: cfg.DefaultSampler, + IDGenerator: cfg.IDGenerator, + MaxAttributesPerSpan: DefaultMaxAttributesPerSpan, + MaxAnnotationEventsPerSpan: DefaultMaxAnnotationEventsPerSpan, + MaxMessageEventsPerSpan: DefaultMaxMessageEventsPerSpan, + MaxLinksPerSpan: DefaultMaxLinksPerSpan, + } + testCases := []struct { + name string + newCfg Config + wantCfg Config + }{ { - MaxAttributesPerSpan: 1, - MaxAnnotationEventsPerSpan: 2, - MaxMessageEventsPerSpan: 3, - MaxLinksPerSpan: 4, + name: "Initialize to default config", + newCfg: defaultCfg, + wantCfg: defaultCfg, }, { - MaxAttributesPerSpan: -1, - MaxAnnotationEventsPerSpan: 3, - MaxMessageEventsPerSpan: -3, - MaxLinksPerSpan: 5, - }} - cfg := config.Load().(*Config) - wantCfgs := []Config{ - { - DefaultSampler: cfg.DefaultSampler, - IDGenerator: cfg.IDGenerator, - MaxAttributesPerSpan: DefaultMaxAttributesPerSpan, - MaxAnnotationEventsPerSpan: DefaultMaxAnnotationEventsPerSpan, - MaxMessageEventsPerSpan: DefaultMaxMessageEventsPerSpan, - MaxLinksPerSpan: DefaultMaxLinksPerSpan, + name: "Empty Config", + newCfg: Config{}, + wantCfg: defaultCfg, }, { - DefaultSampler: cfg.DefaultSampler, - IDGenerator: cfg.IDGenerator, - MaxAttributesPerSpan: 1, - MaxAnnotationEventsPerSpan: 2, - MaxMessageEventsPerSpan: 3, - MaxLinksPerSpan: 4, + name: "Valid non-default config", + newCfg: Config{ + MaxAttributesPerSpan: 1, + MaxAnnotationEventsPerSpan: 2, + MaxMessageEventsPerSpan: 3, + MaxLinksPerSpan: 4, + }, + wantCfg: Config{ + DefaultSampler: cfg.DefaultSampler, + IDGenerator: cfg.IDGenerator, + MaxAttributesPerSpan: 1, + MaxAnnotationEventsPerSpan: 2, + MaxMessageEventsPerSpan: 3, + MaxLinksPerSpan: 4, + }, }, { - DefaultSampler: cfg.DefaultSampler, - IDGenerator: cfg.IDGenerator, - MaxAttributesPerSpan: 1, - MaxAnnotationEventsPerSpan: 3, - MaxMessageEventsPerSpan: 3, - MaxLinksPerSpan: 5, - }} + name: "Partially invalid config", + newCfg: Config{ + MaxAttributesPerSpan: -1, + MaxAnnotationEventsPerSpan: 3, + MaxMessageEventsPerSpan: -3, + MaxLinksPerSpan: 5, + }, + wantCfg: Config{ + DefaultSampler: cfg.DefaultSampler, + IDGenerator: cfg.IDGenerator, + MaxAttributesPerSpan: 1, + MaxAnnotationEventsPerSpan: 3, + MaxMessageEventsPerSpan: 3, + MaxLinksPerSpan: 5, + }, + }, + } - for i, newCfg := range testCfgs { + for i, tt := range testCases { + newCfg := tt.newCfg ApplyConfig(newCfg) gotCfg := config.Load().(*Config) - wantCfg := wantCfgs[i] + wantCfg := tt.wantCfg if got, want := reflect.ValueOf(gotCfg.DefaultSampler).Pointer(), reflect.ValueOf(wantCfg.DefaultSampler).Pointer(); got != want { - t.Fatalf("testId = %d config.DefaultSampler = %#v; want %#v", i, got, want) + t.Fatalf("testId = %d, testName = %s: config.DefaultSampler = %#v; want %#v", i, tt.name, got, want) } if got, want := gotCfg.IDGenerator, wantCfg.IDGenerator; got != want { - t.Fatalf("testId = %d config.IDGenerator = %#v; want %#v", i, got, want) + t.Fatalf("testId = %d, testName = %s: config.IDGenerator = %#v; want %#v", i, tt.name, got, want) } if got, want := gotCfg.MaxAttributesPerSpan, wantCfg.MaxAttributesPerSpan; got != want { - t.Fatalf("testId = %d config.MaxAttributesPerSpan = %#v; want %#v", i, got, want) + t.Fatalf("testId = %d, testName = %s: config.MaxAttributesPerSpan = %#v; want %#v", i, tt.name, got, want) } if got, want := gotCfg.MaxLinksPerSpan, wantCfg.MaxLinksPerSpan; got != want { - t.Fatalf("testId = %d config.MaxLinksPerSpan = %#v; want %#v", i, got, want) + t.Fatalf("testId = %d, testName = %s: config.MaxLinksPerSpan = %#v; want %#v", i, tt.name, got, want) } if got, want := gotCfg.MaxAnnotationEventsPerSpan, wantCfg.MaxAnnotationEventsPerSpan; got != want { - t.Fatalf("testId = %d config.MaxAnnotationEventsPerSpan = %#v; want %#v", i, got, want) + t.Fatalf("testId = %d, testName = %s: config.MaxAnnotationEventsPerSpan = %#v; want %#v", i, tt.name, got, want) } if got, want := gotCfg.MaxMessageEventsPerSpan, wantCfg.MaxMessageEventsPerSpan; got != want { - t.Fatalf("testId = %d config.MaxMessageEventsPerSpan = %#v; want %#v", i, got, want) + t.Fatalf("testId = %d, testName = %s: config.MaxMessageEventsPerSpan = %#v; want %#v", i, tt.name, got, want) } }