diff --git a/cmd/jaeger/internal/features/display.go b/cmd/jaeger/internal/features/display.go index c150a71e30d..31c383b9913 100644 --- a/cmd/jaeger/internal/features/display.go +++ b/cmd/jaeger/internal/features/display.go @@ -4,6 +4,7 @@ package features import ( + "bytes" "fmt" "go.opentelemetry.io/collector/featuregate" @@ -11,22 +12,21 @@ import ( func DisplayFeatures() string { f := featuregate.GlobalRegistry() - if f == nil { - return "" - } - out := "" + var buffer bytes.Buffer + f.VisitAll(func(g *featuregate.Gate) { - out += fmt.Sprintf("Feature:\t%s\n", g.ID()) + fmt.Fprintf(&buffer, "Feature:\t%s\n", g.ID()) if g.IsEnabled() { - out += fmt.Sprintf("Default state:\t%s\n", "On") + fmt.Fprintf(&buffer, "Default state:\t%s\n", "On") } else { - out += fmt.Sprintf("Default state:\t%s\n", "Off") + fmt.Fprintf(&buffer, "Default state:\t%s\n", "Off") } - out += fmt.Sprintf("Description:\t%s\n", g.Description()) + fmt.Fprintf(&buffer, "Description:\t%s\n", g.Description()) if ref := g.ReferenceURL(); ref != "" { - out += fmt.Sprintf("ReferenceURL:\t%s\n", ref) + fmt.Fprintf(&buffer, "ReferenceURL:\t%s\n", ref) } - out += "\n" + fmt.Fprintln(&buffer) }) - return out + + return buffer.String() } diff --git a/cmd/jaeger/internal/features/display_test.go b/cmd/jaeger/internal/features/display_test.go index c407bbf391f..0992e59ddae 100644 --- a/cmd/jaeger/internal/features/display_test.go +++ b/cmd/jaeger/internal/features/display_test.go @@ -18,14 +18,11 @@ func TestMain(m *testing.M) { func TestDisplay(t *testing.T) { featuregate.GlobalRegistry().MustRegister( - "jaeger.sampling.includeDefaultOpStrategies", - featuregate.StageBeta, // enabed by default - featuregate.WithRegisterFromVersion("v2.2.0"), - featuregate.WithRegisterToVersion("v2.5.0"), - featuregate.WithRegisterDescription("Forces service strategy to be merged with default strategy, including per-operation overrides."), - featuregate.WithRegisterReferenceURL("https://github.com/jaegertracing/jaeger/issues/5270"), + "jaeger.features-display.test-gate", + featuregate.StageBeta, + featuregate.WithRegisterDescription("test-description"), + featuregate.WithRegisterReferenceURL("https://test-url.com"), ) out := DisplayFeatures() - expected_out := "Feature:\tjaeger.sampling.includeDefaultOpStrategies\nDefault state:\tOn\nDescription:\tForces service strategy to be merged with default strategy, including per-operation overrides.\nReferenceURL:\thttps://github.com/jaegertracing/jaeger/issues/5270\n\n" - require.Equal(t, expected_out, out) + require.Contains(t, out, "jaeger.features-display.test-gate") }