diff --git a/go/arrow/array/string_test.go b/go/arrow/array/string_test.go index a4bdcdd86a71b..896ee9aa07bdf 100644 --- a/go/arrow/array/string_test.go +++ b/go/arrow/array/string_test.go @@ -158,3 +158,26 @@ func TestStringBuilder_Empty(t *testing.T) { assert.Equal(t, want, stringValues(a)) a.Release() } + +// TestStringReset tests the Reset() method on the String type by creating two different Strings and then +// reseting the contents of string2 with the values from string1. +func TestStringReset(t *testing.T) { + mem := memory.NewCheckedAllocator(memory.NewGoAllocator()) + sb1 := array.NewStringBuilder(mem) + sb2 := array.NewStringBuilder(mem) + defer sb1.Release() + defer sb2.Release() + + sb1.Append("string1") + sb1.AppendNull() + + var ( + string1 = sb1.NewStringArray() + string2 = sb2.NewStringArray() + + string1Data = string1.Data() + ) + string2.Reset(string1Data) + + assert.Equal(t, "string1", string2.Value(0)) +} diff --git a/go/arrow/memory/buffer_test.go b/go/arrow/memory/buffer_test.go index 918175cb6e269..53b4044b03ee2 100644 --- a/go/arrow/memory/buffer_test.go +++ b/go/arrow/memory/buffer_test.go @@ -43,3 +43,15 @@ func TestNewResizableBuffer(t *testing.T) { assert.Nil(t, buf.Bytes()) assert.Zero(t, buf.Len()) } + +func TestBufferReset(t *testing.T) { + mem := memory.NewCheckedAllocator(memory.NewGoAllocator()) + defer mem.AssertSize(t, 0) + + buf := memory.NewResizableBuffer(mem) + + newBytes := []byte("some-new-bytes") + buf.Reset(newBytes) + assert.Equal(t, newBytes, buf.Bytes()) + assert.Equal(t, len(newBytes), buf.Len()) +}