You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ze...@apache.org on 2021/09/30 19:00:37 UTC
[arrow] branch master updated: ARROW-6946: [Go] Run tests with
assert build tag enabled to ensure safety
This is an automated email from the ASF dual-hosted git repository.
zeroshade pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new 5d41f1d ARROW-6946: [Go] Run tests with assert build tag enabled to ensure safety
5d41f1d is described below
commit 5d41f1d138295a3864243e6a4b7033d4ae5dc582
Author: Matthew Topol <mt...@factset.com>
AuthorDate: Thu Sep 30 14:59:43 2021 -0400
ARROW-6946: [Go] Run tests with assert build tag enabled to ensure safety
This patch had conflicts when merged, resolved by
Committer: Matthew Topol <mt...@factset.com>
Closes #11276 from zeroshade/arrow-6946
Authored-by: Matthew Topol <mt...@factset.com>
Signed-off-by: Matthew Topol <mt...@factset.com>
---
ci/scripts/go_cgo_python_test.sh | 2 +-
ci/scripts/go_test.sh | 4 +--
go/arrow/array/record.go | 7 ++--
go/arrow/array/struct_test.go | 3 --
go/arrow/array/table_test.go | 28 ++++++----------
go/arrow/example_test.go | 65 +++++++++++++++---------------------
go/arrow/internal/arrjson/arrjson.go | 15 +++------
go/arrow/ipc/cmd/arrow-cat/main.go | 1 -
8 files changed, 47 insertions(+), 78 deletions(-)
diff --git a/ci/scripts/go_cgo_python_test.sh b/ci/scripts/go_cgo_python_test.sh
index 564b5e3..5f2032f 100755
--- a/ci/scripts/go_cgo_python_test.sh
+++ b/ci/scripts/go_cgo_python_test.sh
@@ -35,7 +35,7 @@ case "$(uname)" in
;;
esac
-go build -tags cdata_test -buildmode=c-shared -o $testlib .
+go build -tags cdata_test,assert -buildmode=c-shared -o $testlib .
python test_export_to_cgo.py
diff --git a/ci/scripts/go_test.sh b/ci/scripts/go_test.sh
index 7bbfb2d..568a572 100755
--- a/ci/scripts/go_test.sh
+++ b/ci/scripts/go_test.sh
@@ -31,7 +31,7 @@ esac
pushd ${source_dir}/arrow
-TAGS="test"
+TAGS="assert,test"
if [[ -n "${ARROW_GO_TESTCGO}" ]]; then
TAGS="${TAGS},ccalloc"
fi
@@ -50,7 +50,7 @@ popd
pushd ${source_dir}/parquet
for d in $(go list ./... | grep -v vendor); do
- go test $testargs $d
+ go test $testargs -tags assert $d
done
popd
diff --git a/go/arrow/array/record.go b/go/arrow/array/record.go
index cf9ffc4..f65a4e8 100644
--- a/go/arrow/array/record.go
+++ b/go/arrow/array/record.go
@@ -289,11 +289,10 @@ func (b *RecordBuilder) Retain() {
func (b *RecordBuilder) Release() {
debug.Assert(atomic.LoadInt64(&b.refCount) > 0, "too many releases")
- for _, f := range b.fields {
- f.Release()
- }
-
if atomic.AddInt64(&b.refCount, -1) == 0 {
+ for _, f := range b.fields {
+ f.Release()
+ }
b.fields = nil
}
}
diff --git a/go/arrow/array/struct_test.go b/go/arrow/array/struct_test.go
index 5a0cefd..b948530 100644
--- a/go/arrow/array/struct_test.go
+++ b/go/arrow/array/struct_test.go
@@ -270,10 +270,7 @@ func TestStructArrayStringer(t *testing.T) {
defer sb.Release()
f1b := sb.FieldBuilder(0).(*array.Float64Builder)
- defer f1b.Release()
-
f2b := sb.FieldBuilder(1).(*array.Int32Builder)
- defer f2b.Release()
if got, want := sb.NumField(), 2; got != want {
t.Fatalf("got=%d, want=%d", got, want)
diff --git a/go/arrow/array/table_test.go b/go/arrow/array/table_test.go
index 408be8b..6bb6235 100644
--- a/go/arrow/array/table_test.go
+++ b/go/arrow/array/table_test.go
@@ -225,7 +225,6 @@ func TestColumn(t *testing.T) {
len int
nulls int
chunks int
- err error
}
for _, tc := range []struct {
@@ -396,8 +395,8 @@ func TestTable(t *testing.T) {
schema := arrow.NewSchema(
[]arrow.Field{
- arrow.Field{Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
- arrow.Field{Name: "f2-f64", Type: arrow.PrimitiveTypes.Float64},
+ {Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
+ {Name: "f2-f64", Type: arrow.PrimitiveTypes.Float64},
},
nil,
)
@@ -456,11 +455,6 @@ func TestTable(t *testing.T) {
defer col2.Release()
cols := []array.Column{*col1, *col2}
- defer func(cols []array.Column) {
- for i := range cols {
- cols[i].Release()
- }
- }(cols)
tbl := array.NewTable(schema, cols, -1)
defer tbl.Release()
@@ -503,7 +497,7 @@ func TestTable(t *testing.T) {
{
schema: arrow.NewSchema(
[]arrow.Field{
- arrow.Field{Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
+ {Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
},
nil,
),
@@ -514,8 +508,8 @@ func TestTable(t *testing.T) {
{
schema: arrow.NewSchema(
[]arrow.Field{
- arrow.Field{Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
- arrow.Field{Name: "f2-f64", Type: arrow.PrimitiveTypes.Int32},
+ {Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
+ {Name: "f2-f64", Type: arrow.PrimitiveTypes.Int32},
},
nil,
),
@@ -526,8 +520,8 @@ func TestTable(t *testing.T) {
{
schema: arrow.NewSchema(
[]arrow.Field{
- arrow.Field{Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
- arrow.Field{Name: "f2-f32", Type: arrow.PrimitiveTypes.Float64},
+ {Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
+ {Name: "f2-f32", Type: arrow.PrimitiveTypes.Float64},
},
nil,
),
@@ -584,8 +578,8 @@ func TestTableFromRecords(t *testing.T) {
schema := arrow.NewSchema(
[]arrow.Field{
- arrow.Field{Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
- arrow.Field{Name: "f2-f64", Type: arrow.PrimitiveTypes.Float64},
+ {Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
+ {Name: "f2-f64", Type: arrow.PrimitiveTypes.Float64},
},
nil,
)
@@ -630,8 +624,8 @@ func TestTableReader(t *testing.T) {
schema := arrow.NewSchema(
[]arrow.Field{
- arrow.Field{Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
- arrow.Field{Name: "f2-f64", Type: arrow.PrimitiveTypes.Float64},
+ {Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
+ {Name: "f2-f64", Type: arrow.PrimitiveTypes.Float64},
},
nil,
)
diff --git a/go/arrow/example_test.go b/go/arrow/example_test.go
index 71f8674..bb4bf78 100644
--- a/go/arrow/example_test.go
+++ b/go/arrow/example_test.go
@@ -133,8 +133,6 @@ func Example_listArray() {
defer lb.Release()
vb := lb.ValueBuilder().(*array.Int64Builder)
- defer vb.Release()
-
vb.Reserve(10)
lb.Append(true)
@@ -214,8 +212,6 @@ func Example_fixedSizeListArray() {
defer lb.Release()
vb := lb.ValueBuilder().(*array.Int64Builder)
- defer vb.Release()
-
vb.Reserve(10)
lb.Append(true)
@@ -268,12 +264,8 @@ func Example_structArray() {
defer sb.Release()
f1b := sb.FieldBuilder(0).(*array.ListBuilder)
- defer f1b.Release()
f1vb := f1b.ValueBuilder().(*array.Uint8Builder)
- defer f1vb.Release()
-
f2b := sb.FieldBuilder(1).(*array.Int32Builder)
- defer f2b.Release()
sb.Reserve(4)
f1vb.Reserve(7)
@@ -302,15 +294,10 @@ func Example_structArray() {
fmt.Printf("Len() = %d\n", arr.Len())
list := arr.Field(0).(*array.List)
- defer list.Release()
-
offsets := list.Offsets()
varr := list.ListValues().(*array.Uint8)
- defer varr.Release()
-
ints := arr.Field(1).(*array.Int32)
- defer ints.Release()
for i := 0; i < arr.Len(); i++ {
if !arr.IsValid(i) {
@@ -392,16 +379,16 @@ func Example_float64Tensor2x5() {
defer f64.Release()
for _, i := range [][]int64{
- []int64{0, 0},
- []int64{0, 1},
- []int64{0, 2},
- []int64{0, 3},
- []int64{0, 4},
- []int64{1, 0},
- []int64{1, 1},
- []int64{1, 2},
- []int64{1, 3},
- []int64{1, 4},
+ {0, 0},
+ {0, 1},
+ {0, 2},
+ {0, 3},
+ {0, 4},
+ {1, 0},
+ {1, 1},
+ {1, 2},
+ {1, 3},
+ {1, 4},
} {
fmt.Printf("arr%v = %v\n", i, f64.Value(i))
}
@@ -435,16 +422,16 @@ func Example_float64Tensor2x5ColMajor() {
defer f64.Release()
for _, i := range [][]int64{
- []int64{0, 0},
- []int64{0, 1},
- []int64{0, 2},
- []int64{0, 3},
- []int64{0, 4},
- []int64{1, 0},
- []int64{1, 1},
- []int64{1, 2},
- []int64{1, 3},
- []int64{1, 4},
+ {0, 0},
+ {0, 1},
+ {0, 2},
+ {0, 3},
+ {0, 4},
+ {1, 0},
+ {1, 1},
+ {1, 2},
+ {1, 3},
+ {1, 4},
} {
fmt.Printf("arr%v = %v\n", i, f64.Value(i))
}
@@ -467,8 +454,8 @@ func Example_record() {
schema := arrow.NewSchema(
[]arrow.Field{
- arrow.Field{Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
- arrow.Field{Name: "f2-f64", Type: arrow.PrimitiveTypes.Float64},
+ {Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
+ {Name: "f2-f64", Type: arrow.PrimitiveTypes.Float64},
},
nil,
)
@@ -497,8 +484,8 @@ func Example_recordReader() {
schema := arrow.NewSchema(
[]arrow.Field{
- arrow.Field{Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
- arrow.Field{Name: "f2-f64", Type: arrow.PrimitiveTypes.Float64},
+ {Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
+ {Name: "f2-f64", Type: arrow.PrimitiveTypes.Float64},
},
nil,
)
@@ -546,8 +533,8 @@ func Example_table() {
schema := arrow.NewSchema(
[]arrow.Field{
- arrow.Field{Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
- arrow.Field{Name: "f2-f64", Type: arrow.PrimitiveTypes.Float64},
+ {Name: "f1-i32", Type: arrow.PrimitiveTypes.Int32},
+ {Name: "f2-f64", Type: arrow.PrimitiveTypes.Float64},
},
nil,
)
diff --git a/go/arrow/internal/arrjson/arrjson.go b/go/arrow/internal/arrjson/arrjson.go
index 57e7cb9..3d5247b 100644
--- a/go/arrow/internal/arrjson/arrjson.go
+++ b/go/arrow/internal/arrjson/arrjson.go
@@ -759,9 +759,7 @@ func arrayFromJSON(mem memory.Allocator, dt arrow.DataType, arr Array) array.Int
bldr.Append(v)
beg := int64(arr.Offset[i])
end := int64(arr.Offset[i+1])
- slice := array.NewSlice(elems, beg, end)
- buildArray(bldr.ValueBuilder(), slice)
- slice.Release()
+ buildArray(bldr.ValueBuilder(), array.NewSlice(elems, beg, end))
}
return bldr.NewArray()
@@ -776,9 +774,7 @@ func arrayFromJSON(mem memory.Allocator, dt arrow.DataType, arr Array) array.Int
bldr.Append(v)
beg := int64(i) * size
end := int64(i+1) * size
- slice := array.NewSlice(elems, beg, end)
- buildArray(bldr.ValueBuilder(), slice)
- slice.Release()
+ buildArray(bldr.ValueBuilder(), array.NewSlice(elems, beg, end))
}
return bldr.NewArray()
@@ -795,7 +791,6 @@ func arrayFromJSON(mem memory.Allocator, dt arrow.DataType, arr Array) array.Int
for i := range dt.Fields() {
fbldr := bldr.FieldBuilder(i)
buildArray(fbldr, fields[i])
- fields[i].Release()
}
return bldr.NewArray()
@@ -829,12 +824,10 @@ func arrayFromJSON(mem memory.Allocator, dt arrow.DataType, arr Array) array.Int
bldr.Append(v)
beg := int64(arr.Offset[i])
end := int64(arr.Offset[i+1])
- slice := array.NewSlice(pairs, beg, end).(*array.Struct)
kb := bldr.KeyBuilder()
- buildArray(kb, slice.Field(0))
+ buildArray(kb, array.NewSlice(pairs.(*array.Struct).Field(0), beg, end))
ib := bldr.ItemBuilder()
- buildArray(ib, slice.Field(1))
- slice.Release()
+ buildArray(ib, array.NewSlice(pairs.(*array.Struct).Field(1), beg, end))
}
return bldr.NewArray()
diff --git a/go/arrow/ipc/cmd/arrow-cat/main.go b/go/arrow/ipc/cmd/arrow-cat/main.go
index 8e7f19b..d754f5d 100644
--- a/go/arrow/ipc/cmd/arrow-cat/main.go
+++ b/go/arrow/ipc/cmd/arrow-cat/main.go
@@ -162,7 +162,6 @@ func processFile(w io.Writer, fname string) error {
for i, col := range rec.Columns() {
fmt.Fprintf(w, " col[%d] %q: %v\n", i, rec.ColumnName(i), col)
}
- rec.Release()
}
return nil