From 0d48e02ad81af1feb5d6e6ceeb70e0a05c0326d6 Mon Sep 17 00:00:00 2001 From: Matthieu MOREL Date: Sun, 10 Nov 2024 10:33:36 +0100 Subject: [PATCH] [chore]: enable int-conversion rule of perfsprint Signed-off-by: Matthieu MOREL --- .golangci.yml | 7 +++++++ baggage/baggage_test.go | 7 ++++--- bridge/opencensus/internal/ocmetric/metric_test.go | 2 +- bridge/opentracing/bridge.go | 5 +++-- codes/codes_test.go | 4 ++-- exporters/zipkin/internal/internaltest/harness.go | 3 ++- internal/internaltest/harness.go | 3 ++- internal/shared/internaltest/harness.go.tmpl | 3 ++- sdk/internal/internaltest/harness.go | 3 ++- sdk/resource/resource_test.go | 5 +++-- 10 files changed, 28 insertions(+), 14 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index dbfb2a165a0..e6636d42c43 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -22,6 +22,7 @@ linters: - govet - ineffassign - misspell + - perfsprint - revive - staticcheck - tenv @@ -154,6 +155,12 @@ linters-settings: locale: US ignore-words: - cancelled + perfsprint: + err-error: false + errorf: false + int-conversion: true + sprintf1: false + strconcat: false revive: # Sets the default failure confidence. # This means that linting errors with less than 0.8 confidence will be ignored. diff --git a/baggage/baggage_test.go b/baggage/baggage_test.go index bbffeacefdd..157a7ac2a4a 100644 --- a/baggage/baggage_test.go +++ b/baggage/baggage_test.go @@ -7,6 +7,7 @@ import ( "fmt" "math/rand" "slices" + "strconv" "strings" "testing" "unicode/utf8" @@ -232,7 +233,7 @@ func TestNewBaggageWithDuplicates(t *testing.T) { // Duplicates are collapsed. m[i] = Member{ key: "a", - value: fmt.Sprintf("%d", i), + value: strconv.Itoa(i), hasData: true, } } @@ -240,7 +241,7 @@ func TestNewBaggageWithDuplicates(t *testing.T) { assert.NoError(t, err) // Ensure that the last-one-wins by verifying the value. - v := fmt.Sprintf("%d", maxMembers) + v := strconv.Itoa(maxMembers) want := Baggage{list: baggage.List{"a": {Value: v}}} assert.Equal(t, want, b) } @@ -272,7 +273,7 @@ func TestNewBaggageErrorTooManyBytes(t *testing.T) { func TestNewBaggageErrorTooManyMembers(t *testing.T) { m := make([]Member, maxMembers+1) for i := range m { - m[i] = Member{key: fmt.Sprintf("%d", i), hasData: true} + m[i] = Member{key: strconv.Itoa(i), hasData: true} } _, err := New(m...) assert.ErrorIs(t, err, errMemberNumber) diff --git a/bridge/opencensus/internal/ocmetric/metric_test.go b/bridge/opencensus/internal/ocmetric/metric_test.go index afdcfaa9e76..570c55c5935 100644 --- a/bridge/opencensus/internal/ocmetric/metric_test.go +++ b/bridge/opencensus/internal/ocmetric/metric_test.go @@ -1064,7 +1064,7 @@ func TestConvertKV(t *testing.T) { }, { value: uint(math.MaxUint), - expected: attribute.StringValue(fmt.Sprintf("%v", uint(math.MaxUint))), + expected: attribute.StringValue(strconv.FormatUint(uint64(uint(math.MaxUint)), 10)), }, { value: []uint{10, 20}, diff --git a/bridge/opentracing/bridge.go b/bridge/opentracing/bridge.go index 8aee5567f9e..848f028c87f 100644 --- a/bridge/opentracing/bridge.go +++ b/bridge/opentracing/bridge.go @@ -6,6 +6,7 @@ package opentracing // import "go.opentelemetry.io/otel/bridge/opentracing" import ( "context" "fmt" + "strconv" "strings" "sync" @@ -532,7 +533,7 @@ func otTagToOTelAttr(k string, v interface{}) attribute.KeyValue { case int64: return key.Int64(val) case uint64: - return key.String(fmt.Sprintf("%d", val)) + return key.String(strconv.FormatUint(val, 10)) case float64: return key.Float64(val) case int8: @@ -552,7 +553,7 @@ func otTagToOTelAttr(k string, v interface{}) attribute.KeyValue { case int: return key.Int(val) case uint: - return key.String(fmt.Sprintf("%d", val)) + return key.String(strconv.FormatUint(uint64(val), 10)) case string: return key.String(val) default: diff --git a/codes/codes_test.go b/codes/codes_test.go index 7c2322bddf6..c515ba8adff 100644 --- a/codes/codes_test.go +++ b/codes/codes_test.go @@ -6,7 +6,7 @@ package codes import ( "bytes" "encoding/json" - "fmt" + "strconv" "testing" ) @@ -72,7 +72,7 @@ func TestCodeUnmarshalJSON(t *testing.T) { func TestCodeUnmarshalJSONErrorInvalidData(t *testing.T) { tests := []string{ - fmt.Sprintf("%d", maxCode), + strconv.Itoa(maxCode), "Not a code", "Unset", "true", diff --git a/exporters/zipkin/internal/internaltest/harness.go b/exporters/zipkin/internal/internaltest/harness.go index 5f335d69351..268b95e41e0 100644 --- a/exporters/zipkin/internal/internaltest/harness.go +++ b/exporters/zipkin/internal/internaltest/harness.go @@ -9,6 +9,7 @@ package internaltest // import "go.opentelemetry.io/otel/exporters/zipkin/intern import ( "context" "fmt" + "strconv" "sync" "testing" "time" @@ -58,7 +59,7 @@ func (h *Harness) TestTracerProvider(subjectFactory func() trace.TracerProvider) go func(name, version string) { _ = tp.Tracer(name, trace.WithInstrumentationVersion(version)) wg.Done() - }(fmt.Sprintf("tracer %d", i%5), fmt.Sprintf("%d", i)) + }(fmt.Sprintf("tracer %d", i%5), strconv.Itoa(i)) } wg.Wait() done <- struct{}{} diff --git a/internal/internaltest/harness.go b/internal/internaltest/harness.go index c2e4a795804..bff592a929a 100644 --- a/internal/internaltest/harness.go +++ b/internal/internaltest/harness.go @@ -9,6 +9,7 @@ package internaltest // import "go.opentelemetry.io/otel/internal/internaltest" import ( "context" "fmt" + "strconv" "sync" "testing" "time" @@ -58,7 +59,7 @@ func (h *Harness) TestTracerProvider(subjectFactory func() trace.TracerProvider) go func(name, version string) { _ = tp.Tracer(name, trace.WithInstrumentationVersion(version)) wg.Done() - }(fmt.Sprintf("tracer %d", i%5), fmt.Sprintf("%d", i)) + }(fmt.Sprintf("tracer %d", i%5), strconv.Itoa(i)) } wg.Wait() done <- struct{}{} diff --git a/internal/shared/internaltest/harness.go.tmpl b/internal/shared/internaltest/harness.go.tmpl index 36db35476b4..1cb55aaf2bd 100644 --- a/internal/shared/internaltest/harness.go.tmpl +++ b/internal/shared/internaltest/harness.go.tmpl @@ -9,6 +9,7 @@ package internaltest import ( "context" "fmt" + "strconv" "sync" "testing" "time" @@ -58,7 +59,7 @@ func (h *Harness) TestTracerProvider(subjectFactory func() trace.TracerProvider) go func(name, version string) { _ = tp.Tracer(name, trace.WithInstrumentationVersion(version)) wg.Done() - }(fmt.Sprintf("tracer %d", i%5), fmt.Sprintf("%d", i)) + }(fmt.Sprintf("tracer %d", i%5), strconv.Itoa(i)) } wg.Wait() done <- struct{}{} diff --git a/sdk/internal/internaltest/harness.go b/sdk/internal/internaltest/harness.go index ecc754d9d43..eb041a5506d 100644 --- a/sdk/internal/internaltest/harness.go +++ b/sdk/internal/internaltest/harness.go @@ -9,6 +9,7 @@ package internaltest // import "go.opentelemetry.io/otel/sdk/internal/internalte import ( "context" "fmt" + "strconv" "sync" "testing" "time" @@ -58,7 +59,7 @@ func (h *Harness) TestTracerProvider(subjectFactory func() trace.TracerProvider) go func(name, version string) { _ = tp.Tracer(name, trace.WithInstrumentationVersion(version)) wg.Done() - }(fmt.Sprintf("tracer %d", i%5), fmt.Sprintf("%d", i)) + }(fmt.Sprintf("tracer %d", i%5), strconv.Itoa(i)) } wg.Wait() done <- struct{}{} diff --git a/sdk/resource/resource_test.go b/sdk/resource/resource_test.go index ee7eef55be2..26d63c7adc2 100644 --- a/sdk/resource/resource_test.go +++ b/sdk/resource/resource_test.go @@ -9,6 +9,7 @@ import ( "errors" "fmt" "os" + "strconv" "strings" "sync" "testing" @@ -560,7 +561,7 @@ func TestWithProcessPID(t *testing.T) { require.NoError(t, err) require.EqualValues(t, map[string]string{ - "process.pid": fmt.Sprint(fakePID), + "process.pid": strconv.Itoa(fakePID), }, toMap(res)) } @@ -674,7 +675,7 @@ func TestWithProcess(t *testing.T) { require.NoError(t, err) jsonCommandArgs, _ := json.Marshal(fakeCommandArgs) require.EqualValues(t, map[string]string{ - "process.pid": fmt.Sprint(fakePID), + "process.pid": strconv.Itoa(fakePID), "process.executable.name": fakeExecutableName, "process.executable.path": fakeExecutablePath, "process.command_args": string(jsonCommandArgs),