diff --git a/.chloggen/copyto-optimize.yaml b/.chloggen/copyto-optimize.yaml new file mode 100644 index 00000000000..4b43d0ea690 --- /dev/null +++ b/.chloggen/copyto-optimize.yaml @@ -0,0 +1,25 @@ +# Use this changelog template to create an entry for release notes. + +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: enhancement + +# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver) +component: pdata + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Optimize CopyTo messages to avoid any copy when same source and destination + +# One or more tracking issues or pull requests related to the change +issues: [13680] + +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: + +# Optional: The change log or logs in which this entry should be included. +# e.g. '[user]' or '[user, api]' +# Include 'user' if the change is relevant to end users. +# Include 'api' if there is a change to a library API. +# Default: '[user]' +change_logs: [user] diff --git a/internal/cmd/pdatagen/internal/pdata/pcommon_package.go b/internal/cmd/pdatagen/internal/pdata/pcommon_package.go index fd8e0bb3961..452545e644b 100644 --- a/internal/cmd/pdatagen/internal/pdata/pcommon_package.go +++ b/internal/cmd/pdatagen/internal/pdata/pcommon_package.go @@ -25,6 +25,7 @@ var pcommon = &Package{ `otlpresource "go.opentelemetry.io/collector/pdata/internal/data/protogen/resource/v1"`, }, testImports: []string{ + `"strconv"`, `"testing"`, ``, `"github.com/stretchr/testify/assert"`, diff --git a/internal/cmd/pdatagen/internal/pdata/plog_package.go b/internal/cmd/pdatagen/internal/pdata/plog_package.go index 66388e4f4e1..880d8896704 100644 --- a/internal/cmd/pdatagen/internal/pdata/plog_package.go +++ b/internal/cmd/pdatagen/internal/pdata/plog_package.go @@ -27,6 +27,7 @@ var plog = &Package{ `"go.opentelemetry.io/collector/pdata/pcommon"`, }, testImports: []string{ + `"strconv"`, `"testing"`, `"unsafe"`, ``, diff --git a/internal/cmd/pdatagen/internal/pdata/plogotlp_package.go b/internal/cmd/pdatagen/internal/pdata/plogotlp_package.go index 523ce8ed866..ab526c7405a 100644 --- a/internal/cmd/pdatagen/internal/pdata/plogotlp_package.go +++ b/internal/cmd/pdatagen/internal/pdata/plogotlp_package.go @@ -23,6 +23,7 @@ var plogotlp = &Package{ `otlpcollectorlogs "go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/logs/v1"`, }, testImports: []string{ + `"strconv"`, `"testing"`, ``, `"github.com/stretchr/testify/assert"`, diff --git a/internal/cmd/pdatagen/internal/pdata/pmetric_package.go b/internal/cmd/pdatagen/internal/pdata/pmetric_package.go index 87ec1b22782..ae78f656cb3 100644 --- a/internal/cmd/pdatagen/internal/pdata/pmetric_package.go +++ b/internal/cmd/pdatagen/internal/pdata/pmetric_package.go @@ -27,6 +27,7 @@ var pmetric = &Package{ `"go.opentelemetry.io/collector/pdata/pcommon"`, }, testImports: []string{ + `"strconv"`, `"testing"`, `"unsafe"`, ``, diff --git a/internal/cmd/pdatagen/internal/pdata/pmetricotlp_package.go b/internal/cmd/pdatagen/internal/pdata/pmetricotlp_package.go index 90212b4e720..f9748ab4b13 100644 --- a/internal/cmd/pdatagen/internal/pdata/pmetricotlp_package.go +++ b/internal/cmd/pdatagen/internal/pdata/pmetricotlp_package.go @@ -24,6 +24,7 @@ var pmetricotlp = &Package{ `otlpcollectormetrics "go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/metrics/v1"`, }, testImports: []string{ + `"strconv"`, `"testing"`, ``, `"github.com/stretchr/testify/assert"`, diff --git a/internal/cmd/pdatagen/internal/pdata/pprofile_package.go b/internal/cmd/pdatagen/internal/pdata/pprofile_package.go index cd936531e00..dc56a868ffc 100644 --- a/internal/cmd/pdatagen/internal/pdata/pprofile_package.go +++ b/internal/cmd/pdatagen/internal/pdata/pprofile_package.go @@ -28,6 +28,7 @@ var pprofile = &Package{ `"go.opentelemetry.io/collector/pdata/pcommon"`, }, testImports: []string{ + `"strconv"`, `"testing"`, `"unsafe"`, ``, diff --git a/internal/cmd/pdatagen/internal/pdata/pprofileotlp_package.go b/internal/cmd/pdatagen/internal/pdata/pprofileotlp_package.go index 39874b746e2..fe1a7b149c7 100644 --- a/internal/cmd/pdatagen/internal/pdata/pprofileotlp_package.go +++ b/internal/cmd/pdatagen/internal/pdata/pprofileotlp_package.go @@ -23,6 +23,7 @@ var pprofileotlp = &Package{ `otlpcollectorprofiles "go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/profiles/v1development"`, }, testImports: []string{ + `"strconv"`, `"testing"`, ``, `"github.com/stretchr/testify/assert"`, diff --git a/internal/cmd/pdatagen/internal/pdata/ptrace_package.go b/internal/cmd/pdatagen/internal/pdata/ptrace_package.go index 045f3a946d9..288873cc0b4 100644 --- a/internal/cmd/pdatagen/internal/pdata/ptrace_package.go +++ b/internal/cmd/pdatagen/internal/pdata/ptrace_package.go @@ -27,6 +27,7 @@ var ptrace = &Package{ `"go.opentelemetry.io/collector/pdata/pcommon"`, }, testImports: []string{ + `"strconv"`, `"testing"`, `"unsafe"`, ``, diff --git a/internal/cmd/pdatagen/internal/pdata/ptraceotlp_package.go b/internal/cmd/pdatagen/internal/pdata/ptraceotlp_package.go index d46d36b363b..4aa00b08711 100644 --- a/internal/cmd/pdatagen/internal/pdata/ptraceotlp_package.go +++ b/internal/cmd/pdatagen/internal/pdata/ptraceotlp_package.go @@ -24,6 +24,7 @@ var ptraceotlp = &Package{ `otlpcollectortrace "go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/trace/v1"`, }, testImports: []string{ + `"strconv"`, `"testing"`, ``, `"github.com/stretchr/testify/assert"`, diff --git a/internal/cmd/pdatagen/internal/pdata/templates/message_internal.go.tmpl b/internal/cmd/pdatagen/internal/pdata/templates/message_internal.go.tmpl index f2bc6376128..f84326644ea 100644 --- a/internal/cmd/pdatagen/internal/pdata/templates/message_internal.go.tmpl +++ b/internal/cmd/pdatagen/internal/pdata/templates/message_internal.go.tmpl @@ -63,6 +63,11 @@ func DeleteOrig{{ .originName }}(orig *{{ .originFullName }}, nullable bool) { } func CopyOrig{{ .originName }}(dest, src *{{ .originFullName }}) { + // If copying to same object, just return. + if src == dest { + return + } + {{- range .fields }} {{ .GenerateCopyOrig $.messageStruct }} {{- end }} diff --git a/internal/cmd/pdatagen/internal/pdata/templates/message_internal_test.go.tmpl b/internal/cmd/pdatagen/internal/pdata/templates/message_internal_test.go.tmpl index 0e75bcb19d6..d01248566c4 100644 --- a/internal/cmd/pdatagen/internal/pdata/templates/message_internal_test.go.tmpl +++ b/internal/cmd/pdatagen/internal/pdata/templates/message_internal_test.go.tmpl @@ -13,13 +13,23 @@ import ( ) func TestCopyOrig{{ .originName }}(t *testing.T) { - src := NewOrig{{ .originName }}() - dest := NewOrig{{ .originName }}() - CopyOrig{{ .originName }}(dest, src) - assert.Equal(t, NewOrig{{ .originName }}(), dest) - *src = *GenTestOrig{{ .originName }}() - CopyOrig{{ .originName }}(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValues{{ .originName }}() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrig{{ .originName }}() + CopyOrig{{ .originName }}(dest, src) + assert.Equal(t, src, dest) + CopyOrig{{ .originName }}(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrig{{ .originName }}Unknown(t *testing.T) { @@ -34,7 +44,7 @@ func TestMarshalAndUnmarshalJSONOrig{{ .originName }}Unknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrig{{ .originName }}(t *testing.T) { for name, src := range genTestEncodingValues{{ .originName }}() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -78,7 +88,7 @@ func TestMarshalAndUnmarshalProtoOrig{{ .originName }}Unknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrig{{ .originName }}(t *testing.T) { for name, src := range genTestEncodingValues{{ .originName }}(){ for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/internal/cmd/pdatagen/internal/pdata/templates/primitive_slice.go.tmpl b/internal/cmd/pdatagen/internal/pdata/templates/primitive_slice.go.tmpl index b99a824fde2..435e573c65e 100644 --- a/internal/cmd/pdatagen/internal/pdata/templates/primitive_slice.go.tmpl +++ b/internal/cmd/pdatagen/internal/pdata/templates/primitive_slice.go.tmpl @@ -129,6 +129,9 @@ func (ms {{ .structName }}) MoveAndAppendTo(dest {{ .structName }}) { // CopyTo copies all elements from the current slice overriding the destination. func (ms {{ .structName }}) CopyTo(dest {{ .structName }}) { dest.getState().AssertMutable() + if ms.getOrig() == dest.getOrig() { + return + } *dest.getOrig() = internal.CopyOrig{{ .elementOriginName }}Slice(*dest.getOrig(), *ms.getOrig()) } diff --git a/internal/cmd/pdatagen/internal/pdata/templates/slice.go.tmpl b/internal/cmd/pdatagen/internal/pdata/templates/slice.go.tmpl index 2165706dccd..9ff3aa6f5ce 100644 --- a/internal/cmd/pdatagen/internal/pdata/templates/slice.go.tmpl +++ b/internal/cmd/pdatagen/internal/pdata/templates/slice.go.tmpl @@ -160,6 +160,9 @@ func (es {{ .structName }}) RemoveIf(f func({{ .elementName }}) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es {{ .structName }}) CopyTo(dest {{ .structName }}) { dest.{{ .stateAccessor }}.AssertMutable() + if es.{{ .origAccessor }} == dest.{{ .origAccessor }} { + return + } *dest.{{ .origAccessor }} = internal.CopyOrig{{ .elementOriginName }}Slice(*dest.{{ .origAccessor }}, *es.{{ .origAccessor }}) } diff --git a/internal/cmd/pdatagen/internal/pdata/templates/slice_test.go.tmpl b/internal/cmd/pdatagen/internal/pdata/templates/slice_test.go.tmpl index c6a627acb9c..2f3d339743b 100644 --- a/internal/cmd/pdatagen/internal/pdata/templates/slice_test.go.tmpl +++ b/internal/cmd/pdatagen/internal/pdata/templates/slice_test.go.tmpl @@ -56,6 +56,8 @@ func Test{{ .structName }}_CopyTo(t *testing.T) { src := generateTest{{ .structName }}() src.CopyTo(dest) assert.Equal(t, generateTest{{ .structName }}(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTest{{ .structName }}(), dest) } func Test{{ .structName }}_EnsureCapacity(t *testing.T) { diff --git a/pdata/internal/generated_wrapper_attributeunit.go b/pdata/internal/generated_wrapper_attributeunit.go index ed64033c224..e07b36d17c4 100644 --- a/pdata/internal/generated_wrapper_attributeunit.go +++ b/pdata/internal/generated_wrapper_attributeunit.go @@ -45,6 +45,10 @@ func DeleteOrigAttributeUnit(orig *otlpprofiles.AttributeUnit, nullable bool) { } func CopyOrigAttributeUnit(dest, src *otlpprofiles.AttributeUnit) { + // If copying to same object, just return. + if src == dest { + return + } dest.AttributeKeyStrindex = src.AttributeKeyStrindex dest.UnitStrindex = src.UnitStrindex } diff --git a/pdata/internal/generated_wrapper_attributeunit_test.go b/pdata/internal/generated_wrapper_attributeunit_test.go index 219b8a00b57..b47da053323 100644 --- a/pdata/internal/generated_wrapper_attributeunit_test.go +++ b/pdata/internal/generated_wrapper_attributeunit_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigAttributeUnit(t *testing.T) { - src := NewOrigAttributeUnit() - dest := NewOrigAttributeUnit() - CopyOrigAttributeUnit(dest, src) - assert.Equal(t, NewOrigAttributeUnit(), dest) - *src = *GenTestOrigAttributeUnit() - CopyOrigAttributeUnit(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesAttributeUnit() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigAttributeUnit() + CopyOrigAttributeUnit(dest, src) + assert.Equal(t, src, dest) + CopyOrigAttributeUnit(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigAttributeUnitUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigAttributeUnitUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigAttributeUnit(t *testing.T) { for name, src := range genTestEncodingValuesAttributeUnit() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigAttributeUnitUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigAttributeUnit(t *testing.T) { for name, src := range genTestEncodingValuesAttributeUnit() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_entityref.go b/pdata/internal/generated_wrapper_entityref.go index 30e63520bfd..3d2d8b4883f 100644 --- a/pdata/internal/generated_wrapper_entityref.go +++ b/pdata/internal/generated_wrapper_entityref.go @@ -62,6 +62,10 @@ func DeleteOrigEntityRef(orig *otlpcommon.EntityRef, nullable bool) { } func CopyOrigEntityRef(dest, src *otlpcommon.EntityRef) { + // If copying to same object, just return. + if src == dest { + return + } dest.SchemaUrl = src.SchemaUrl dest.Type = src.Type dest.IdKeys = CopyOrigStringSlice(dest.IdKeys, src.IdKeys) diff --git a/pdata/internal/generated_wrapper_entityref_test.go b/pdata/internal/generated_wrapper_entityref_test.go index 6307ccf293a..19e9fd9989b 100644 --- a/pdata/internal/generated_wrapper_entityref_test.go +++ b/pdata/internal/generated_wrapper_entityref_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigEntityRef(t *testing.T) { - src := NewOrigEntityRef() - dest := NewOrigEntityRef() - CopyOrigEntityRef(dest, src) - assert.Equal(t, NewOrigEntityRef(), dest) - *src = *GenTestOrigEntityRef() - CopyOrigEntityRef(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesEntityRef() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigEntityRef() + CopyOrigEntityRef(dest, src) + assert.Equal(t, src, dest) + CopyOrigEntityRef(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigEntityRefUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigEntityRefUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigEntityRef(t *testing.T) { for name, src := range genTestEncodingValuesEntityRef() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigEntityRefUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigEntityRef(t *testing.T) { for name, src := range genTestEncodingValuesEntityRef() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exemplar.go b/pdata/internal/generated_wrapper_exemplar.go index 1bcdaa07cae..ac7145257b9 100644 --- a/pdata/internal/generated_wrapper_exemplar.go +++ b/pdata/internal/generated_wrapper_exemplar.go @@ -55,6 +55,10 @@ func DeleteOrigExemplar(orig *otlpmetrics.Exemplar, nullable bool) { } func CopyOrigExemplar(dest, src *otlpmetrics.Exemplar) { + // If copying to same object, just return. + if src == dest { + return + } dest.FilteredAttributes = CopyOrigKeyValueSlice(dest.FilteredAttributes, src.FilteredAttributes) dest.TimeUnixNano = src.TimeUnixNano switch t := src.Value.(type) { diff --git a/pdata/internal/generated_wrapper_exemplar_test.go b/pdata/internal/generated_wrapper_exemplar_test.go index a3e366bf1fa..d64b9799e29 100644 --- a/pdata/internal/generated_wrapper_exemplar_test.go +++ b/pdata/internal/generated_wrapper_exemplar_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigExemplar(t *testing.T) { - src := NewOrigExemplar() - dest := NewOrigExemplar() - CopyOrigExemplar(dest, src) - assert.Equal(t, NewOrigExemplar(), dest) - *src = *GenTestOrigExemplar() - CopyOrigExemplar(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExemplar() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExemplar() + CopyOrigExemplar(dest, src) + assert.Equal(t, src, dest) + CopyOrigExemplar(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExemplarUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigExemplarUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigExemplar(t *testing.T) { for name, src := range genTestEncodingValuesExemplar() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigExemplarUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigExemplar(t *testing.T) { for name, src := range genTestEncodingValuesExemplar() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exponentialhistogram.go b/pdata/internal/generated_wrapper_exponentialhistogram.go index 70798360f12..ef71058db7b 100644 --- a/pdata/internal/generated_wrapper_exponentialhistogram.go +++ b/pdata/internal/generated_wrapper_exponentialhistogram.go @@ -49,6 +49,10 @@ func DeleteOrigExponentialHistogram(orig *otlpmetrics.ExponentialHistogram, null } func CopyOrigExponentialHistogram(dest, src *otlpmetrics.ExponentialHistogram) { + // If copying to same object, just return. + if src == dest { + return + } dest.DataPoints = CopyOrigExponentialHistogramDataPointSlice(dest.DataPoints, src.DataPoints) dest.AggregationTemporality = src.AggregationTemporality } diff --git a/pdata/internal/generated_wrapper_exponentialhistogram_test.go b/pdata/internal/generated_wrapper_exponentialhistogram_test.go index 9d2edd0b2d0..e49152cd3b0 100644 --- a/pdata/internal/generated_wrapper_exponentialhistogram_test.go +++ b/pdata/internal/generated_wrapper_exponentialhistogram_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigExponentialHistogram(t *testing.T) { - src := NewOrigExponentialHistogram() - dest := NewOrigExponentialHistogram() - CopyOrigExponentialHistogram(dest, src) - assert.Equal(t, NewOrigExponentialHistogram(), dest) - *src = *GenTestOrigExponentialHistogram() - CopyOrigExponentialHistogram(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExponentialHistogram() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExponentialHistogram() + CopyOrigExponentialHistogram(dest, src) + assert.Equal(t, src, dest) + CopyOrigExponentialHistogram(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExponentialHistogramUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigExponentialHistogramUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigExponentialHistogram(t *testing.T) { for name, src := range genTestEncodingValuesExponentialHistogram() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigExponentialHistogramUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigExponentialHistogram(t *testing.T) { for name, src := range genTestEncodingValuesExponentialHistogram() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exponentialhistogramdatapoint.go b/pdata/internal/generated_wrapper_exponentialhistogramdatapoint.go index c85dfc4ab11..2e044d342f3 100644 --- a/pdata/internal/generated_wrapper_exponentialhistogramdatapoint.go +++ b/pdata/internal/generated_wrapper_exponentialhistogramdatapoint.go @@ -57,6 +57,10 @@ func DeleteOrigExponentialHistogramDataPoint(orig *otlpmetrics.ExponentialHistog } func CopyOrigExponentialHistogramDataPoint(dest, src *otlpmetrics.ExponentialHistogramDataPoint) { + // If copying to same object, just return. + if src == dest { + return + } dest.Attributes = CopyOrigKeyValueSlice(dest.Attributes, src.Attributes) dest.StartTimeUnixNano = src.StartTimeUnixNano dest.TimeUnixNano = src.TimeUnixNano diff --git a/pdata/internal/generated_wrapper_exponentialhistogramdatapoint_buckets.go b/pdata/internal/generated_wrapper_exponentialhistogramdatapoint_buckets.go index 3bb349985f0..a8cea8a5519 100644 --- a/pdata/internal/generated_wrapper_exponentialhistogramdatapoint_buckets.go +++ b/pdata/internal/generated_wrapper_exponentialhistogramdatapoint_buckets.go @@ -45,6 +45,10 @@ func DeleteOrigExponentialHistogramDataPoint_Buckets(orig *otlpmetrics.Exponenti } func CopyOrigExponentialHistogramDataPoint_Buckets(dest, src *otlpmetrics.ExponentialHistogramDataPoint_Buckets) { + // If copying to same object, just return. + if src == dest { + return + } dest.Offset = src.Offset dest.BucketCounts = CopyOrigUint64Slice(dest.BucketCounts, src.BucketCounts) } diff --git a/pdata/internal/generated_wrapper_exponentialhistogramdatapoint_buckets_test.go b/pdata/internal/generated_wrapper_exponentialhistogramdatapoint_buckets_test.go index 80d6028b009..1871f93f9da 100644 --- a/pdata/internal/generated_wrapper_exponentialhistogramdatapoint_buckets_test.go +++ b/pdata/internal/generated_wrapper_exponentialhistogramdatapoint_buckets_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigExponentialHistogramDataPoint_Buckets(t *testing.T) { - src := NewOrigExponentialHistogramDataPoint_Buckets() - dest := NewOrigExponentialHistogramDataPoint_Buckets() - CopyOrigExponentialHistogramDataPoint_Buckets(dest, src) - assert.Equal(t, NewOrigExponentialHistogramDataPoint_Buckets(), dest) - *src = *GenTestOrigExponentialHistogramDataPoint_Buckets() - CopyOrigExponentialHistogramDataPoint_Buckets(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExponentialHistogramDataPoint_Buckets() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExponentialHistogramDataPoint_Buckets() + CopyOrigExponentialHistogramDataPoint_Buckets(dest, src) + assert.Equal(t, src, dest) + CopyOrigExponentialHistogramDataPoint_Buckets(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExponentialHistogramDataPoint_BucketsUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigExponentialHistogramDataPoint_BucketsUnknown func TestMarshalAndUnmarshalJSONOrigExponentialHistogramDataPoint_Buckets(t *testing.T) { for name, src := range genTestEncodingValuesExponentialHistogramDataPoint_Buckets() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigExponentialHistogramDataPoint_BucketsUnknow func TestMarshalAndUnmarshalProtoOrigExponentialHistogramDataPoint_Buckets(t *testing.T) { for name, src := range genTestEncodingValuesExponentialHistogramDataPoint_Buckets() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exponentialhistogramdatapoint_test.go b/pdata/internal/generated_wrapper_exponentialhistogramdatapoint_test.go index 6d421e75b71..bee5523d1c8 100644 --- a/pdata/internal/generated_wrapper_exponentialhistogramdatapoint_test.go +++ b/pdata/internal/generated_wrapper_exponentialhistogramdatapoint_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigExponentialHistogramDataPoint(t *testing.T) { - src := NewOrigExponentialHistogramDataPoint() - dest := NewOrigExponentialHistogramDataPoint() - CopyOrigExponentialHistogramDataPoint(dest, src) - assert.Equal(t, NewOrigExponentialHistogramDataPoint(), dest) - *src = *GenTestOrigExponentialHistogramDataPoint() - CopyOrigExponentialHistogramDataPoint(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExponentialHistogramDataPoint() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExponentialHistogramDataPoint() + CopyOrigExponentialHistogramDataPoint(dest, src) + assert.Equal(t, src, dest) + CopyOrigExponentialHistogramDataPoint(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExponentialHistogramDataPointUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigExponentialHistogramDataPointUnknown(t *test func TestMarshalAndUnmarshalJSONOrigExponentialHistogramDataPoint(t *testing.T) { for name, src := range genTestEncodingValuesExponentialHistogramDataPoint() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigExponentialHistogramDataPointUnknown(t *tes func TestMarshalAndUnmarshalProtoOrigExponentialHistogramDataPoint(t *testing.T) { for name, src := range genTestEncodingValuesExponentialHistogramDataPoint() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exportlogspartialsuccess.go b/pdata/internal/generated_wrapper_exportlogspartialsuccess.go index 602c814728a..6ec50270b0e 100644 --- a/pdata/internal/generated_wrapper_exportlogspartialsuccess.go +++ b/pdata/internal/generated_wrapper_exportlogspartialsuccess.go @@ -45,6 +45,10 @@ func DeleteOrigExportLogsPartialSuccess(orig *otlpcollectorlogs.ExportLogsPartia } func CopyOrigExportLogsPartialSuccess(dest, src *otlpcollectorlogs.ExportLogsPartialSuccess) { + // If copying to same object, just return. + if src == dest { + return + } dest.RejectedLogRecords = src.RejectedLogRecords dest.ErrorMessage = src.ErrorMessage } diff --git a/pdata/internal/generated_wrapper_exportlogspartialsuccess_test.go b/pdata/internal/generated_wrapper_exportlogspartialsuccess_test.go index 94af17d33ae..667302dacdb 100644 --- a/pdata/internal/generated_wrapper_exportlogspartialsuccess_test.go +++ b/pdata/internal/generated_wrapper_exportlogspartialsuccess_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigExportLogsPartialSuccess(t *testing.T) { - src := NewOrigExportLogsPartialSuccess() - dest := NewOrigExportLogsPartialSuccess() - CopyOrigExportLogsPartialSuccess(dest, src) - assert.Equal(t, NewOrigExportLogsPartialSuccess(), dest) - *src = *GenTestOrigExportLogsPartialSuccess() - CopyOrigExportLogsPartialSuccess(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExportLogsPartialSuccess() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExportLogsPartialSuccess() + CopyOrigExportLogsPartialSuccess(dest, src) + assert.Equal(t, src, dest) + CopyOrigExportLogsPartialSuccess(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExportLogsPartialSuccessUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigExportLogsPartialSuccessUnknown(t *testing.T func TestMarshalAndUnmarshalJSONOrigExportLogsPartialSuccess(t *testing.T) { for name, src := range genTestEncodingValuesExportLogsPartialSuccess() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigExportLogsPartialSuccessUnknown(t *testing. func TestMarshalAndUnmarshalProtoOrigExportLogsPartialSuccess(t *testing.T) { for name, src := range genTestEncodingValuesExportLogsPartialSuccess() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exportlogsservicerequest.go b/pdata/internal/generated_wrapper_exportlogsservicerequest.go index 46b6602f7cf..0e3fff22779 100644 --- a/pdata/internal/generated_wrapper_exportlogsservicerequest.go +++ b/pdata/internal/generated_wrapper_exportlogsservicerequest.go @@ -66,6 +66,10 @@ func DeleteOrigExportLogsServiceRequest(orig *otlpcollectorlogs.ExportLogsServic } func CopyOrigExportLogsServiceRequest(dest, src *otlpcollectorlogs.ExportLogsServiceRequest) { + // If copying to same object, just return. + if src == dest { + return + } dest.ResourceLogs = CopyOrigResourceLogsSlice(dest.ResourceLogs, src.ResourceLogs) } diff --git a/pdata/internal/generated_wrapper_exportlogsservicerequest_test.go b/pdata/internal/generated_wrapper_exportlogsservicerequest_test.go index a70821519fa..af10c679f47 100644 --- a/pdata/internal/generated_wrapper_exportlogsservicerequest_test.go +++ b/pdata/internal/generated_wrapper_exportlogsservicerequest_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigExportLogsServiceRequest(t *testing.T) { - src := NewOrigExportLogsServiceRequest() - dest := NewOrigExportLogsServiceRequest() - CopyOrigExportLogsServiceRequest(dest, src) - assert.Equal(t, NewOrigExportLogsServiceRequest(), dest) - *src = *GenTestOrigExportLogsServiceRequest() - CopyOrigExportLogsServiceRequest(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExportLogsServiceRequest() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExportLogsServiceRequest() + CopyOrigExportLogsServiceRequest(dest, src) + assert.Equal(t, src, dest) + CopyOrigExportLogsServiceRequest(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExportLogsServiceRequestUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigExportLogsServiceRequestUnknown(t *testing.T func TestMarshalAndUnmarshalJSONOrigExportLogsServiceRequest(t *testing.T) { for name, src := range genTestEncodingValuesExportLogsServiceRequest() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigExportLogsServiceRequestUnknown(t *testing. func TestMarshalAndUnmarshalProtoOrigExportLogsServiceRequest(t *testing.T) { for name, src := range genTestEncodingValuesExportLogsServiceRequest() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exportlogsserviceresponse.go b/pdata/internal/generated_wrapper_exportlogsserviceresponse.go index f09c5088590..d9fa91d20b0 100644 --- a/pdata/internal/generated_wrapper_exportlogsserviceresponse.go +++ b/pdata/internal/generated_wrapper_exportlogsserviceresponse.go @@ -47,6 +47,10 @@ func DeleteOrigExportLogsServiceResponse(orig *otlpcollectorlogs.ExportLogsServi } func CopyOrigExportLogsServiceResponse(dest, src *otlpcollectorlogs.ExportLogsServiceResponse) { + // If copying to same object, just return. + if src == dest { + return + } CopyOrigExportLogsPartialSuccess(&dest.PartialSuccess, &src.PartialSuccess) } diff --git a/pdata/internal/generated_wrapper_exportlogsserviceresponse_test.go b/pdata/internal/generated_wrapper_exportlogsserviceresponse_test.go index ceaaa3c149c..f317266ed77 100644 --- a/pdata/internal/generated_wrapper_exportlogsserviceresponse_test.go +++ b/pdata/internal/generated_wrapper_exportlogsserviceresponse_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigExportLogsServiceResponse(t *testing.T) { - src := NewOrigExportLogsServiceResponse() - dest := NewOrigExportLogsServiceResponse() - CopyOrigExportLogsServiceResponse(dest, src) - assert.Equal(t, NewOrigExportLogsServiceResponse(), dest) - *src = *GenTestOrigExportLogsServiceResponse() - CopyOrigExportLogsServiceResponse(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExportLogsServiceResponse() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExportLogsServiceResponse() + CopyOrigExportLogsServiceResponse(dest, src) + assert.Equal(t, src, dest) + CopyOrigExportLogsServiceResponse(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExportLogsServiceResponseUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigExportLogsServiceResponseUnknown(t *testing. func TestMarshalAndUnmarshalJSONOrigExportLogsServiceResponse(t *testing.T) { for name, src := range genTestEncodingValuesExportLogsServiceResponse() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigExportLogsServiceResponseUnknown(t *testing func TestMarshalAndUnmarshalProtoOrigExportLogsServiceResponse(t *testing.T) { for name, src := range genTestEncodingValuesExportLogsServiceResponse() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exportmetricspartialsuccess.go b/pdata/internal/generated_wrapper_exportmetricspartialsuccess.go index c9ab5a696b0..0d92896fd86 100644 --- a/pdata/internal/generated_wrapper_exportmetricspartialsuccess.go +++ b/pdata/internal/generated_wrapper_exportmetricspartialsuccess.go @@ -45,6 +45,10 @@ func DeleteOrigExportMetricsPartialSuccess(orig *otlpcollectormetrics.ExportMetr } func CopyOrigExportMetricsPartialSuccess(dest, src *otlpcollectormetrics.ExportMetricsPartialSuccess) { + // If copying to same object, just return. + if src == dest { + return + } dest.RejectedDataPoints = src.RejectedDataPoints dest.ErrorMessage = src.ErrorMessage } diff --git a/pdata/internal/generated_wrapper_exportmetricspartialsuccess_test.go b/pdata/internal/generated_wrapper_exportmetricspartialsuccess_test.go index 207ab96c221..f546963e142 100644 --- a/pdata/internal/generated_wrapper_exportmetricspartialsuccess_test.go +++ b/pdata/internal/generated_wrapper_exportmetricspartialsuccess_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigExportMetricsPartialSuccess(t *testing.T) { - src := NewOrigExportMetricsPartialSuccess() - dest := NewOrigExportMetricsPartialSuccess() - CopyOrigExportMetricsPartialSuccess(dest, src) - assert.Equal(t, NewOrigExportMetricsPartialSuccess(), dest) - *src = *GenTestOrigExportMetricsPartialSuccess() - CopyOrigExportMetricsPartialSuccess(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExportMetricsPartialSuccess() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExportMetricsPartialSuccess() + CopyOrigExportMetricsPartialSuccess(dest, src) + assert.Equal(t, src, dest) + CopyOrigExportMetricsPartialSuccess(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExportMetricsPartialSuccessUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigExportMetricsPartialSuccessUnknown(t *testin func TestMarshalAndUnmarshalJSONOrigExportMetricsPartialSuccess(t *testing.T) { for name, src := range genTestEncodingValuesExportMetricsPartialSuccess() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigExportMetricsPartialSuccessUnknown(t *testi func TestMarshalAndUnmarshalProtoOrigExportMetricsPartialSuccess(t *testing.T) { for name, src := range genTestEncodingValuesExportMetricsPartialSuccess() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exportmetricsservicerequest.go b/pdata/internal/generated_wrapper_exportmetricsservicerequest.go index 717f2f2bf82..5929197ab3d 100644 --- a/pdata/internal/generated_wrapper_exportmetricsservicerequest.go +++ b/pdata/internal/generated_wrapper_exportmetricsservicerequest.go @@ -66,6 +66,10 @@ func DeleteOrigExportMetricsServiceRequest(orig *otlpcollectormetrics.ExportMetr } func CopyOrigExportMetricsServiceRequest(dest, src *otlpcollectormetrics.ExportMetricsServiceRequest) { + // If copying to same object, just return. + if src == dest { + return + } dest.ResourceMetrics = CopyOrigResourceMetricsSlice(dest.ResourceMetrics, src.ResourceMetrics) } diff --git a/pdata/internal/generated_wrapper_exportmetricsservicerequest_test.go b/pdata/internal/generated_wrapper_exportmetricsservicerequest_test.go index 0408c2295c3..c52076ddc28 100644 --- a/pdata/internal/generated_wrapper_exportmetricsservicerequest_test.go +++ b/pdata/internal/generated_wrapper_exportmetricsservicerequest_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigExportMetricsServiceRequest(t *testing.T) { - src := NewOrigExportMetricsServiceRequest() - dest := NewOrigExportMetricsServiceRequest() - CopyOrigExportMetricsServiceRequest(dest, src) - assert.Equal(t, NewOrigExportMetricsServiceRequest(), dest) - *src = *GenTestOrigExportMetricsServiceRequest() - CopyOrigExportMetricsServiceRequest(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExportMetricsServiceRequest() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExportMetricsServiceRequest() + CopyOrigExportMetricsServiceRequest(dest, src) + assert.Equal(t, src, dest) + CopyOrigExportMetricsServiceRequest(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExportMetricsServiceRequestUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigExportMetricsServiceRequestUnknown(t *testin func TestMarshalAndUnmarshalJSONOrigExportMetricsServiceRequest(t *testing.T) { for name, src := range genTestEncodingValuesExportMetricsServiceRequest() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigExportMetricsServiceRequestUnknown(t *testi func TestMarshalAndUnmarshalProtoOrigExportMetricsServiceRequest(t *testing.T) { for name, src := range genTestEncodingValuesExportMetricsServiceRequest() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exportmetricsserviceresponse.go b/pdata/internal/generated_wrapper_exportmetricsserviceresponse.go index ea77b85d01e..e07d81f330d 100644 --- a/pdata/internal/generated_wrapper_exportmetricsserviceresponse.go +++ b/pdata/internal/generated_wrapper_exportmetricsserviceresponse.go @@ -47,6 +47,10 @@ func DeleteOrigExportMetricsServiceResponse(orig *otlpcollectormetrics.ExportMet } func CopyOrigExportMetricsServiceResponse(dest, src *otlpcollectormetrics.ExportMetricsServiceResponse) { + // If copying to same object, just return. + if src == dest { + return + } CopyOrigExportMetricsPartialSuccess(&dest.PartialSuccess, &src.PartialSuccess) } diff --git a/pdata/internal/generated_wrapper_exportmetricsserviceresponse_test.go b/pdata/internal/generated_wrapper_exportmetricsserviceresponse_test.go index 63d79f92813..2ea20fc29d4 100644 --- a/pdata/internal/generated_wrapper_exportmetricsserviceresponse_test.go +++ b/pdata/internal/generated_wrapper_exportmetricsserviceresponse_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigExportMetricsServiceResponse(t *testing.T) { - src := NewOrigExportMetricsServiceResponse() - dest := NewOrigExportMetricsServiceResponse() - CopyOrigExportMetricsServiceResponse(dest, src) - assert.Equal(t, NewOrigExportMetricsServiceResponse(), dest) - *src = *GenTestOrigExportMetricsServiceResponse() - CopyOrigExportMetricsServiceResponse(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExportMetricsServiceResponse() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExportMetricsServiceResponse() + CopyOrigExportMetricsServiceResponse(dest, src) + assert.Equal(t, src, dest) + CopyOrigExportMetricsServiceResponse(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExportMetricsServiceResponseUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigExportMetricsServiceResponseUnknown(t *testi func TestMarshalAndUnmarshalJSONOrigExportMetricsServiceResponse(t *testing.T) { for name, src := range genTestEncodingValuesExportMetricsServiceResponse() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigExportMetricsServiceResponseUnknown(t *test func TestMarshalAndUnmarshalProtoOrigExportMetricsServiceResponse(t *testing.T) { for name, src := range genTestEncodingValuesExportMetricsServiceResponse() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exportprofilespartialsuccess.go b/pdata/internal/generated_wrapper_exportprofilespartialsuccess.go index 3db020942d7..9f6a6cf9312 100644 --- a/pdata/internal/generated_wrapper_exportprofilespartialsuccess.go +++ b/pdata/internal/generated_wrapper_exportprofilespartialsuccess.go @@ -45,6 +45,10 @@ func DeleteOrigExportProfilesPartialSuccess(orig *otlpcollectorprofiles.ExportPr } func CopyOrigExportProfilesPartialSuccess(dest, src *otlpcollectorprofiles.ExportProfilesPartialSuccess) { + // If copying to same object, just return. + if src == dest { + return + } dest.RejectedProfiles = src.RejectedProfiles dest.ErrorMessage = src.ErrorMessage } diff --git a/pdata/internal/generated_wrapper_exportprofilespartialsuccess_test.go b/pdata/internal/generated_wrapper_exportprofilespartialsuccess_test.go index c73c6dc395c..2c9258c753c 100644 --- a/pdata/internal/generated_wrapper_exportprofilespartialsuccess_test.go +++ b/pdata/internal/generated_wrapper_exportprofilespartialsuccess_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigExportProfilesPartialSuccess(t *testing.T) { - src := NewOrigExportProfilesPartialSuccess() - dest := NewOrigExportProfilesPartialSuccess() - CopyOrigExportProfilesPartialSuccess(dest, src) - assert.Equal(t, NewOrigExportProfilesPartialSuccess(), dest) - *src = *GenTestOrigExportProfilesPartialSuccess() - CopyOrigExportProfilesPartialSuccess(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExportProfilesPartialSuccess() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExportProfilesPartialSuccess() + CopyOrigExportProfilesPartialSuccess(dest, src) + assert.Equal(t, src, dest) + CopyOrigExportProfilesPartialSuccess(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExportProfilesPartialSuccessUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigExportProfilesPartialSuccessUnknown(t *testi func TestMarshalAndUnmarshalJSONOrigExportProfilesPartialSuccess(t *testing.T) { for name, src := range genTestEncodingValuesExportProfilesPartialSuccess() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigExportProfilesPartialSuccessUnknown(t *test func TestMarshalAndUnmarshalProtoOrigExportProfilesPartialSuccess(t *testing.T) { for name, src := range genTestEncodingValuesExportProfilesPartialSuccess() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exportprofilesservicerequest.go b/pdata/internal/generated_wrapper_exportprofilesservicerequest.go index 9ee3105099f..2ce0aac5374 100644 --- a/pdata/internal/generated_wrapper_exportprofilesservicerequest.go +++ b/pdata/internal/generated_wrapper_exportprofilesservicerequest.go @@ -67,6 +67,10 @@ func DeleteOrigExportProfilesServiceRequest(orig *otlpcollectorprofiles.ExportPr } func CopyOrigExportProfilesServiceRequest(dest, src *otlpcollectorprofiles.ExportProfilesServiceRequest) { + // If copying to same object, just return. + if src == dest { + return + } dest.ResourceProfiles = CopyOrigResourceProfilesSlice(dest.ResourceProfiles, src.ResourceProfiles) CopyOrigProfilesDictionary(&dest.Dictionary, &src.Dictionary) } diff --git a/pdata/internal/generated_wrapper_exportprofilesservicerequest_test.go b/pdata/internal/generated_wrapper_exportprofilesservicerequest_test.go index 8915df2abc0..60e52d78be6 100644 --- a/pdata/internal/generated_wrapper_exportprofilesservicerequest_test.go +++ b/pdata/internal/generated_wrapper_exportprofilesservicerequest_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigExportProfilesServiceRequest(t *testing.T) { - src := NewOrigExportProfilesServiceRequest() - dest := NewOrigExportProfilesServiceRequest() - CopyOrigExportProfilesServiceRequest(dest, src) - assert.Equal(t, NewOrigExportProfilesServiceRequest(), dest) - *src = *GenTestOrigExportProfilesServiceRequest() - CopyOrigExportProfilesServiceRequest(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExportProfilesServiceRequest() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExportProfilesServiceRequest() + CopyOrigExportProfilesServiceRequest(dest, src) + assert.Equal(t, src, dest) + CopyOrigExportProfilesServiceRequest(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExportProfilesServiceRequestUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigExportProfilesServiceRequestUnknown(t *testi func TestMarshalAndUnmarshalJSONOrigExportProfilesServiceRequest(t *testing.T) { for name, src := range genTestEncodingValuesExportProfilesServiceRequest() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigExportProfilesServiceRequestUnknown(t *test func TestMarshalAndUnmarshalProtoOrigExportProfilesServiceRequest(t *testing.T) { for name, src := range genTestEncodingValuesExportProfilesServiceRequest() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exportprofilesserviceresponse.go b/pdata/internal/generated_wrapper_exportprofilesserviceresponse.go index f38e4aa4adb..c0a4e1e0d81 100644 --- a/pdata/internal/generated_wrapper_exportprofilesserviceresponse.go +++ b/pdata/internal/generated_wrapper_exportprofilesserviceresponse.go @@ -47,6 +47,10 @@ func DeleteOrigExportProfilesServiceResponse(orig *otlpcollectorprofiles.ExportP } func CopyOrigExportProfilesServiceResponse(dest, src *otlpcollectorprofiles.ExportProfilesServiceResponse) { + // If copying to same object, just return. + if src == dest { + return + } CopyOrigExportProfilesPartialSuccess(&dest.PartialSuccess, &src.PartialSuccess) } diff --git a/pdata/internal/generated_wrapper_exportprofilesserviceresponse_test.go b/pdata/internal/generated_wrapper_exportprofilesserviceresponse_test.go index 95fef6aac64..dc9a03828a6 100644 --- a/pdata/internal/generated_wrapper_exportprofilesserviceresponse_test.go +++ b/pdata/internal/generated_wrapper_exportprofilesserviceresponse_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigExportProfilesServiceResponse(t *testing.T) { - src := NewOrigExportProfilesServiceResponse() - dest := NewOrigExportProfilesServiceResponse() - CopyOrigExportProfilesServiceResponse(dest, src) - assert.Equal(t, NewOrigExportProfilesServiceResponse(), dest) - *src = *GenTestOrigExportProfilesServiceResponse() - CopyOrigExportProfilesServiceResponse(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExportProfilesServiceResponse() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExportProfilesServiceResponse() + CopyOrigExportProfilesServiceResponse(dest, src) + assert.Equal(t, src, dest) + CopyOrigExportProfilesServiceResponse(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExportProfilesServiceResponseUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigExportProfilesServiceResponseUnknown(t *test func TestMarshalAndUnmarshalJSONOrigExportProfilesServiceResponse(t *testing.T) { for name, src := range genTestEncodingValuesExportProfilesServiceResponse() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigExportProfilesServiceResponseUnknown(t *tes func TestMarshalAndUnmarshalProtoOrigExportProfilesServiceResponse(t *testing.T) { for name, src := range genTestEncodingValuesExportProfilesServiceResponse() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exporttracepartialsuccess.go b/pdata/internal/generated_wrapper_exporttracepartialsuccess.go index bbd70b3a57c..acb1810625c 100644 --- a/pdata/internal/generated_wrapper_exporttracepartialsuccess.go +++ b/pdata/internal/generated_wrapper_exporttracepartialsuccess.go @@ -45,6 +45,10 @@ func DeleteOrigExportTracePartialSuccess(orig *otlpcollectortrace.ExportTracePar } func CopyOrigExportTracePartialSuccess(dest, src *otlpcollectortrace.ExportTracePartialSuccess) { + // If copying to same object, just return. + if src == dest { + return + } dest.RejectedSpans = src.RejectedSpans dest.ErrorMessage = src.ErrorMessage } diff --git a/pdata/internal/generated_wrapper_exporttracepartialsuccess_test.go b/pdata/internal/generated_wrapper_exporttracepartialsuccess_test.go index ffa91d3db78..5ebeb6fce96 100644 --- a/pdata/internal/generated_wrapper_exporttracepartialsuccess_test.go +++ b/pdata/internal/generated_wrapper_exporttracepartialsuccess_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigExportTracePartialSuccess(t *testing.T) { - src := NewOrigExportTracePartialSuccess() - dest := NewOrigExportTracePartialSuccess() - CopyOrigExportTracePartialSuccess(dest, src) - assert.Equal(t, NewOrigExportTracePartialSuccess(), dest) - *src = *GenTestOrigExportTracePartialSuccess() - CopyOrigExportTracePartialSuccess(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExportTracePartialSuccess() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExportTracePartialSuccess() + CopyOrigExportTracePartialSuccess(dest, src) + assert.Equal(t, src, dest) + CopyOrigExportTracePartialSuccess(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExportTracePartialSuccessUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigExportTracePartialSuccessUnknown(t *testing. func TestMarshalAndUnmarshalJSONOrigExportTracePartialSuccess(t *testing.T) { for name, src := range genTestEncodingValuesExportTracePartialSuccess() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigExportTracePartialSuccessUnknown(t *testing func TestMarshalAndUnmarshalProtoOrigExportTracePartialSuccess(t *testing.T) { for name, src := range genTestEncodingValuesExportTracePartialSuccess() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exporttraceservicerequest.go b/pdata/internal/generated_wrapper_exporttraceservicerequest.go index c200022670d..4b80b26957e 100644 --- a/pdata/internal/generated_wrapper_exporttraceservicerequest.go +++ b/pdata/internal/generated_wrapper_exporttraceservicerequest.go @@ -66,6 +66,10 @@ func DeleteOrigExportTraceServiceRequest(orig *otlpcollectortrace.ExportTraceSer } func CopyOrigExportTraceServiceRequest(dest, src *otlpcollectortrace.ExportTraceServiceRequest) { + // If copying to same object, just return. + if src == dest { + return + } dest.ResourceSpans = CopyOrigResourceSpansSlice(dest.ResourceSpans, src.ResourceSpans) } diff --git a/pdata/internal/generated_wrapper_exporttraceservicerequest_test.go b/pdata/internal/generated_wrapper_exporttraceservicerequest_test.go index e4fd3c97981..6a2618d4752 100644 --- a/pdata/internal/generated_wrapper_exporttraceservicerequest_test.go +++ b/pdata/internal/generated_wrapper_exporttraceservicerequest_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigExportTraceServiceRequest(t *testing.T) { - src := NewOrigExportTraceServiceRequest() - dest := NewOrigExportTraceServiceRequest() - CopyOrigExportTraceServiceRequest(dest, src) - assert.Equal(t, NewOrigExportTraceServiceRequest(), dest) - *src = *GenTestOrigExportTraceServiceRequest() - CopyOrigExportTraceServiceRequest(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExportTraceServiceRequest() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExportTraceServiceRequest() + CopyOrigExportTraceServiceRequest(dest, src) + assert.Equal(t, src, dest) + CopyOrigExportTraceServiceRequest(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExportTraceServiceRequestUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigExportTraceServiceRequestUnknown(t *testing. func TestMarshalAndUnmarshalJSONOrigExportTraceServiceRequest(t *testing.T) { for name, src := range genTestEncodingValuesExportTraceServiceRequest() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigExportTraceServiceRequestUnknown(t *testing func TestMarshalAndUnmarshalProtoOrigExportTraceServiceRequest(t *testing.T) { for name, src := range genTestEncodingValuesExportTraceServiceRequest() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_exporttraceserviceresponse.go b/pdata/internal/generated_wrapper_exporttraceserviceresponse.go index 549ed67572f..a034d4bac8b 100644 --- a/pdata/internal/generated_wrapper_exporttraceserviceresponse.go +++ b/pdata/internal/generated_wrapper_exporttraceserviceresponse.go @@ -47,6 +47,10 @@ func DeleteOrigExportTraceServiceResponse(orig *otlpcollectortrace.ExportTraceSe } func CopyOrigExportTraceServiceResponse(dest, src *otlpcollectortrace.ExportTraceServiceResponse) { + // If copying to same object, just return. + if src == dest { + return + } CopyOrigExportTracePartialSuccess(&dest.PartialSuccess, &src.PartialSuccess) } diff --git a/pdata/internal/generated_wrapper_exporttraceserviceresponse_test.go b/pdata/internal/generated_wrapper_exporttraceserviceresponse_test.go index 3741ae5405d..e92225a13d2 100644 --- a/pdata/internal/generated_wrapper_exporttraceserviceresponse_test.go +++ b/pdata/internal/generated_wrapper_exporttraceserviceresponse_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigExportTraceServiceResponse(t *testing.T) { - src := NewOrigExportTraceServiceResponse() - dest := NewOrigExportTraceServiceResponse() - CopyOrigExportTraceServiceResponse(dest, src) - assert.Equal(t, NewOrigExportTraceServiceResponse(), dest) - *src = *GenTestOrigExportTraceServiceResponse() - CopyOrigExportTraceServiceResponse(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesExportTraceServiceResponse() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigExportTraceServiceResponse() + CopyOrigExportTraceServiceResponse(dest, src) + assert.Equal(t, src, dest) + CopyOrigExportTraceServiceResponse(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigExportTraceServiceResponseUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigExportTraceServiceResponseUnknown(t *testing func TestMarshalAndUnmarshalJSONOrigExportTraceServiceResponse(t *testing.T) { for name, src := range genTestEncodingValuesExportTraceServiceResponse() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigExportTraceServiceResponseUnknown(t *testin func TestMarshalAndUnmarshalProtoOrigExportTraceServiceResponse(t *testing.T) { for name, src := range genTestEncodingValuesExportTraceServiceResponse() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_function.go b/pdata/internal/generated_wrapper_function.go index 20341c3ce44..d5aec366d9b 100644 --- a/pdata/internal/generated_wrapper_function.go +++ b/pdata/internal/generated_wrapper_function.go @@ -45,6 +45,10 @@ func DeleteOrigFunction(orig *otlpprofiles.Function, nullable bool) { } func CopyOrigFunction(dest, src *otlpprofiles.Function) { + // If copying to same object, just return. + if src == dest { + return + } dest.NameStrindex = src.NameStrindex dest.SystemNameStrindex = src.SystemNameStrindex dest.FilenameStrindex = src.FilenameStrindex diff --git a/pdata/internal/generated_wrapper_function_test.go b/pdata/internal/generated_wrapper_function_test.go index 5998f97714c..0ecd9f14112 100644 --- a/pdata/internal/generated_wrapper_function_test.go +++ b/pdata/internal/generated_wrapper_function_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigFunction(t *testing.T) { - src := NewOrigFunction() - dest := NewOrigFunction() - CopyOrigFunction(dest, src) - assert.Equal(t, NewOrigFunction(), dest) - *src = *GenTestOrigFunction() - CopyOrigFunction(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesFunction() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigFunction() + CopyOrigFunction(dest, src) + assert.Equal(t, src, dest) + CopyOrigFunction(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigFunctionUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigFunctionUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigFunction(t *testing.T) { for name, src := range genTestEncodingValuesFunction() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigFunctionUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigFunction(t *testing.T) { for name, src := range genTestEncodingValuesFunction() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_gauge.go b/pdata/internal/generated_wrapper_gauge.go index dccf195c21e..182ff55ec63 100644 --- a/pdata/internal/generated_wrapper_gauge.go +++ b/pdata/internal/generated_wrapper_gauge.go @@ -49,6 +49,10 @@ func DeleteOrigGauge(orig *otlpmetrics.Gauge, nullable bool) { } func CopyOrigGauge(dest, src *otlpmetrics.Gauge) { + // If copying to same object, just return. + if src == dest { + return + } dest.DataPoints = CopyOrigNumberDataPointSlice(dest.DataPoints, src.DataPoints) } diff --git a/pdata/internal/generated_wrapper_gauge_test.go b/pdata/internal/generated_wrapper_gauge_test.go index b5f42b8d26e..5b2d4c32024 100644 --- a/pdata/internal/generated_wrapper_gauge_test.go +++ b/pdata/internal/generated_wrapper_gauge_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigGauge(t *testing.T) { - src := NewOrigGauge() - dest := NewOrigGauge() - CopyOrigGauge(dest, src) - assert.Equal(t, NewOrigGauge(), dest) - *src = *GenTestOrigGauge() - CopyOrigGauge(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesGauge() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigGauge() + CopyOrigGauge(dest, src) + assert.Equal(t, src, dest) + CopyOrigGauge(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigGaugeUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigGaugeUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigGauge(t *testing.T) { for name, src := range genTestEncodingValuesGauge() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigGaugeUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigGauge(t *testing.T) { for name, src := range genTestEncodingValuesGauge() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_histogram.go b/pdata/internal/generated_wrapper_histogram.go index e5e33b88432..5b76ca5c873 100644 --- a/pdata/internal/generated_wrapper_histogram.go +++ b/pdata/internal/generated_wrapper_histogram.go @@ -49,6 +49,10 @@ func DeleteOrigHistogram(orig *otlpmetrics.Histogram, nullable bool) { } func CopyOrigHistogram(dest, src *otlpmetrics.Histogram) { + // If copying to same object, just return. + if src == dest { + return + } dest.DataPoints = CopyOrigHistogramDataPointSlice(dest.DataPoints, src.DataPoints) dest.AggregationTemporality = src.AggregationTemporality } diff --git a/pdata/internal/generated_wrapper_histogram_test.go b/pdata/internal/generated_wrapper_histogram_test.go index d98751d2c73..e1f06b66717 100644 --- a/pdata/internal/generated_wrapper_histogram_test.go +++ b/pdata/internal/generated_wrapper_histogram_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigHistogram(t *testing.T) { - src := NewOrigHistogram() - dest := NewOrigHistogram() - CopyOrigHistogram(dest, src) - assert.Equal(t, NewOrigHistogram(), dest) - *src = *GenTestOrigHistogram() - CopyOrigHistogram(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesHistogram() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigHistogram() + CopyOrigHistogram(dest, src) + assert.Equal(t, src, dest) + CopyOrigHistogram(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigHistogramUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigHistogramUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigHistogram(t *testing.T) { for name, src := range genTestEncodingValuesHistogram() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigHistogramUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigHistogram(t *testing.T) { for name, src := range genTestEncodingValuesHistogram() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_histogramdatapoint.go b/pdata/internal/generated_wrapper_histogramdatapoint.go index f0183a33ccb..9cfb3757e06 100644 --- a/pdata/internal/generated_wrapper_histogramdatapoint.go +++ b/pdata/internal/generated_wrapper_histogramdatapoint.go @@ -55,6 +55,10 @@ func DeleteOrigHistogramDataPoint(orig *otlpmetrics.HistogramDataPoint, nullable } func CopyOrigHistogramDataPoint(dest, src *otlpmetrics.HistogramDataPoint) { + // If copying to same object, just return. + if src == dest { + return + } dest.Attributes = CopyOrigKeyValueSlice(dest.Attributes, src.Attributes) dest.StartTimeUnixNano = src.StartTimeUnixNano dest.TimeUnixNano = src.TimeUnixNano diff --git a/pdata/internal/generated_wrapper_histogramdatapoint_test.go b/pdata/internal/generated_wrapper_histogramdatapoint_test.go index 281e4cbbd5c..b5f316d67f3 100644 --- a/pdata/internal/generated_wrapper_histogramdatapoint_test.go +++ b/pdata/internal/generated_wrapper_histogramdatapoint_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigHistogramDataPoint(t *testing.T) { - src := NewOrigHistogramDataPoint() - dest := NewOrigHistogramDataPoint() - CopyOrigHistogramDataPoint(dest, src) - assert.Equal(t, NewOrigHistogramDataPoint(), dest) - *src = *GenTestOrigHistogramDataPoint() - CopyOrigHistogramDataPoint(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesHistogramDataPoint() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigHistogramDataPoint() + CopyOrigHistogramDataPoint(dest, src) + assert.Equal(t, src, dest) + CopyOrigHistogramDataPoint(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigHistogramDataPointUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigHistogramDataPointUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigHistogramDataPoint(t *testing.T) { for name, src := range genTestEncodingValuesHistogramDataPoint() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigHistogramDataPointUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigHistogramDataPoint(t *testing.T) { for name, src := range genTestEncodingValuesHistogramDataPoint() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_instrumentationscope.go b/pdata/internal/generated_wrapper_instrumentationscope.go index 821f4a3c3d9..b0f606c5d55 100644 --- a/pdata/internal/generated_wrapper_instrumentationscope.go +++ b/pdata/internal/generated_wrapper_instrumentationscope.go @@ -66,6 +66,10 @@ func DeleteOrigInstrumentationScope(orig *otlpcommon.InstrumentationScope, nulla } func CopyOrigInstrumentationScope(dest, src *otlpcommon.InstrumentationScope) { + // If copying to same object, just return. + if src == dest { + return + } dest.Name = src.Name dest.Version = src.Version dest.Attributes = CopyOrigKeyValueSlice(dest.Attributes, src.Attributes) diff --git a/pdata/internal/generated_wrapper_instrumentationscope_test.go b/pdata/internal/generated_wrapper_instrumentationscope_test.go index ea326653418..0e130f7e7ff 100644 --- a/pdata/internal/generated_wrapper_instrumentationscope_test.go +++ b/pdata/internal/generated_wrapper_instrumentationscope_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigInstrumentationScope(t *testing.T) { - src := NewOrigInstrumentationScope() - dest := NewOrigInstrumentationScope() - CopyOrigInstrumentationScope(dest, src) - assert.Equal(t, NewOrigInstrumentationScope(), dest) - *src = *GenTestOrigInstrumentationScope() - CopyOrigInstrumentationScope(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesInstrumentationScope() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigInstrumentationScope() + CopyOrigInstrumentationScope(dest, src) + assert.Equal(t, src, dest) + CopyOrigInstrumentationScope(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigInstrumentationScopeUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigInstrumentationScopeUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigInstrumentationScope(t *testing.T) { for name, src := range genTestEncodingValuesInstrumentationScope() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigInstrumentationScopeUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigInstrumentationScope(t *testing.T) { for name, src := range genTestEncodingValuesInstrumentationScope() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_keyvalue.go b/pdata/internal/generated_wrapper_keyvalue.go index 7220dddc5e1..c82f76f6f25 100644 --- a/pdata/internal/generated_wrapper_keyvalue.go +++ b/pdata/internal/generated_wrapper_keyvalue.go @@ -47,6 +47,10 @@ func DeleteOrigKeyValue(orig *otlpcommon.KeyValue, nullable bool) { } func CopyOrigKeyValue(dest, src *otlpcommon.KeyValue) { + // If copying to same object, just return. + if src == dest { + return + } dest.Key = src.Key CopyOrigAnyValue(&dest.Value, &src.Value) } diff --git a/pdata/internal/generated_wrapper_keyvalue_test.go b/pdata/internal/generated_wrapper_keyvalue_test.go index 05eed2970c0..6e3c1dad9b4 100644 --- a/pdata/internal/generated_wrapper_keyvalue_test.go +++ b/pdata/internal/generated_wrapper_keyvalue_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigKeyValue(t *testing.T) { - src := NewOrigKeyValue() - dest := NewOrigKeyValue() - CopyOrigKeyValue(dest, src) - assert.Equal(t, NewOrigKeyValue(), dest) - *src = *GenTestOrigKeyValue() - CopyOrigKeyValue(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesKeyValue() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigKeyValue() + CopyOrigKeyValue(dest, src) + assert.Equal(t, src, dest) + CopyOrigKeyValue(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigKeyValueUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigKeyValueUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigKeyValue(t *testing.T) { for name, src := range genTestEncodingValuesKeyValue() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigKeyValueUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigKeyValue(t *testing.T) { for name, src := range genTestEncodingValuesKeyValue() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_line.go b/pdata/internal/generated_wrapper_line.go index f04d66cc9c9..d01097d20b0 100644 --- a/pdata/internal/generated_wrapper_line.go +++ b/pdata/internal/generated_wrapper_line.go @@ -45,6 +45,10 @@ func DeleteOrigLine(orig *otlpprofiles.Line, nullable bool) { } func CopyOrigLine(dest, src *otlpprofiles.Line) { + // If copying to same object, just return. + if src == dest { + return + } dest.FunctionIndex = src.FunctionIndex dest.Line = src.Line dest.Column = src.Column diff --git a/pdata/internal/generated_wrapper_line_test.go b/pdata/internal/generated_wrapper_line_test.go index de44dd90d02..1d0a2ba6e3b 100644 --- a/pdata/internal/generated_wrapper_line_test.go +++ b/pdata/internal/generated_wrapper_line_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigLine(t *testing.T) { - src := NewOrigLine() - dest := NewOrigLine() - CopyOrigLine(dest, src) - assert.Equal(t, NewOrigLine(), dest) - *src = *GenTestOrigLine() - CopyOrigLine(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesLine() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigLine() + CopyOrigLine(dest, src) + assert.Equal(t, src, dest) + CopyOrigLine(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigLineUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigLineUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigLine(t *testing.T) { for name, src := range genTestEncodingValuesLine() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigLineUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigLine(t *testing.T) { for name, src := range genTestEncodingValuesLine() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_link.go b/pdata/internal/generated_wrapper_link.go index c215ae4e633..2487a9fe38e 100644 --- a/pdata/internal/generated_wrapper_link.go +++ b/pdata/internal/generated_wrapper_link.go @@ -49,6 +49,10 @@ func DeleteOrigLink(orig *otlpprofiles.Link, nullable bool) { } func CopyOrigLink(dest, src *otlpprofiles.Link) { + // If copying to same object, just return. + if src == dest { + return + } dest.TraceId = src.TraceId dest.SpanId = src.SpanId } diff --git a/pdata/internal/generated_wrapper_link_test.go b/pdata/internal/generated_wrapper_link_test.go index 84aaa9a3f47..bb166eef182 100644 --- a/pdata/internal/generated_wrapper_link_test.go +++ b/pdata/internal/generated_wrapper_link_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigLink(t *testing.T) { - src := NewOrigLink() - dest := NewOrigLink() - CopyOrigLink(dest, src) - assert.Equal(t, NewOrigLink(), dest) - *src = *GenTestOrigLink() - CopyOrigLink(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesLink() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigLink() + CopyOrigLink(dest, src) + assert.Equal(t, src, dest) + CopyOrigLink(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigLinkUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigLinkUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigLink(t *testing.T) { for name, src := range genTestEncodingValuesLink() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigLinkUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigLink(t *testing.T) { for name, src := range genTestEncodingValuesLink() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_location.go b/pdata/internal/generated_wrapper_location.go index dd14a709756..4c8367bdc13 100644 --- a/pdata/internal/generated_wrapper_location.go +++ b/pdata/internal/generated_wrapper_location.go @@ -49,6 +49,10 @@ func DeleteOrigLocation(orig *otlpprofiles.Location, nullable bool) { } func CopyOrigLocation(dest, src *otlpprofiles.Location) { + // If copying to same object, just return. + if src == dest { + return + } if srcMappingIndex, ok := src.MappingIndex_.(*otlpprofiles.Location_MappingIndex); ok { destMappingIndex, ok := dest.MappingIndex_.(*otlpprofiles.Location_MappingIndex) if !ok { diff --git a/pdata/internal/generated_wrapper_location_test.go b/pdata/internal/generated_wrapper_location_test.go index 9b60d587908..3cf715c7396 100644 --- a/pdata/internal/generated_wrapper_location_test.go +++ b/pdata/internal/generated_wrapper_location_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigLocation(t *testing.T) { - src := NewOrigLocation() - dest := NewOrigLocation() - CopyOrigLocation(dest, src) - assert.Equal(t, NewOrigLocation(), dest) - *src = *GenTestOrigLocation() - CopyOrigLocation(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesLocation() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigLocation() + CopyOrigLocation(dest, src) + assert.Equal(t, src, dest) + CopyOrigLocation(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigLocationUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigLocationUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigLocation(t *testing.T) { for name, src := range genTestEncodingValuesLocation() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigLocationUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigLocation(t *testing.T) { for name, src := range genTestEncodingValuesLocation() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_logrecord.go b/pdata/internal/generated_wrapper_logrecord.go index b80638fc11c..f9c546bd5a3 100644 --- a/pdata/internal/generated_wrapper_logrecord.go +++ b/pdata/internal/generated_wrapper_logrecord.go @@ -55,6 +55,10 @@ func DeleteOrigLogRecord(orig *otlplogs.LogRecord, nullable bool) { } func CopyOrigLogRecord(dest, src *otlplogs.LogRecord) { + // If copying to same object, just return. + if src == dest { + return + } dest.TimeUnixNano = src.TimeUnixNano dest.ObservedTimeUnixNano = src.ObservedTimeUnixNano dest.SeverityNumber = src.SeverityNumber diff --git a/pdata/internal/generated_wrapper_logrecord_test.go b/pdata/internal/generated_wrapper_logrecord_test.go index 51b6603ccc6..08b7ff959d9 100644 --- a/pdata/internal/generated_wrapper_logrecord_test.go +++ b/pdata/internal/generated_wrapper_logrecord_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigLogRecord(t *testing.T) { - src := NewOrigLogRecord() - dest := NewOrigLogRecord() - CopyOrigLogRecord(dest, src) - assert.Equal(t, NewOrigLogRecord(), dest) - *src = *GenTestOrigLogRecord() - CopyOrigLogRecord(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesLogRecord() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigLogRecord() + CopyOrigLogRecord(dest, src) + assert.Equal(t, src, dest) + CopyOrigLogRecord(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigLogRecordUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigLogRecordUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigLogRecord(t *testing.T) { for name, src := range genTestEncodingValuesLogRecord() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigLogRecordUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigLogRecord(t *testing.T) { for name, src := range genTestEncodingValuesLogRecord() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_mapping.go b/pdata/internal/generated_wrapper_mapping.go index 43d70d30b3a..9f2c02203e4 100644 --- a/pdata/internal/generated_wrapper_mapping.go +++ b/pdata/internal/generated_wrapper_mapping.go @@ -45,6 +45,10 @@ func DeleteOrigMapping(orig *otlpprofiles.Mapping, nullable bool) { } func CopyOrigMapping(dest, src *otlpprofiles.Mapping) { + // If copying to same object, just return. + if src == dest { + return + } dest.MemoryStart = src.MemoryStart dest.MemoryLimit = src.MemoryLimit dest.FileOffset = src.FileOffset diff --git a/pdata/internal/generated_wrapper_mapping_test.go b/pdata/internal/generated_wrapper_mapping_test.go index a8398f6b3d5..1c07d8bf2de 100644 --- a/pdata/internal/generated_wrapper_mapping_test.go +++ b/pdata/internal/generated_wrapper_mapping_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigMapping(t *testing.T) { - src := NewOrigMapping() - dest := NewOrigMapping() - CopyOrigMapping(dest, src) - assert.Equal(t, NewOrigMapping(), dest) - *src = *GenTestOrigMapping() - CopyOrigMapping(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesMapping() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigMapping() + CopyOrigMapping(dest, src) + assert.Equal(t, src, dest) + CopyOrigMapping(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigMappingUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigMappingUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigMapping(t *testing.T) { for name, src := range genTestEncodingValuesMapping() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigMappingUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigMapping(t *testing.T) { for name, src := range genTestEncodingValuesMapping() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_metric.go b/pdata/internal/generated_wrapper_metric.go index 2bc5a352a2f..2b0ce36af46 100644 --- a/pdata/internal/generated_wrapper_metric.go +++ b/pdata/internal/generated_wrapper_metric.go @@ -63,6 +63,10 @@ func DeleteOrigMetric(orig *otlpmetrics.Metric, nullable bool) { } func CopyOrigMetric(dest, src *otlpmetrics.Metric) { + // If copying to same object, just return. + if src == dest { + return + } dest.Name = src.Name dest.Description = src.Description dest.Unit = src.Unit diff --git a/pdata/internal/generated_wrapper_metric_test.go b/pdata/internal/generated_wrapper_metric_test.go index ebfd0fd3d29..f164cf7e359 100644 --- a/pdata/internal/generated_wrapper_metric_test.go +++ b/pdata/internal/generated_wrapper_metric_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigMetric(t *testing.T) { - src := NewOrigMetric() - dest := NewOrigMetric() - CopyOrigMetric(dest, src) - assert.Equal(t, NewOrigMetric(), dest) - *src = *GenTestOrigMetric() - CopyOrigMetric(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesMetric() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigMetric() + CopyOrigMetric(dest, src) + assert.Equal(t, src, dest) + CopyOrigMetric(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigMetricUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigMetricUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigMetric(t *testing.T) { for name, src := range genTestEncodingValuesMetric() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigMetricUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigMetric(t *testing.T) { for name, src := range genTestEncodingValuesMetric() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_numberdatapoint.go b/pdata/internal/generated_wrapper_numberdatapoint.go index f9e94cae69b..a1d2ef9c3e3 100644 --- a/pdata/internal/generated_wrapper_numberdatapoint.go +++ b/pdata/internal/generated_wrapper_numberdatapoint.go @@ -55,6 +55,10 @@ func DeleteOrigNumberDataPoint(orig *otlpmetrics.NumberDataPoint, nullable bool) } func CopyOrigNumberDataPoint(dest, src *otlpmetrics.NumberDataPoint) { + // If copying to same object, just return. + if src == dest { + return + } dest.Attributes = CopyOrigKeyValueSlice(dest.Attributes, src.Attributes) dest.StartTimeUnixNano = src.StartTimeUnixNano dest.TimeUnixNano = src.TimeUnixNano diff --git a/pdata/internal/generated_wrapper_numberdatapoint_test.go b/pdata/internal/generated_wrapper_numberdatapoint_test.go index 51e491853f4..3bd664630bb 100644 --- a/pdata/internal/generated_wrapper_numberdatapoint_test.go +++ b/pdata/internal/generated_wrapper_numberdatapoint_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigNumberDataPoint(t *testing.T) { - src := NewOrigNumberDataPoint() - dest := NewOrigNumberDataPoint() - CopyOrigNumberDataPoint(dest, src) - assert.Equal(t, NewOrigNumberDataPoint(), dest) - *src = *GenTestOrigNumberDataPoint() - CopyOrigNumberDataPoint(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesNumberDataPoint() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigNumberDataPoint() + CopyOrigNumberDataPoint(dest, src) + assert.Equal(t, src, dest) + CopyOrigNumberDataPoint(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigNumberDataPointUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigNumberDataPointUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigNumberDataPoint(t *testing.T) { for name, src := range genTestEncodingValuesNumberDataPoint() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigNumberDataPointUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigNumberDataPoint(t *testing.T) { for name, src := range genTestEncodingValuesNumberDataPoint() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_profile.go b/pdata/internal/generated_wrapper_profile.go index 4fde4b6083b..22a2123f84d 100644 --- a/pdata/internal/generated_wrapper_profile.go +++ b/pdata/internal/generated_wrapper_profile.go @@ -55,6 +55,10 @@ func DeleteOrigProfile(orig *otlpprofiles.Profile, nullable bool) { } func CopyOrigProfile(dest, src *otlpprofiles.Profile) { + // If copying to same object, just return. + if src == dest { + return + } dest.SampleType = CopyOrigValueTypeSlice(dest.SampleType, src.SampleType) dest.Sample = CopyOrigSampleSlice(dest.Sample, src.Sample) dest.LocationIndices = CopyOrigInt32Slice(dest.LocationIndices, src.LocationIndices) diff --git a/pdata/internal/generated_wrapper_profile_test.go b/pdata/internal/generated_wrapper_profile_test.go index d77bce6017d..c1007cc05c2 100644 --- a/pdata/internal/generated_wrapper_profile_test.go +++ b/pdata/internal/generated_wrapper_profile_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigProfile(t *testing.T) { - src := NewOrigProfile() - dest := NewOrigProfile() - CopyOrigProfile(dest, src) - assert.Equal(t, NewOrigProfile(), dest) - *src = *GenTestOrigProfile() - CopyOrigProfile(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesProfile() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigProfile() + CopyOrigProfile(dest, src) + assert.Equal(t, src, dest) + CopyOrigProfile(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigProfileUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigProfileUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigProfile(t *testing.T) { for name, src := range genTestEncodingValuesProfile() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigProfileUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigProfile(t *testing.T) { for name, src := range genTestEncodingValuesProfile() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_profilesdictionary.go b/pdata/internal/generated_wrapper_profilesdictionary.go index 9a7f3fab0c0..b98dfb905e0 100644 --- a/pdata/internal/generated_wrapper_profilesdictionary.go +++ b/pdata/internal/generated_wrapper_profilesdictionary.go @@ -65,6 +65,10 @@ func DeleteOrigProfilesDictionary(orig *otlpprofiles.ProfilesDictionary, nullabl } func CopyOrigProfilesDictionary(dest, src *otlpprofiles.ProfilesDictionary) { + // If copying to same object, just return. + if src == dest { + return + } dest.MappingTable = CopyOrigMappingSlice(dest.MappingTable, src.MappingTable) dest.LocationTable = CopyOrigLocationSlice(dest.LocationTable, src.LocationTable) dest.FunctionTable = CopyOrigFunctionSlice(dest.FunctionTable, src.FunctionTable) diff --git a/pdata/internal/generated_wrapper_profilesdictionary_test.go b/pdata/internal/generated_wrapper_profilesdictionary_test.go index 89f9fdd4f92..fdb47a9d6c2 100644 --- a/pdata/internal/generated_wrapper_profilesdictionary_test.go +++ b/pdata/internal/generated_wrapper_profilesdictionary_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigProfilesDictionary(t *testing.T) { - src := NewOrigProfilesDictionary() - dest := NewOrigProfilesDictionary() - CopyOrigProfilesDictionary(dest, src) - assert.Equal(t, NewOrigProfilesDictionary(), dest) - *src = *GenTestOrigProfilesDictionary() - CopyOrigProfilesDictionary(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesProfilesDictionary() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigProfilesDictionary() + CopyOrigProfilesDictionary(dest, src) + assert.Equal(t, src, dest) + CopyOrigProfilesDictionary(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigProfilesDictionaryUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigProfilesDictionaryUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigProfilesDictionary(t *testing.T) { for name, src := range genTestEncodingValuesProfilesDictionary() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigProfilesDictionaryUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigProfilesDictionary(t *testing.T) { for name, src := range genTestEncodingValuesProfilesDictionary() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_resource.go b/pdata/internal/generated_wrapper_resource.go index b98e7937917..9db21b52fa1 100644 --- a/pdata/internal/generated_wrapper_resource.go +++ b/pdata/internal/generated_wrapper_resource.go @@ -70,6 +70,10 @@ func DeleteOrigResource(orig *otlpresource.Resource, nullable bool) { } func CopyOrigResource(dest, src *otlpresource.Resource) { + // If copying to same object, just return. + if src == dest { + return + } dest.Attributes = CopyOrigKeyValueSlice(dest.Attributes, src.Attributes) dest.DroppedAttributesCount = src.DroppedAttributesCount dest.EntityRefs = CopyOrigEntityRefSlice(dest.EntityRefs, src.EntityRefs) diff --git a/pdata/internal/generated_wrapper_resource_test.go b/pdata/internal/generated_wrapper_resource_test.go index dec650a239d..ffb8a9b457d 100644 --- a/pdata/internal/generated_wrapper_resource_test.go +++ b/pdata/internal/generated_wrapper_resource_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigResource(t *testing.T) { - src := NewOrigResource() - dest := NewOrigResource() - CopyOrigResource(dest, src) - assert.Equal(t, NewOrigResource(), dest) - *src = *GenTestOrigResource() - CopyOrigResource(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesResource() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigResource() + CopyOrigResource(dest, src) + assert.Equal(t, src, dest) + CopyOrigResource(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigResourceUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigResourceUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigResource(t *testing.T) { for name, src := range genTestEncodingValuesResource() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigResourceUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigResource(t *testing.T) { for name, src := range genTestEncodingValuesResource() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_resourcelogs.go b/pdata/internal/generated_wrapper_resourcelogs.go index e740d13ae2e..924251f1500 100644 --- a/pdata/internal/generated_wrapper_resourcelogs.go +++ b/pdata/internal/generated_wrapper_resourcelogs.go @@ -50,6 +50,10 @@ func DeleteOrigResourceLogs(orig *otlplogs.ResourceLogs, nullable bool) { } func CopyOrigResourceLogs(dest, src *otlplogs.ResourceLogs) { + // If copying to same object, just return. + if src == dest { + return + } CopyOrigResource(&dest.Resource, &src.Resource) dest.ScopeLogs = CopyOrigScopeLogsSlice(dest.ScopeLogs, src.ScopeLogs) dest.SchemaUrl = src.SchemaUrl diff --git a/pdata/internal/generated_wrapper_resourcelogs_test.go b/pdata/internal/generated_wrapper_resourcelogs_test.go index 1d72f6dfa50..559a3155493 100644 --- a/pdata/internal/generated_wrapper_resourcelogs_test.go +++ b/pdata/internal/generated_wrapper_resourcelogs_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigResourceLogs(t *testing.T) { - src := NewOrigResourceLogs() - dest := NewOrigResourceLogs() - CopyOrigResourceLogs(dest, src) - assert.Equal(t, NewOrigResourceLogs(), dest) - *src = *GenTestOrigResourceLogs() - CopyOrigResourceLogs(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesResourceLogs() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigResourceLogs() + CopyOrigResourceLogs(dest, src) + assert.Equal(t, src, dest) + CopyOrigResourceLogs(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigResourceLogsUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigResourceLogsUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigResourceLogs(t *testing.T) { for name, src := range genTestEncodingValuesResourceLogs() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigResourceLogsUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigResourceLogs(t *testing.T) { for name, src := range genTestEncodingValuesResourceLogs() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_resourcemetrics.go b/pdata/internal/generated_wrapper_resourcemetrics.go index 2f4fe041463..1509cdc3b3b 100644 --- a/pdata/internal/generated_wrapper_resourcemetrics.go +++ b/pdata/internal/generated_wrapper_resourcemetrics.go @@ -50,6 +50,10 @@ func DeleteOrigResourceMetrics(orig *otlpmetrics.ResourceMetrics, nullable bool) } func CopyOrigResourceMetrics(dest, src *otlpmetrics.ResourceMetrics) { + // If copying to same object, just return. + if src == dest { + return + } CopyOrigResource(&dest.Resource, &src.Resource) dest.ScopeMetrics = CopyOrigScopeMetricsSlice(dest.ScopeMetrics, src.ScopeMetrics) dest.SchemaUrl = src.SchemaUrl diff --git a/pdata/internal/generated_wrapper_resourcemetrics_test.go b/pdata/internal/generated_wrapper_resourcemetrics_test.go index 802dbad23a9..2f54ef7d176 100644 --- a/pdata/internal/generated_wrapper_resourcemetrics_test.go +++ b/pdata/internal/generated_wrapper_resourcemetrics_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigResourceMetrics(t *testing.T) { - src := NewOrigResourceMetrics() - dest := NewOrigResourceMetrics() - CopyOrigResourceMetrics(dest, src) - assert.Equal(t, NewOrigResourceMetrics(), dest) - *src = *GenTestOrigResourceMetrics() - CopyOrigResourceMetrics(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesResourceMetrics() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigResourceMetrics() + CopyOrigResourceMetrics(dest, src) + assert.Equal(t, src, dest) + CopyOrigResourceMetrics(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigResourceMetricsUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigResourceMetricsUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigResourceMetrics(t *testing.T) { for name, src := range genTestEncodingValuesResourceMetrics() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigResourceMetricsUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigResourceMetrics(t *testing.T) { for name, src := range genTestEncodingValuesResourceMetrics() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_resourceprofiles.go b/pdata/internal/generated_wrapper_resourceprofiles.go index 8c979066773..10bc9ecc443 100644 --- a/pdata/internal/generated_wrapper_resourceprofiles.go +++ b/pdata/internal/generated_wrapper_resourceprofiles.go @@ -50,6 +50,10 @@ func DeleteOrigResourceProfiles(orig *otlpprofiles.ResourceProfiles, nullable bo } func CopyOrigResourceProfiles(dest, src *otlpprofiles.ResourceProfiles) { + // If copying to same object, just return. + if src == dest { + return + } CopyOrigResource(&dest.Resource, &src.Resource) dest.ScopeProfiles = CopyOrigScopeProfilesSlice(dest.ScopeProfiles, src.ScopeProfiles) dest.SchemaUrl = src.SchemaUrl diff --git a/pdata/internal/generated_wrapper_resourceprofiles_test.go b/pdata/internal/generated_wrapper_resourceprofiles_test.go index df88884c458..726e7a68e5f 100644 --- a/pdata/internal/generated_wrapper_resourceprofiles_test.go +++ b/pdata/internal/generated_wrapper_resourceprofiles_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigResourceProfiles(t *testing.T) { - src := NewOrigResourceProfiles() - dest := NewOrigResourceProfiles() - CopyOrigResourceProfiles(dest, src) - assert.Equal(t, NewOrigResourceProfiles(), dest) - *src = *GenTestOrigResourceProfiles() - CopyOrigResourceProfiles(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesResourceProfiles() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigResourceProfiles() + CopyOrigResourceProfiles(dest, src) + assert.Equal(t, src, dest) + CopyOrigResourceProfiles(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigResourceProfilesUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigResourceProfilesUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigResourceProfiles(t *testing.T) { for name, src := range genTestEncodingValuesResourceProfiles() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigResourceProfilesUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigResourceProfiles(t *testing.T) { for name, src := range genTestEncodingValuesResourceProfiles() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_resourcespans.go b/pdata/internal/generated_wrapper_resourcespans.go index 8c8fc63b4ca..ac9322f6f5c 100644 --- a/pdata/internal/generated_wrapper_resourcespans.go +++ b/pdata/internal/generated_wrapper_resourcespans.go @@ -50,6 +50,10 @@ func DeleteOrigResourceSpans(orig *otlptrace.ResourceSpans, nullable bool) { } func CopyOrigResourceSpans(dest, src *otlptrace.ResourceSpans) { + // If copying to same object, just return. + if src == dest { + return + } CopyOrigResource(&dest.Resource, &src.Resource) dest.ScopeSpans = CopyOrigScopeSpansSlice(dest.ScopeSpans, src.ScopeSpans) dest.SchemaUrl = src.SchemaUrl diff --git a/pdata/internal/generated_wrapper_resourcespans_test.go b/pdata/internal/generated_wrapper_resourcespans_test.go index bd809e9907b..0b9ff05ff2d 100644 --- a/pdata/internal/generated_wrapper_resourcespans_test.go +++ b/pdata/internal/generated_wrapper_resourcespans_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigResourceSpans(t *testing.T) { - src := NewOrigResourceSpans() - dest := NewOrigResourceSpans() - CopyOrigResourceSpans(dest, src) - assert.Equal(t, NewOrigResourceSpans(), dest) - *src = *GenTestOrigResourceSpans() - CopyOrigResourceSpans(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesResourceSpans() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigResourceSpans() + CopyOrigResourceSpans(dest, src) + assert.Equal(t, src, dest) + CopyOrigResourceSpans(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigResourceSpansUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigResourceSpansUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigResourceSpans(t *testing.T) { for name, src := range genTestEncodingValuesResourceSpans() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigResourceSpansUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigResourceSpans(t *testing.T) { for name, src := range genTestEncodingValuesResourceSpans() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_sample.go b/pdata/internal/generated_wrapper_sample.go index 3e3aeac96a5..198b8335576 100644 --- a/pdata/internal/generated_wrapper_sample.go +++ b/pdata/internal/generated_wrapper_sample.go @@ -45,6 +45,10 @@ func DeleteOrigSample(orig *otlpprofiles.Sample, nullable bool) { } func CopyOrigSample(dest, src *otlpprofiles.Sample) { + // If copying to same object, just return. + if src == dest { + return + } dest.LocationsStartIndex = src.LocationsStartIndex dest.LocationsLength = src.LocationsLength dest.Value = CopyOrigInt64Slice(dest.Value, src.Value) diff --git a/pdata/internal/generated_wrapper_sample_test.go b/pdata/internal/generated_wrapper_sample_test.go index 38e734ec296..ce35db8e4b0 100644 --- a/pdata/internal/generated_wrapper_sample_test.go +++ b/pdata/internal/generated_wrapper_sample_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigSample(t *testing.T) { - src := NewOrigSample() - dest := NewOrigSample() - CopyOrigSample(dest, src) - assert.Equal(t, NewOrigSample(), dest) - *src = *GenTestOrigSample() - CopyOrigSample(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesSample() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigSample() + CopyOrigSample(dest, src) + assert.Equal(t, src, dest) + CopyOrigSample(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigSampleUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigSampleUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigSample(t *testing.T) { for name, src := range genTestEncodingValuesSample() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigSampleUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigSample(t *testing.T) { for name, src := range genTestEncodingValuesSample() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_scopelogs.go b/pdata/internal/generated_wrapper_scopelogs.go index 6374e50d4c9..1b2b763a1a5 100644 --- a/pdata/internal/generated_wrapper_scopelogs.go +++ b/pdata/internal/generated_wrapper_scopelogs.go @@ -50,6 +50,10 @@ func DeleteOrigScopeLogs(orig *otlplogs.ScopeLogs, nullable bool) { } func CopyOrigScopeLogs(dest, src *otlplogs.ScopeLogs) { + // If copying to same object, just return. + if src == dest { + return + } CopyOrigInstrumentationScope(&dest.Scope, &src.Scope) dest.LogRecords = CopyOrigLogRecordSlice(dest.LogRecords, src.LogRecords) dest.SchemaUrl = src.SchemaUrl diff --git a/pdata/internal/generated_wrapper_scopelogs_test.go b/pdata/internal/generated_wrapper_scopelogs_test.go index 203c798afef..be51af8d4b5 100644 --- a/pdata/internal/generated_wrapper_scopelogs_test.go +++ b/pdata/internal/generated_wrapper_scopelogs_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigScopeLogs(t *testing.T) { - src := NewOrigScopeLogs() - dest := NewOrigScopeLogs() - CopyOrigScopeLogs(dest, src) - assert.Equal(t, NewOrigScopeLogs(), dest) - *src = *GenTestOrigScopeLogs() - CopyOrigScopeLogs(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesScopeLogs() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigScopeLogs() + CopyOrigScopeLogs(dest, src) + assert.Equal(t, src, dest) + CopyOrigScopeLogs(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigScopeLogsUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigScopeLogsUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigScopeLogs(t *testing.T) { for name, src := range genTestEncodingValuesScopeLogs() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigScopeLogsUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigScopeLogs(t *testing.T) { for name, src := range genTestEncodingValuesScopeLogs() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_scopemetrics.go b/pdata/internal/generated_wrapper_scopemetrics.go index 354f47d6898..4604baa5d71 100644 --- a/pdata/internal/generated_wrapper_scopemetrics.go +++ b/pdata/internal/generated_wrapper_scopemetrics.go @@ -50,6 +50,10 @@ func DeleteOrigScopeMetrics(orig *otlpmetrics.ScopeMetrics, nullable bool) { } func CopyOrigScopeMetrics(dest, src *otlpmetrics.ScopeMetrics) { + // If copying to same object, just return. + if src == dest { + return + } CopyOrigInstrumentationScope(&dest.Scope, &src.Scope) dest.Metrics = CopyOrigMetricSlice(dest.Metrics, src.Metrics) dest.SchemaUrl = src.SchemaUrl diff --git a/pdata/internal/generated_wrapper_scopemetrics_test.go b/pdata/internal/generated_wrapper_scopemetrics_test.go index 78a576ce537..67d9a65c2a9 100644 --- a/pdata/internal/generated_wrapper_scopemetrics_test.go +++ b/pdata/internal/generated_wrapper_scopemetrics_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigScopeMetrics(t *testing.T) { - src := NewOrigScopeMetrics() - dest := NewOrigScopeMetrics() - CopyOrigScopeMetrics(dest, src) - assert.Equal(t, NewOrigScopeMetrics(), dest) - *src = *GenTestOrigScopeMetrics() - CopyOrigScopeMetrics(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesScopeMetrics() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigScopeMetrics() + CopyOrigScopeMetrics(dest, src) + assert.Equal(t, src, dest) + CopyOrigScopeMetrics(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigScopeMetricsUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigScopeMetricsUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigScopeMetrics(t *testing.T) { for name, src := range genTestEncodingValuesScopeMetrics() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigScopeMetricsUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigScopeMetrics(t *testing.T) { for name, src := range genTestEncodingValuesScopeMetrics() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_scopeprofiles.go b/pdata/internal/generated_wrapper_scopeprofiles.go index 5e811cf45bc..46061899771 100644 --- a/pdata/internal/generated_wrapper_scopeprofiles.go +++ b/pdata/internal/generated_wrapper_scopeprofiles.go @@ -50,6 +50,10 @@ func DeleteOrigScopeProfiles(orig *otlpprofiles.ScopeProfiles, nullable bool) { } func CopyOrigScopeProfiles(dest, src *otlpprofiles.ScopeProfiles) { + // If copying to same object, just return. + if src == dest { + return + } CopyOrigInstrumentationScope(&dest.Scope, &src.Scope) dest.Profiles = CopyOrigProfileSlice(dest.Profiles, src.Profiles) dest.SchemaUrl = src.SchemaUrl diff --git a/pdata/internal/generated_wrapper_scopeprofiles_test.go b/pdata/internal/generated_wrapper_scopeprofiles_test.go index 7f5feb92c12..b8052cba29a 100644 --- a/pdata/internal/generated_wrapper_scopeprofiles_test.go +++ b/pdata/internal/generated_wrapper_scopeprofiles_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigScopeProfiles(t *testing.T) { - src := NewOrigScopeProfiles() - dest := NewOrigScopeProfiles() - CopyOrigScopeProfiles(dest, src) - assert.Equal(t, NewOrigScopeProfiles(), dest) - *src = *GenTestOrigScopeProfiles() - CopyOrigScopeProfiles(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesScopeProfiles() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigScopeProfiles() + CopyOrigScopeProfiles(dest, src) + assert.Equal(t, src, dest) + CopyOrigScopeProfiles(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigScopeProfilesUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigScopeProfilesUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigScopeProfiles(t *testing.T) { for name, src := range genTestEncodingValuesScopeProfiles() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigScopeProfilesUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigScopeProfiles(t *testing.T) { for name, src := range genTestEncodingValuesScopeProfiles() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_scopespans.go b/pdata/internal/generated_wrapper_scopespans.go index 980403dcfdb..8277c5a8e12 100644 --- a/pdata/internal/generated_wrapper_scopespans.go +++ b/pdata/internal/generated_wrapper_scopespans.go @@ -50,6 +50,10 @@ func DeleteOrigScopeSpans(orig *otlptrace.ScopeSpans, nullable bool) { } func CopyOrigScopeSpans(dest, src *otlptrace.ScopeSpans) { + // If copying to same object, just return. + if src == dest { + return + } CopyOrigInstrumentationScope(&dest.Scope, &src.Scope) dest.Spans = CopyOrigSpanSlice(dest.Spans, src.Spans) dest.SchemaUrl = src.SchemaUrl diff --git a/pdata/internal/generated_wrapper_scopespans_test.go b/pdata/internal/generated_wrapper_scopespans_test.go index 6380becbc72..9ff173cd988 100644 --- a/pdata/internal/generated_wrapper_scopespans_test.go +++ b/pdata/internal/generated_wrapper_scopespans_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigScopeSpans(t *testing.T) { - src := NewOrigScopeSpans() - dest := NewOrigScopeSpans() - CopyOrigScopeSpans(dest, src) - assert.Equal(t, NewOrigScopeSpans(), dest) - *src = *GenTestOrigScopeSpans() - CopyOrigScopeSpans(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesScopeSpans() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigScopeSpans() + CopyOrigScopeSpans(dest, src) + assert.Equal(t, src, dest) + CopyOrigScopeSpans(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigScopeSpansUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigScopeSpansUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigScopeSpans(t *testing.T) { for name, src := range genTestEncodingValuesScopeSpans() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigScopeSpansUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigScopeSpans(t *testing.T) { for name, src := range genTestEncodingValuesScopeSpans() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_span.go b/pdata/internal/generated_wrapper_span.go index 42168af9730..5bbcbe3f188 100644 --- a/pdata/internal/generated_wrapper_span.go +++ b/pdata/internal/generated_wrapper_span.go @@ -62,6 +62,10 @@ func DeleteOrigSpan(orig *otlptrace.Span, nullable bool) { } func CopyOrigSpan(dest, src *otlptrace.Span) { + // If copying to same object, just return. + if src == dest { + return + } dest.TraceId = src.TraceId dest.SpanId = src.SpanId CopyOrigTraceState(&dest.TraceState, &src.TraceState) diff --git a/pdata/internal/generated_wrapper_span_event.go b/pdata/internal/generated_wrapper_span_event.go index d27d710c57a..0e44001681f 100644 --- a/pdata/internal/generated_wrapper_span_event.go +++ b/pdata/internal/generated_wrapper_span_event.go @@ -51,6 +51,10 @@ func DeleteOrigSpan_Event(orig *otlptrace.Span_Event, nullable bool) { } func CopyOrigSpan_Event(dest, src *otlptrace.Span_Event) { + // If copying to same object, just return. + if src == dest { + return + } dest.TimeUnixNano = src.TimeUnixNano dest.Name = src.Name dest.Attributes = CopyOrigKeyValueSlice(dest.Attributes, src.Attributes) diff --git a/pdata/internal/generated_wrapper_span_event_test.go b/pdata/internal/generated_wrapper_span_event_test.go index a45d613f4cd..601bb372244 100644 --- a/pdata/internal/generated_wrapper_span_event_test.go +++ b/pdata/internal/generated_wrapper_span_event_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigSpan_Event(t *testing.T) { - src := NewOrigSpan_Event() - dest := NewOrigSpan_Event() - CopyOrigSpan_Event(dest, src) - assert.Equal(t, NewOrigSpan_Event(), dest) - *src = *GenTestOrigSpan_Event() - CopyOrigSpan_Event(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesSpan_Event() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigSpan_Event() + CopyOrigSpan_Event(dest, src) + assert.Equal(t, src, dest) + CopyOrigSpan_Event(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigSpan_EventUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigSpan_EventUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigSpan_Event(t *testing.T) { for name, src := range genTestEncodingValuesSpan_Event() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigSpan_EventUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigSpan_Event(t *testing.T) { for name, src := range genTestEncodingValuesSpan_Event() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_span_link.go b/pdata/internal/generated_wrapper_span_link.go index 71dd1d01242..32201980acb 100644 --- a/pdata/internal/generated_wrapper_span_link.go +++ b/pdata/internal/generated_wrapper_span_link.go @@ -54,6 +54,10 @@ func DeleteOrigSpan_Link(orig *otlptrace.Span_Link, nullable bool) { } func CopyOrigSpan_Link(dest, src *otlptrace.Span_Link) { + // If copying to same object, just return. + if src == dest { + return + } dest.TraceId = src.TraceId dest.SpanId = src.SpanId CopyOrigTraceState(&dest.TraceState, &src.TraceState) diff --git a/pdata/internal/generated_wrapper_span_link_test.go b/pdata/internal/generated_wrapper_span_link_test.go index 1d01f655818..93314134a0a 100644 --- a/pdata/internal/generated_wrapper_span_link_test.go +++ b/pdata/internal/generated_wrapper_span_link_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigSpan_Link(t *testing.T) { - src := NewOrigSpan_Link() - dest := NewOrigSpan_Link() - CopyOrigSpan_Link(dest, src) - assert.Equal(t, NewOrigSpan_Link(), dest) - *src = *GenTestOrigSpan_Link() - CopyOrigSpan_Link(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesSpan_Link() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigSpan_Link() + CopyOrigSpan_Link(dest, src) + assert.Equal(t, src, dest) + CopyOrigSpan_Link(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigSpan_LinkUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigSpan_LinkUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigSpan_Link(t *testing.T) { for name, src := range genTestEncodingValuesSpan_Link() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigSpan_LinkUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigSpan_Link(t *testing.T) { for name, src := range genTestEncodingValuesSpan_Link() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_span_test.go b/pdata/internal/generated_wrapper_span_test.go index 920900a0f1e..feca93285a7 100644 --- a/pdata/internal/generated_wrapper_span_test.go +++ b/pdata/internal/generated_wrapper_span_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigSpan(t *testing.T) { - src := NewOrigSpan() - dest := NewOrigSpan() - CopyOrigSpan(dest, src) - assert.Equal(t, NewOrigSpan(), dest) - *src = *GenTestOrigSpan() - CopyOrigSpan(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesSpan() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigSpan() + CopyOrigSpan(dest, src) + assert.Equal(t, src, dest) + CopyOrigSpan(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigSpanUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigSpanUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigSpan(t *testing.T) { for name, src := range genTestEncodingValuesSpan() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigSpanUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigSpan(t *testing.T) { for name, src := range genTestEncodingValuesSpan() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_status.go b/pdata/internal/generated_wrapper_status.go index e86e4aa8463..516f2154453 100644 --- a/pdata/internal/generated_wrapper_status.go +++ b/pdata/internal/generated_wrapper_status.go @@ -45,6 +45,10 @@ func DeleteOrigStatus(orig *otlptrace.Status, nullable bool) { } func CopyOrigStatus(dest, src *otlptrace.Status) { + // If copying to same object, just return. + if src == dest { + return + } dest.Message = src.Message dest.Code = src.Code } diff --git a/pdata/internal/generated_wrapper_status_test.go b/pdata/internal/generated_wrapper_status_test.go index fd778f93520..3baf09c5e9b 100644 --- a/pdata/internal/generated_wrapper_status_test.go +++ b/pdata/internal/generated_wrapper_status_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigStatus(t *testing.T) { - src := NewOrigStatus() - dest := NewOrigStatus() - CopyOrigStatus(dest, src) - assert.Equal(t, NewOrigStatus(), dest) - *src = *GenTestOrigStatus() - CopyOrigStatus(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesStatus() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigStatus() + CopyOrigStatus(dest, src) + assert.Equal(t, src, dest) + CopyOrigStatus(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigStatusUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigStatusUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigStatus(t *testing.T) { for name, src := range genTestEncodingValuesStatus() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigStatusUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigStatus(t *testing.T) { for name, src := range genTestEncodingValuesStatus() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_sum.go b/pdata/internal/generated_wrapper_sum.go index 971788fa453..61266ac9c7f 100644 --- a/pdata/internal/generated_wrapper_sum.go +++ b/pdata/internal/generated_wrapper_sum.go @@ -49,6 +49,10 @@ func DeleteOrigSum(orig *otlpmetrics.Sum, nullable bool) { } func CopyOrigSum(dest, src *otlpmetrics.Sum) { + // If copying to same object, just return. + if src == dest { + return + } dest.DataPoints = CopyOrigNumberDataPointSlice(dest.DataPoints, src.DataPoints) dest.AggregationTemporality = src.AggregationTemporality dest.IsMonotonic = src.IsMonotonic diff --git a/pdata/internal/generated_wrapper_sum_test.go b/pdata/internal/generated_wrapper_sum_test.go index 443c18d34e4..2dbf830f901 100644 --- a/pdata/internal/generated_wrapper_sum_test.go +++ b/pdata/internal/generated_wrapper_sum_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigSum(t *testing.T) { - src := NewOrigSum() - dest := NewOrigSum() - CopyOrigSum(dest, src) - assert.Equal(t, NewOrigSum(), dest) - *src = *GenTestOrigSum() - CopyOrigSum(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesSum() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigSum() + CopyOrigSum(dest, src) + assert.Equal(t, src, dest) + CopyOrigSum(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigSumUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigSumUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigSum(t *testing.T) { for name, src := range genTestEncodingValuesSum() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigSumUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigSum(t *testing.T) { for name, src := range genTestEncodingValuesSum() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_summary.go b/pdata/internal/generated_wrapper_summary.go index cc0b9ba4e3d..c002ba4b175 100644 --- a/pdata/internal/generated_wrapper_summary.go +++ b/pdata/internal/generated_wrapper_summary.go @@ -49,6 +49,10 @@ func DeleteOrigSummary(orig *otlpmetrics.Summary, nullable bool) { } func CopyOrigSummary(dest, src *otlpmetrics.Summary) { + // If copying to same object, just return. + if src == dest { + return + } dest.DataPoints = CopyOrigSummaryDataPointSlice(dest.DataPoints, src.DataPoints) } diff --git a/pdata/internal/generated_wrapper_summary_test.go b/pdata/internal/generated_wrapper_summary_test.go index 918706913d9..7f9297756f4 100644 --- a/pdata/internal/generated_wrapper_summary_test.go +++ b/pdata/internal/generated_wrapper_summary_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigSummary(t *testing.T) { - src := NewOrigSummary() - dest := NewOrigSummary() - CopyOrigSummary(dest, src) - assert.Equal(t, NewOrigSummary(), dest) - *src = *GenTestOrigSummary() - CopyOrigSummary(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesSummary() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigSummary() + CopyOrigSummary(dest, src) + assert.Equal(t, src, dest) + CopyOrigSummary(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigSummaryUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigSummaryUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigSummary(t *testing.T) { for name, src := range genTestEncodingValuesSummary() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigSummaryUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigSummary(t *testing.T) { for name, src := range genTestEncodingValuesSummary() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_summarydatapoint.go b/pdata/internal/generated_wrapper_summarydatapoint.go index 6dc38eef2d8..44726e132e6 100644 --- a/pdata/internal/generated_wrapper_summarydatapoint.go +++ b/pdata/internal/generated_wrapper_summarydatapoint.go @@ -55,6 +55,10 @@ func DeleteOrigSummaryDataPoint(orig *otlpmetrics.SummaryDataPoint, nullable boo } func CopyOrigSummaryDataPoint(dest, src *otlpmetrics.SummaryDataPoint) { + // If copying to same object, just return. + if src == dest { + return + } dest.Attributes = CopyOrigKeyValueSlice(dest.Attributes, src.Attributes) dest.StartTimeUnixNano = src.StartTimeUnixNano dest.TimeUnixNano = src.TimeUnixNano diff --git a/pdata/internal/generated_wrapper_summarydatapoint_test.go b/pdata/internal/generated_wrapper_summarydatapoint_test.go index acbe3f21d59..766ef9fb6bb 100644 --- a/pdata/internal/generated_wrapper_summarydatapoint_test.go +++ b/pdata/internal/generated_wrapper_summarydatapoint_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -21,13 +22,23 @@ import ( ) func TestCopyOrigSummaryDataPoint(t *testing.T) { - src := NewOrigSummaryDataPoint() - dest := NewOrigSummaryDataPoint() - CopyOrigSummaryDataPoint(dest, src) - assert.Equal(t, NewOrigSummaryDataPoint(), dest) - *src = *GenTestOrigSummaryDataPoint() - CopyOrigSummaryDataPoint(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesSummaryDataPoint() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigSummaryDataPoint() + CopyOrigSummaryDataPoint(dest, src) + assert.Equal(t, src, dest) + CopyOrigSummaryDataPoint(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigSummaryDataPointUnknown(t *testing.T) { @@ -42,7 +53,7 @@ func TestMarshalAndUnmarshalJSONOrigSummaryDataPointUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigSummaryDataPoint(t *testing.T) { for name, src := range genTestEncodingValuesSummaryDataPoint() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -86,7 +97,7 @@ func TestMarshalAndUnmarshalProtoOrigSummaryDataPointUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigSummaryDataPoint(t *testing.T) { for name, src := range genTestEncodingValuesSummaryDataPoint() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_summarydatapoint_valueatquantile.go b/pdata/internal/generated_wrapper_summarydatapoint_valueatquantile.go index 2c3571e9c1a..be0d980d6d8 100644 --- a/pdata/internal/generated_wrapper_summarydatapoint_valueatquantile.go +++ b/pdata/internal/generated_wrapper_summarydatapoint_valueatquantile.go @@ -47,6 +47,10 @@ func DeleteOrigSummaryDataPoint_ValueAtQuantile(orig *otlpmetrics.SummaryDataPoi } func CopyOrigSummaryDataPoint_ValueAtQuantile(dest, src *otlpmetrics.SummaryDataPoint_ValueAtQuantile) { + // If copying to same object, just return. + if src == dest { + return + } dest.Quantile = src.Quantile dest.Value = src.Value } diff --git a/pdata/internal/generated_wrapper_summarydatapoint_valueatquantile_test.go b/pdata/internal/generated_wrapper_summarydatapoint_valueatquantile_test.go index 5e5b09351cf..c6a159148de 100644 --- a/pdata/internal/generated_wrapper_summarydatapoint_valueatquantile_test.go +++ b/pdata/internal/generated_wrapper_summarydatapoint_valueatquantile_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigSummaryDataPoint_ValueAtQuantile(t *testing.T) { - src := NewOrigSummaryDataPoint_ValueAtQuantile() - dest := NewOrigSummaryDataPoint_ValueAtQuantile() - CopyOrigSummaryDataPoint_ValueAtQuantile(dest, src) - assert.Equal(t, NewOrigSummaryDataPoint_ValueAtQuantile(), dest) - *src = *GenTestOrigSummaryDataPoint_ValueAtQuantile() - CopyOrigSummaryDataPoint_ValueAtQuantile(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesSummaryDataPoint_ValueAtQuantile() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigSummaryDataPoint_ValueAtQuantile() + CopyOrigSummaryDataPoint_ValueAtQuantile(dest, src) + assert.Equal(t, src, dest) + CopyOrigSummaryDataPoint_ValueAtQuantile(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigSummaryDataPoint_ValueAtQuantileUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigSummaryDataPoint_ValueAtQuantileUnknown(t *t func TestMarshalAndUnmarshalJSONOrigSummaryDataPoint_ValueAtQuantile(t *testing.T) { for name, src := range genTestEncodingValuesSummaryDataPoint_ValueAtQuantile() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigSummaryDataPoint_ValueAtQuantileUnknown(t * func TestMarshalAndUnmarshalProtoOrigSummaryDataPoint_ValueAtQuantile(t *testing.T) { for name, src := range genTestEncodingValuesSummaryDataPoint_ValueAtQuantile() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/internal/generated_wrapper_valuetype.go b/pdata/internal/generated_wrapper_valuetype.go index 4ff6d1a23d3..8396b707d26 100644 --- a/pdata/internal/generated_wrapper_valuetype.go +++ b/pdata/internal/generated_wrapper_valuetype.go @@ -45,6 +45,10 @@ func DeleteOrigValueType(orig *otlpprofiles.ValueType, nullable bool) { } func CopyOrigValueType(dest, src *otlpprofiles.ValueType) { + // If copying to same object, just return. + if src == dest { + return + } dest.TypeStrindex = src.TypeStrindex dest.UnitStrindex = src.UnitStrindex dest.AggregationTemporality = src.AggregationTemporality diff --git a/pdata/internal/generated_wrapper_valuetype_test.go b/pdata/internal/generated_wrapper_valuetype_test.go index 70369f79c28..c45c06fb847 100644 --- a/pdata/internal/generated_wrapper_valuetype_test.go +++ b/pdata/internal/generated_wrapper_valuetype_test.go @@ -7,6 +7,7 @@ package internal import ( + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -20,13 +21,23 @@ import ( ) func TestCopyOrigValueType(t *testing.T) { - src := NewOrigValueType() - dest := NewOrigValueType() - CopyOrigValueType(dest, src) - assert.Equal(t, NewOrigValueType(), dest) - *src = *GenTestOrigValueType() - CopyOrigValueType(dest, src) - assert.Equal(t, src, dest) + for name, src := range genTestEncodingValuesValueType() { + for _, pooling := range []bool{true, false} { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { + prevPooling := UseProtoPooling.IsEnabled() + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) + defer func() { + require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), prevPooling)) + }() + + dest := NewOrigValueType() + CopyOrigValueType(dest, src) + assert.Equal(t, src, dest) + CopyOrigValueType(dest, dest) + assert.Equal(t, src, dest) + }) + } + } } func TestMarshalAndUnmarshalJSONOrigValueTypeUnknown(t *testing.T) { @@ -41,7 +52,7 @@ func TestMarshalAndUnmarshalJSONOrigValueTypeUnknown(t *testing.T) { func TestMarshalAndUnmarshalJSONOrigValueType(t *testing.T) { for name, src := range genTestEncodingValuesValueType() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { @@ -85,7 +96,7 @@ func TestMarshalAndUnmarshalProtoOrigValueTypeUnknown(t *testing.T) { func TestMarshalAndUnmarshalProtoOrigValueType(t *testing.T) { for name, src := range genTestEncodingValuesValueType() { for _, pooling := range []bool{true, false} { - t.Run(name, func(t *testing.T) { + t.Run(name+"pooling_"+strconv.FormatBool(pooling), func(t *testing.T) { prevPooling := UseProtoPooling.IsEnabled() require.NoError(t, featuregate.GlobalRegistry().Set(UseProtoPooling.ID(), pooling)) defer func() { diff --git a/pdata/pcommon/generated_byteslice.go b/pdata/pcommon/generated_byteslice.go index 05718e974dd..777bec8d32e 100644 --- a/pdata/pcommon/generated_byteslice.go +++ b/pdata/pcommon/generated_byteslice.go @@ -130,6 +130,9 @@ func (ms ByteSlice) MoveAndAppendTo(dest ByteSlice) { // CopyTo copies all elements from the current slice overriding the destination. func (ms ByteSlice) CopyTo(dest ByteSlice) { dest.getState().AssertMutable() + if ms.getOrig() == dest.getOrig() { + return + } *dest.getOrig() = internal.CopyOrigByteSlice(*dest.getOrig(), *ms.getOrig()) } diff --git a/pdata/pcommon/generated_float64slice.go b/pdata/pcommon/generated_float64slice.go index bddd43eba0a..b7df94894b3 100644 --- a/pdata/pcommon/generated_float64slice.go +++ b/pdata/pcommon/generated_float64slice.go @@ -130,6 +130,9 @@ func (ms Float64Slice) MoveAndAppendTo(dest Float64Slice) { // CopyTo copies all elements from the current slice overriding the destination. func (ms Float64Slice) CopyTo(dest Float64Slice) { dest.getState().AssertMutable() + if ms.getOrig() == dest.getOrig() { + return + } *dest.getOrig() = internal.CopyOrigFloat64Slice(*dest.getOrig(), *ms.getOrig()) } diff --git a/pdata/pcommon/generated_int32slice.go b/pdata/pcommon/generated_int32slice.go index d86d4c7c283..9f0ac608c39 100644 --- a/pdata/pcommon/generated_int32slice.go +++ b/pdata/pcommon/generated_int32slice.go @@ -130,6 +130,9 @@ func (ms Int32Slice) MoveAndAppendTo(dest Int32Slice) { // CopyTo copies all elements from the current slice overriding the destination. func (ms Int32Slice) CopyTo(dest Int32Slice) { dest.getState().AssertMutable() + if ms.getOrig() == dest.getOrig() { + return + } *dest.getOrig() = internal.CopyOrigInt32Slice(*dest.getOrig(), *ms.getOrig()) } diff --git a/pdata/pcommon/generated_int64slice.go b/pdata/pcommon/generated_int64slice.go index cc338e2a4e9..8a2607bf30c 100644 --- a/pdata/pcommon/generated_int64slice.go +++ b/pdata/pcommon/generated_int64slice.go @@ -130,6 +130,9 @@ func (ms Int64Slice) MoveAndAppendTo(dest Int64Slice) { // CopyTo copies all elements from the current slice overriding the destination. func (ms Int64Slice) CopyTo(dest Int64Slice) { dest.getState().AssertMutable() + if ms.getOrig() == dest.getOrig() { + return + } *dest.getOrig() = internal.CopyOrigInt64Slice(*dest.getOrig(), *ms.getOrig()) } diff --git a/pdata/pcommon/generated_slice.go b/pdata/pcommon/generated_slice.go index 505e6bcd5a8..c60caaa33c1 100644 --- a/pdata/pcommon/generated_slice.go +++ b/pdata/pcommon/generated_slice.go @@ -142,6 +142,9 @@ func (es Slice) RemoveIf(f func(Value) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es Slice) CopyTo(dest Slice) { dest.getState().AssertMutable() + if es.getOrig() == dest.getOrig() { + return + } *dest.getOrig() = internal.CopyOrigAnyValueSlice(*dest.getOrig(), *es.getOrig()) } diff --git a/pdata/pcommon/generated_slice_test.go b/pdata/pcommon/generated_slice_test.go index 1e0a2ceb0d6..f4f31712246 100644 --- a/pdata/pcommon/generated_slice_test.go +++ b/pdata/pcommon/generated_slice_test.go @@ -51,6 +51,8 @@ func TestSlice_CopyTo(t *testing.T) { src := generateTestSlice() src.CopyTo(dest) assert.Equal(t, generateTestSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestSlice(), dest) } func TestSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pcommon/generated_stringslice.go b/pdata/pcommon/generated_stringslice.go index 7239ee7caf8..685f51af990 100644 --- a/pdata/pcommon/generated_stringslice.go +++ b/pdata/pcommon/generated_stringslice.go @@ -130,6 +130,9 @@ func (ms StringSlice) MoveAndAppendTo(dest StringSlice) { // CopyTo copies all elements from the current slice overriding the destination. func (ms StringSlice) CopyTo(dest StringSlice) { dest.getState().AssertMutable() + if ms.getOrig() == dest.getOrig() { + return + } *dest.getOrig() = internal.CopyOrigStringSlice(*dest.getOrig(), *ms.getOrig()) } diff --git a/pdata/pcommon/generated_uint64slice.go b/pdata/pcommon/generated_uint64slice.go index 93528e1be69..3a76ab3baed 100644 --- a/pdata/pcommon/generated_uint64slice.go +++ b/pdata/pcommon/generated_uint64slice.go @@ -130,6 +130,9 @@ func (ms UInt64Slice) MoveAndAppendTo(dest UInt64Slice) { // CopyTo copies all elements from the current slice overriding the destination. func (ms UInt64Slice) CopyTo(dest UInt64Slice) { dest.getState().AssertMutable() + if ms.getOrig() == dest.getOrig() { + return + } *dest.getOrig() = internal.CopyOrigUint64Slice(*dest.getOrig(), *ms.getOrig()) } diff --git a/pdata/plog/generated_logrecordslice.go b/pdata/plog/generated_logrecordslice.go index 8314cb91a3f..cc06afe99be 100644 --- a/pdata/plog/generated_logrecordslice.go +++ b/pdata/plog/generated_logrecordslice.go @@ -149,6 +149,9 @@ func (es LogRecordSlice) RemoveIf(f func(LogRecord) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es LogRecordSlice) CopyTo(dest LogRecordSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigLogRecordSlice(*dest.orig, *es.orig) } diff --git a/pdata/plog/generated_logrecordslice_test.go b/pdata/plog/generated_logrecordslice_test.go index 2800b054084..54e39b158ef 100644 --- a/pdata/plog/generated_logrecordslice_test.go +++ b/pdata/plog/generated_logrecordslice_test.go @@ -52,6 +52,8 @@ func TestLogRecordSlice_CopyTo(t *testing.T) { src := generateTestLogRecordSlice() src.CopyTo(dest) assert.Equal(t, generateTestLogRecordSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestLogRecordSlice(), dest) } func TestLogRecordSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/plog/generated_resourcelogsslice.go b/pdata/plog/generated_resourcelogsslice.go index a9fc6f5c014..eb358473850 100644 --- a/pdata/plog/generated_resourcelogsslice.go +++ b/pdata/plog/generated_resourcelogsslice.go @@ -149,6 +149,9 @@ func (es ResourceLogsSlice) RemoveIf(f func(ResourceLogs) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es ResourceLogsSlice) CopyTo(dest ResourceLogsSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigResourceLogsSlice(*dest.orig, *es.orig) } diff --git a/pdata/plog/generated_resourcelogsslice_test.go b/pdata/plog/generated_resourcelogsslice_test.go index b3a55f0e01c..76e9ba68d56 100644 --- a/pdata/plog/generated_resourcelogsslice_test.go +++ b/pdata/plog/generated_resourcelogsslice_test.go @@ -52,6 +52,8 @@ func TestResourceLogsSlice_CopyTo(t *testing.T) { src := generateTestResourceLogsSlice() src.CopyTo(dest) assert.Equal(t, generateTestResourceLogsSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestResourceLogsSlice(), dest) } func TestResourceLogsSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/plog/generated_scopelogsslice.go b/pdata/plog/generated_scopelogsslice.go index 6cd807a5701..af4f01eb09b 100644 --- a/pdata/plog/generated_scopelogsslice.go +++ b/pdata/plog/generated_scopelogsslice.go @@ -149,6 +149,9 @@ func (es ScopeLogsSlice) RemoveIf(f func(ScopeLogs) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es ScopeLogsSlice) CopyTo(dest ScopeLogsSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigScopeLogsSlice(*dest.orig, *es.orig) } diff --git a/pdata/plog/generated_scopelogsslice_test.go b/pdata/plog/generated_scopelogsslice_test.go index aa34f5630f1..60caa9039c3 100644 --- a/pdata/plog/generated_scopelogsslice_test.go +++ b/pdata/plog/generated_scopelogsslice_test.go @@ -52,6 +52,8 @@ func TestScopeLogsSlice_CopyTo(t *testing.T) { src := generateTestScopeLogsSlice() src.CopyTo(dest) assert.Equal(t, generateTestScopeLogsSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestScopeLogsSlice(), dest) } func TestScopeLogsSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pmetric/generated_exemplarslice.go b/pdata/pmetric/generated_exemplarslice.go index bc25d001dfb..24f54d61d1b 100644 --- a/pdata/pmetric/generated_exemplarslice.go +++ b/pdata/pmetric/generated_exemplarslice.go @@ -145,5 +145,8 @@ func (es ExemplarSlice) RemoveIf(f func(Exemplar) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es ExemplarSlice) CopyTo(dest ExemplarSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigExemplarSlice(*dest.orig, *es.orig) } diff --git a/pdata/pmetric/generated_exemplarslice_test.go b/pdata/pmetric/generated_exemplarslice_test.go index 31e75806146..264420d9e5f 100644 --- a/pdata/pmetric/generated_exemplarslice_test.go +++ b/pdata/pmetric/generated_exemplarslice_test.go @@ -51,6 +51,8 @@ func TestExemplarSlice_CopyTo(t *testing.T) { src := generateTestExemplarSlice() src.CopyTo(dest) assert.Equal(t, generateTestExemplarSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestExemplarSlice(), dest) } func TestExemplarSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pmetric/generated_exponentialhistogramdatapointslice.go b/pdata/pmetric/generated_exponentialhistogramdatapointslice.go index 1b2a84aef43..819e783b356 100644 --- a/pdata/pmetric/generated_exponentialhistogramdatapointslice.go +++ b/pdata/pmetric/generated_exponentialhistogramdatapointslice.go @@ -149,6 +149,9 @@ func (es ExponentialHistogramDataPointSlice) RemoveIf(f func(ExponentialHistogra // CopyTo copies all elements from the current slice overriding the destination. func (es ExponentialHistogramDataPointSlice) CopyTo(dest ExponentialHistogramDataPointSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigExponentialHistogramDataPointSlice(*dest.orig, *es.orig) } diff --git a/pdata/pmetric/generated_exponentialhistogramdatapointslice_test.go b/pdata/pmetric/generated_exponentialhistogramdatapointslice_test.go index 8a8e86f1ed7..e32a33052f9 100644 --- a/pdata/pmetric/generated_exponentialhistogramdatapointslice_test.go +++ b/pdata/pmetric/generated_exponentialhistogramdatapointslice_test.go @@ -52,6 +52,8 @@ func TestExponentialHistogramDataPointSlice_CopyTo(t *testing.T) { src := generateTestExponentialHistogramDataPointSlice() src.CopyTo(dest) assert.Equal(t, generateTestExponentialHistogramDataPointSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestExponentialHistogramDataPointSlice(), dest) } func TestExponentialHistogramDataPointSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pmetric/generated_histogramdatapointslice.go b/pdata/pmetric/generated_histogramdatapointslice.go index f5ad6a5f920..72f77725454 100644 --- a/pdata/pmetric/generated_histogramdatapointslice.go +++ b/pdata/pmetric/generated_histogramdatapointslice.go @@ -149,6 +149,9 @@ func (es HistogramDataPointSlice) RemoveIf(f func(HistogramDataPoint) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es HistogramDataPointSlice) CopyTo(dest HistogramDataPointSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigHistogramDataPointSlice(*dest.orig, *es.orig) } diff --git a/pdata/pmetric/generated_histogramdatapointslice_test.go b/pdata/pmetric/generated_histogramdatapointslice_test.go index 124133713dc..5fa860b8d98 100644 --- a/pdata/pmetric/generated_histogramdatapointslice_test.go +++ b/pdata/pmetric/generated_histogramdatapointslice_test.go @@ -52,6 +52,8 @@ func TestHistogramDataPointSlice_CopyTo(t *testing.T) { src := generateTestHistogramDataPointSlice() src.CopyTo(dest) assert.Equal(t, generateTestHistogramDataPointSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestHistogramDataPointSlice(), dest) } func TestHistogramDataPointSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pmetric/generated_metricslice.go b/pdata/pmetric/generated_metricslice.go index 34f1a0b2992..c74e7a451f5 100644 --- a/pdata/pmetric/generated_metricslice.go +++ b/pdata/pmetric/generated_metricslice.go @@ -149,6 +149,9 @@ func (es MetricSlice) RemoveIf(f func(Metric) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es MetricSlice) CopyTo(dest MetricSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigMetricSlice(*dest.orig, *es.orig) } diff --git a/pdata/pmetric/generated_metricslice_test.go b/pdata/pmetric/generated_metricslice_test.go index ba5957ca5ef..7ed538fab90 100644 --- a/pdata/pmetric/generated_metricslice_test.go +++ b/pdata/pmetric/generated_metricslice_test.go @@ -52,6 +52,8 @@ func TestMetricSlice_CopyTo(t *testing.T) { src := generateTestMetricSlice() src.CopyTo(dest) assert.Equal(t, generateTestMetricSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestMetricSlice(), dest) } func TestMetricSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pmetric/generated_numberdatapointslice.go b/pdata/pmetric/generated_numberdatapointslice.go index b31d7fe6e09..a691f92026d 100644 --- a/pdata/pmetric/generated_numberdatapointslice.go +++ b/pdata/pmetric/generated_numberdatapointslice.go @@ -149,6 +149,9 @@ func (es NumberDataPointSlice) RemoveIf(f func(NumberDataPoint) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es NumberDataPointSlice) CopyTo(dest NumberDataPointSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigNumberDataPointSlice(*dest.orig, *es.orig) } diff --git a/pdata/pmetric/generated_numberdatapointslice_test.go b/pdata/pmetric/generated_numberdatapointslice_test.go index 3630d09997d..72de4e0b626 100644 --- a/pdata/pmetric/generated_numberdatapointslice_test.go +++ b/pdata/pmetric/generated_numberdatapointslice_test.go @@ -52,6 +52,8 @@ func TestNumberDataPointSlice_CopyTo(t *testing.T) { src := generateTestNumberDataPointSlice() src.CopyTo(dest) assert.Equal(t, generateTestNumberDataPointSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestNumberDataPointSlice(), dest) } func TestNumberDataPointSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pmetric/generated_resourcemetricsslice.go b/pdata/pmetric/generated_resourcemetricsslice.go index 144e59d9f42..52103da495e 100644 --- a/pdata/pmetric/generated_resourcemetricsslice.go +++ b/pdata/pmetric/generated_resourcemetricsslice.go @@ -149,6 +149,9 @@ func (es ResourceMetricsSlice) RemoveIf(f func(ResourceMetrics) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es ResourceMetricsSlice) CopyTo(dest ResourceMetricsSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigResourceMetricsSlice(*dest.orig, *es.orig) } diff --git a/pdata/pmetric/generated_resourcemetricsslice_test.go b/pdata/pmetric/generated_resourcemetricsslice_test.go index 6b561907c42..a090587b06d 100644 --- a/pdata/pmetric/generated_resourcemetricsslice_test.go +++ b/pdata/pmetric/generated_resourcemetricsslice_test.go @@ -52,6 +52,8 @@ func TestResourceMetricsSlice_CopyTo(t *testing.T) { src := generateTestResourceMetricsSlice() src.CopyTo(dest) assert.Equal(t, generateTestResourceMetricsSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestResourceMetricsSlice(), dest) } func TestResourceMetricsSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pmetric/generated_scopemetricsslice.go b/pdata/pmetric/generated_scopemetricsslice.go index 44b8db11960..7850d9e7253 100644 --- a/pdata/pmetric/generated_scopemetricsslice.go +++ b/pdata/pmetric/generated_scopemetricsslice.go @@ -149,6 +149,9 @@ func (es ScopeMetricsSlice) RemoveIf(f func(ScopeMetrics) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es ScopeMetricsSlice) CopyTo(dest ScopeMetricsSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigScopeMetricsSlice(*dest.orig, *es.orig) } diff --git a/pdata/pmetric/generated_scopemetricsslice_test.go b/pdata/pmetric/generated_scopemetricsslice_test.go index 166c2d9ae03..b4279557451 100644 --- a/pdata/pmetric/generated_scopemetricsslice_test.go +++ b/pdata/pmetric/generated_scopemetricsslice_test.go @@ -52,6 +52,8 @@ func TestScopeMetricsSlice_CopyTo(t *testing.T) { src := generateTestScopeMetricsSlice() src.CopyTo(dest) assert.Equal(t, generateTestScopeMetricsSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestScopeMetricsSlice(), dest) } func TestScopeMetricsSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pmetric/generated_summarydatapointslice.go b/pdata/pmetric/generated_summarydatapointslice.go index b4694d8a2a5..26b52e75fe9 100644 --- a/pdata/pmetric/generated_summarydatapointslice.go +++ b/pdata/pmetric/generated_summarydatapointslice.go @@ -149,6 +149,9 @@ func (es SummaryDataPointSlice) RemoveIf(f func(SummaryDataPoint) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es SummaryDataPointSlice) CopyTo(dest SummaryDataPointSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigSummaryDataPointSlice(*dest.orig, *es.orig) } diff --git a/pdata/pmetric/generated_summarydatapointslice_test.go b/pdata/pmetric/generated_summarydatapointslice_test.go index 84c38021374..3fe04001b78 100644 --- a/pdata/pmetric/generated_summarydatapointslice_test.go +++ b/pdata/pmetric/generated_summarydatapointslice_test.go @@ -52,6 +52,8 @@ func TestSummaryDataPointSlice_CopyTo(t *testing.T) { src := generateTestSummaryDataPointSlice() src.CopyTo(dest) assert.Equal(t, generateTestSummaryDataPointSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestSummaryDataPointSlice(), dest) } func TestSummaryDataPointSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pmetric/generated_summarydatapointvalueatquantileslice.go b/pdata/pmetric/generated_summarydatapointvalueatquantileslice.go index 15c0201cb48..544bf5b125c 100644 --- a/pdata/pmetric/generated_summarydatapointvalueatquantileslice.go +++ b/pdata/pmetric/generated_summarydatapointvalueatquantileslice.go @@ -149,6 +149,9 @@ func (es SummaryDataPointValueAtQuantileSlice) RemoveIf(f func(SummaryDataPointV // CopyTo copies all elements from the current slice overriding the destination. func (es SummaryDataPointValueAtQuantileSlice) CopyTo(dest SummaryDataPointValueAtQuantileSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigSummaryDataPoint_ValueAtQuantileSlice(*dest.orig, *es.orig) } diff --git a/pdata/pmetric/generated_summarydatapointvalueatquantileslice_test.go b/pdata/pmetric/generated_summarydatapointvalueatquantileslice_test.go index a8471a5d0ce..5f2d0c3e4c0 100644 --- a/pdata/pmetric/generated_summarydatapointvalueatquantileslice_test.go +++ b/pdata/pmetric/generated_summarydatapointvalueatquantileslice_test.go @@ -52,6 +52,8 @@ func TestSummaryDataPointValueAtQuantileSlice_CopyTo(t *testing.T) { src := generateTestSummaryDataPointValueAtQuantileSlice() src.CopyTo(dest) assert.Equal(t, generateTestSummaryDataPointValueAtQuantileSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestSummaryDataPointValueAtQuantileSlice(), dest) } func TestSummaryDataPointValueAtQuantileSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pprofile/generated_attributetableslice.go b/pdata/pprofile/generated_attributetableslice.go index 922b9b6362d..6caf8a1b3da 100644 --- a/pdata/pprofile/generated_attributetableslice.go +++ b/pdata/pprofile/generated_attributetableslice.go @@ -145,5 +145,8 @@ func (es AttributeTableSlice) RemoveIf(f func(Attribute) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es AttributeTableSlice) CopyTo(dest AttributeTableSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigKeyValueSlice(*dest.orig, *es.orig) } diff --git a/pdata/pprofile/generated_attributetableslice_test.go b/pdata/pprofile/generated_attributetableslice_test.go index c4ecb43188e..a6a247f1377 100644 --- a/pdata/pprofile/generated_attributetableslice_test.go +++ b/pdata/pprofile/generated_attributetableslice_test.go @@ -51,6 +51,8 @@ func TestAttributeTableSlice_CopyTo(t *testing.T) { src := generateTestAttributeTableSlice() src.CopyTo(dest) assert.Equal(t, generateTestAttributeTableSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestAttributeTableSlice(), dest) } func TestAttributeTableSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pprofile/generated_attributeunitslice.go b/pdata/pprofile/generated_attributeunitslice.go index 816cae80294..72b071f7c21 100644 --- a/pdata/pprofile/generated_attributeunitslice.go +++ b/pdata/pprofile/generated_attributeunitslice.go @@ -149,6 +149,9 @@ func (es AttributeUnitSlice) RemoveIf(f func(AttributeUnit) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es AttributeUnitSlice) CopyTo(dest AttributeUnitSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigAttributeUnitSlice(*dest.orig, *es.orig) } diff --git a/pdata/pprofile/generated_attributeunitslice_test.go b/pdata/pprofile/generated_attributeunitslice_test.go index 24a571e634e..ff8d78af5a0 100644 --- a/pdata/pprofile/generated_attributeunitslice_test.go +++ b/pdata/pprofile/generated_attributeunitslice_test.go @@ -52,6 +52,8 @@ func TestAttributeUnitSlice_CopyTo(t *testing.T) { src := generateTestAttributeUnitSlice() src.CopyTo(dest) assert.Equal(t, generateTestAttributeUnitSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestAttributeUnitSlice(), dest) } func TestAttributeUnitSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pprofile/generated_functionslice.go b/pdata/pprofile/generated_functionslice.go index ebea71e2191..054b7c21934 100644 --- a/pdata/pprofile/generated_functionslice.go +++ b/pdata/pprofile/generated_functionslice.go @@ -149,6 +149,9 @@ func (es FunctionSlice) RemoveIf(f func(Function) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es FunctionSlice) CopyTo(dest FunctionSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigFunctionSlice(*dest.orig, *es.orig) } diff --git a/pdata/pprofile/generated_functionslice_test.go b/pdata/pprofile/generated_functionslice_test.go index 046b8b5b2a2..d908771a06c 100644 --- a/pdata/pprofile/generated_functionslice_test.go +++ b/pdata/pprofile/generated_functionslice_test.go @@ -52,6 +52,8 @@ func TestFunctionSlice_CopyTo(t *testing.T) { src := generateTestFunctionSlice() src.CopyTo(dest) assert.Equal(t, generateTestFunctionSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestFunctionSlice(), dest) } func TestFunctionSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pprofile/generated_lineslice.go b/pdata/pprofile/generated_lineslice.go index 84c9e39362a..96051f11e58 100644 --- a/pdata/pprofile/generated_lineslice.go +++ b/pdata/pprofile/generated_lineslice.go @@ -149,6 +149,9 @@ func (es LineSlice) RemoveIf(f func(Line) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es LineSlice) CopyTo(dest LineSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigLineSlice(*dest.orig, *es.orig) } diff --git a/pdata/pprofile/generated_lineslice_test.go b/pdata/pprofile/generated_lineslice_test.go index 275cf0013d8..40f24afd7cc 100644 --- a/pdata/pprofile/generated_lineslice_test.go +++ b/pdata/pprofile/generated_lineslice_test.go @@ -52,6 +52,8 @@ func TestLineSlice_CopyTo(t *testing.T) { src := generateTestLineSlice() src.CopyTo(dest) assert.Equal(t, generateTestLineSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestLineSlice(), dest) } func TestLineSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pprofile/generated_linkslice.go b/pdata/pprofile/generated_linkslice.go index 9f42b72e22c..1f20423da2d 100644 --- a/pdata/pprofile/generated_linkslice.go +++ b/pdata/pprofile/generated_linkslice.go @@ -149,6 +149,9 @@ func (es LinkSlice) RemoveIf(f func(Link) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es LinkSlice) CopyTo(dest LinkSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigLinkSlice(*dest.orig, *es.orig) } diff --git a/pdata/pprofile/generated_linkslice_test.go b/pdata/pprofile/generated_linkslice_test.go index c046fc2d22c..0e67941dbbb 100644 --- a/pdata/pprofile/generated_linkslice_test.go +++ b/pdata/pprofile/generated_linkslice_test.go @@ -52,6 +52,8 @@ func TestLinkSlice_CopyTo(t *testing.T) { src := generateTestLinkSlice() src.CopyTo(dest) assert.Equal(t, generateTestLinkSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestLinkSlice(), dest) } func TestLinkSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pprofile/generated_locationslice.go b/pdata/pprofile/generated_locationslice.go index a16bf34a5af..2cba74b954c 100644 --- a/pdata/pprofile/generated_locationslice.go +++ b/pdata/pprofile/generated_locationslice.go @@ -149,6 +149,9 @@ func (es LocationSlice) RemoveIf(f func(Location) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es LocationSlice) CopyTo(dest LocationSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigLocationSlice(*dest.orig, *es.orig) } diff --git a/pdata/pprofile/generated_locationslice_test.go b/pdata/pprofile/generated_locationslice_test.go index 735e01115c2..fb1995f91da 100644 --- a/pdata/pprofile/generated_locationslice_test.go +++ b/pdata/pprofile/generated_locationslice_test.go @@ -52,6 +52,8 @@ func TestLocationSlice_CopyTo(t *testing.T) { src := generateTestLocationSlice() src.CopyTo(dest) assert.Equal(t, generateTestLocationSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestLocationSlice(), dest) } func TestLocationSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pprofile/generated_mappingslice.go b/pdata/pprofile/generated_mappingslice.go index 348cfb87d95..2dd3a8ffe5d 100644 --- a/pdata/pprofile/generated_mappingslice.go +++ b/pdata/pprofile/generated_mappingslice.go @@ -149,6 +149,9 @@ func (es MappingSlice) RemoveIf(f func(Mapping) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es MappingSlice) CopyTo(dest MappingSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigMappingSlice(*dest.orig, *es.orig) } diff --git a/pdata/pprofile/generated_mappingslice_test.go b/pdata/pprofile/generated_mappingslice_test.go index c57161c2147..db8edeffaed 100644 --- a/pdata/pprofile/generated_mappingslice_test.go +++ b/pdata/pprofile/generated_mappingslice_test.go @@ -52,6 +52,8 @@ func TestMappingSlice_CopyTo(t *testing.T) { src := generateTestMappingSlice() src.CopyTo(dest) assert.Equal(t, generateTestMappingSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestMappingSlice(), dest) } func TestMappingSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pprofile/generated_profilesslice.go b/pdata/pprofile/generated_profilesslice.go index e3eec0843d5..f1af93b8a7c 100644 --- a/pdata/pprofile/generated_profilesslice.go +++ b/pdata/pprofile/generated_profilesslice.go @@ -149,6 +149,9 @@ func (es ProfilesSlice) RemoveIf(f func(Profile) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es ProfilesSlice) CopyTo(dest ProfilesSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigProfileSlice(*dest.orig, *es.orig) } diff --git a/pdata/pprofile/generated_profilesslice_test.go b/pdata/pprofile/generated_profilesslice_test.go index 9b1337080e0..f3af10257cb 100644 --- a/pdata/pprofile/generated_profilesslice_test.go +++ b/pdata/pprofile/generated_profilesslice_test.go @@ -52,6 +52,8 @@ func TestProfilesSlice_CopyTo(t *testing.T) { src := generateTestProfilesSlice() src.CopyTo(dest) assert.Equal(t, generateTestProfilesSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestProfilesSlice(), dest) } func TestProfilesSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pprofile/generated_resourceprofilesslice.go b/pdata/pprofile/generated_resourceprofilesslice.go index 6cbba143ed3..ee8f8236062 100644 --- a/pdata/pprofile/generated_resourceprofilesslice.go +++ b/pdata/pprofile/generated_resourceprofilesslice.go @@ -149,6 +149,9 @@ func (es ResourceProfilesSlice) RemoveIf(f func(ResourceProfiles) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es ResourceProfilesSlice) CopyTo(dest ResourceProfilesSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigResourceProfilesSlice(*dest.orig, *es.orig) } diff --git a/pdata/pprofile/generated_resourceprofilesslice_test.go b/pdata/pprofile/generated_resourceprofilesslice_test.go index eef729f9bc4..cdf54bfcc1f 100644 --- a/pdata/pprofile/generated_resourceprofilesslice_test.go +++ b/pdata/pprofile/generated_resourceprofilesslice_test.go @@ -52,6 +52,8 @@ func TestResourceProfilesSlice_CopyTo(t *testing.T) { src := generateTestResourceProfilesSlice() src.CopyTo(dest) assert.Equal(t, generateTestResourceProfilesSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestResourceProfilesSlice(), dest) } func TestResourceProfilesSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pprofile/generated_sampleslice.go b/pdata/pprofile/generated_sampleslice.go index b49b3778840..e645899dbbf 100644 --- a/pdata/pprofile/generated_sampleslice.go +++ b/pdata/pprofile/generated_sampleslice.go @@ -149,6 +149,9 @@ func (es SampleSlice) RemoveIf(f func(Sample) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es SampleSlice) CopyTo(dest SampleSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigSampleSlice(*dest.orig, *es.orig) } diff --git a/pdata/pprofile/generated_sampleslice_test.go b/pdata/pprofile/generated_sampleslice_test.go index 9c932fefb2a..eb31ec0f64d 100644 --- a/pdata/pprofile/generated_sampleslice_test.go +++ b/pdata/pprofile/generated_sampleslice_test.go @@ -52,6 +52,8 @@ func TestSampleSlice_CopyTo(t *testing.T) { src := generateTestSampleSlice() src.CopyTo(dest) assert.Equal(t, generateTestSampleSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestSampleSlice(), dest) } func TestSampleSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pprofile/generated_scopeprofilesslice.go b/pdata/pprofile/generated_scopeprofilesslice.go index d4cc685d248..c14c8993874 100644 --- a/pdata/pprofile/generated_scopeprofilesslice.go +++ b/pdata/pprofile/generated_scopeprofilesslice.go @@ -149,6 +149,9 @@ func (es ScopeProfilesSlice) RemoveIf(f func(ScopeProfiles) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es ScopeProfilesSlice) CopyTo(dest ScopeProfilesSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigScopeProfilesSlice(*dest.orig, *es.orig) } diff --git a/pdata/pprofile/generated_scopeprofilesslice_test.go b/pdata/pprofile/generated_scopeprofilesslice_test.go index 3a1b8720413..de804535df3 100644 --- a/pdata/pprofile/generated_scopeprofilesslice_test.go +++ b/pdata/pprofile/generated_scopeprofilesslice_test.go @@ -52,6 +52,8 @@ func TestScopeProfilesSlice_CopyTo(t *testing.T) { src := generateTestScopeProfilesSlice() src.CopyTo(dest) assert.Equal(t, generateTestScopeProfilesSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestScopeProfilesSlice(), dest) } func TestScopeProfilesSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/pprofile/generated_valuetypeslice.go b/pdata/pprofile/generated_valuetypeslice.go index 226316b01a7..16bda9d57c5 100644 --- a/pdata/pprofile/generated_valuetypeslice.go +++ b/pdata/pprofile/generated_valuetypeslice.go @@ -149,6 +149,9 @@ func (es ValueTypeSlice) RemoveIf(f func(ValueType) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es ValueTypeSlice) CopyTo(dest ValueTypeSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigValueTypeSlice(*dest.orig, *es.orig) } diff --git a/pdata/pprofile/generated_valuetypeslice_test.go b/pdata/pprofile/generated_valuetypeslice_test.go index c98187d2b94..bf332e1629c 100644 --- a/pdata/pprofile/generated_valuetypeslice_test.go +++ b/pdata/pprofile/generated_valuetypeslice_test.go @@ -52,6 +52,8 @@ func TestValueTypeSlice_CopyTo(t *testing.T) { src := generateTestValueTypeSlice() src.CopyTo(dest) assert.Equal(t, generateTestValueTypeSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestValueTypeSlice(), dest) } func TestValueTypeSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/ptrace/generated_resourcespansslice.go b/pdata/ptrace/generated_resourcespansslice.go index 8da71619d59..565f413dd90 100644 --- a/pdata/ptrace/generated_resourcespansslice.go +++ b/pdata/ptrace/generated_resourcespansslice.go @@ -149,6 +149,9 @@ func (es ResourceSpansSlice) RemoveIf(f func(ResourceSpans) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es ResourceSpansSlice) CopyTo(dest ResourceSpansSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigResourceSpansSlice(*dest.orig, *es.orig) } diff --git a/pdata/ptrace/generated_resourcespansslice_test.go b/pdata/ptrace/generated_resourcespansslice_test.go index 7e2f8fe965c..1feb8c17ab2 100644 --- a/pdata/ptrace/generated_resourcespansslice_test.go +++ b/pdata/ptrace/generated_resourcespansslice_test.go @@ -52,6 +52,8 @@ func TestResourceSpansSlice_CopyTo(t *testing.T) { src := generateTestResourceSpansSlice() src.CopyTo(dest) assert.Equal(t, generateTestResourceSpansSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestResourceSpansSlice(), dest) } func TestResourceSpansSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/ptrace/generated_scopespansslice.go b/pdata/ptrace/generated_scopespansslice.go index 93f7752b5c9..8e2fbf65724 100644 --- a/pdata/ptrace/generated_scopespansslice.go +++ b/pdata/ptrace/generated_scopespansslice.go @@ -149,6 +149,9 @@ func (es ScopeSpansSlice) RemoveIf(f func(ScopeSpans) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es ScopeSpansSlice) CopyTo(dest ScopeSpansSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigScopeSpansSlice(*dest.orig, *es.orig) } diff --git a/pdata/ptrace/generated_scopespansslice_test.go b/pdata/ptrace/generated_scopespansslice_test.go index b53e29b1bfd..000cd5d89d2 100644 --- a/pdata/ptrace/generated_scopespansslice_test.go +++ b/pdata/ptrace/generated_scopespansslice_test.go @@ -52,6 +52,8 @@ func TestScopeSpansSlice_CopyTo(t *testing.T) { src := generateTestScopeSpansSlice() src.CopyTo(dest) assert.Equal(t, generateTestScopeSpansSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestScopeSpansSlice(), dest) } func TestScopeSpansSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/ptrace/generated_spaneventslice.go b/pdata/ptrace/generated_spaneventslice.go index ab6c3c4ee7a..c0da19167d2 100644 --- a/pdata/ptrace/generated_spaneventslice.go +++ b/pdata/ptrace/generated_spaneventslice.go @@ -149,6 +149,9 @@ func (es SpanEventSlice) RemoveIf(f func(SpanEvent) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es SpanEventSlice) CopyTo(dest SpanEventSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigSpan_EventSlice(*dest.orig, *es.orig) } diff --git a/pdata/ptrace/generated_spaneventslice_test.go b/pdata/ptrace/generated_spaneventslice_test.go index 6df4d0b2695..cee9923299a 100644 --- a/pdata/ptrace/generated_spaneventslice_test.go +++ b/pdata/ptrace/generated_spaneventslice_test.go @@ -52,6 +52,8 @@ func TestSpanEventSlice_CopyTo(t *testing.T) { src := generateTestSpanEventSlice() src.CopyTo(dest) assert.Equal(t, generateTestSpanEventSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestSpanEventSlice(), dest) } func TestSpanEventSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/ptrace/generated_spanlinkslice.go b/pdata/ptrace/generated_spanlinkslice.go index d88388d15fb..a4626b3f16f 100644 --- a/pdata/ptrace/generated_spanlinkslice.go +++ b/pdata/ptrace/generated_spanlinkslice.go @@ -149,6 +149,9 @@ func (es SpanLinkSlice) RemoveIf(f func(SpanLink) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es SpanLinkSlice) CopyTo(dest SpanLinkSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigSpan_LinkSlice(*dest.orig, *es.orig) } diff --git a/pdata/ptrace/generated_spanlinkslice_test.go b/pdata/ptrace/generated_spanlinkslice_test.go index f6b27f5ac00..66960b38300 100644 --- a/pdata/ptrace/generated_spanlinkslice_test.go +++ b/pdata/ptrace/generated_spanlinkslice_test.go @@ -52,6 +52,8 @@ func TestSpanLinkSlice_CopyTo(t *testing.T) { src := generateTestSpanLinkSlice() src.CopyTo(dest) assert.Equal(t, generateTestSpanLinkSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestSpanLinkSlice(), dest) } func TestSpanLinkSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/ptrace/generated_spanslice.go b/pdata/ptrace/generated_spanslice.go index d7f2ab2396f..7417966fddb 100644 --- a/pdata/ptrace/generated_spanslice.go +++ b/pdata/ptrace/generated_spanslice.go @@ -149,6 +149,9 @@ func (es SpanSlice) RemoveIf(f func(Span) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es SpanSlice) CopyTo(dest SpanSlice) { dest.state.AssertMutable() + if es.orig == dest.orig { + return + } *dest.orig = internal.CopyOrigSpanSlice(*dest.orig, *es.orig) } diff --git a/pdata/ptrace/generated_spanslice_test.go b/pdata/ptrace/generated_spanslice_test.go index 48e0c2f8672..d781be5378f 100644 --- a/pdata/ptrace/generated_spanslice_test.go +++ b/pdata/ptrace/generated_spanslice_test.go @@ -52,6 +52,8 @@ func TestSpanSlice_CopyTo(t *testing.T) { src := generateTestSpanSlice() src.CopyTo(dest) assert.Equal(t, generateTestSpanSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestSpanSlice(), dest) } func TestSpanSlice_EnsureCapacity(t *testing.T) { diff --git a/pdata/xpdata/entity/generated_entityrefslice.go b/pdata/xpdata/entity/generated_entityrefslice.go index c15150abb9d..a5c4cc1ffcd 100644 --- a/pdata/xpdata/entity/generated_entityrefslice.go +++ b/pdata/xpdata/entity/generated_entityrefslice.go @@ -146,6 +146,9 @@ func (es EntityRefSlice) RemoveIf(f func(EntityRef) bool) { // CopyTo copies all elements from the current slice overriding the destination. func (es EntityRefSlice) CopyTo(dest EntityRefSlice) { dest.getState().AssertMutable() + if es.getOrig() == dest.getOrig() { + return + } *dest.getOrig() = internal.CopyOrigEntityRefSlice(*dest.getOrig(), *es.getOrig()) } diff --git a/pdata/xpdata/entity/generated_entityrefslice_test.go b/pdata/xpdata/entity/generated_entityrefslice_test.go index 79d7e1a8720..637cd0aea7d 100644 --- a/pdata/xpdata/entity/generated_entityrefslice_test.go +++ b/pdata/xpdata/entity/generated_entityrefslice_test.go @@ -52,6 +52,8 @@ func TestEntityRefSlice_CopyTo(t *testing.T) { src := generateTestEntityRefSlice() src.CopyTo(dest) assert.Equal(t, generateTestEntityRefSlice(), dest) + dest.CopyTo(dest) + assert.Equal(t, generateTestEntityRefSlice(), dest) } func TestEntityRefSlice_EnsureCapacity(t *testing.T) {