Skip to content

Commit

Permalink
Update supported go versions
Browse files Browse the repository at this point in the history
Client: go

With the release of go 1.23, update supported go versions to 1.22+1.23
according to our go support policy.

Also update the code to use the new range loop feature introduced in go
1.22 when appropriate.

Also fix a bug in TSSLServerSocket.Addr that it does not return the
listener address.
  • Loading branch information
fishy committed Aug 14, 2024
1 parent a4ebb75 commit 42189a8
Show file tree
Hide file tree
Showing 31 changed files with 200 additions and 169 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,8 @@ jobs:
strategy:
matrix:
go:
- '1.21'
- '1.22'
- '1.23'
fail-fast: false
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -180,7 +180,7 @@ jobs:
run: make -C test/go precross

- name: Upload go precross artifacts
if: matrix.go == '1.22'
if: matrix.go == '1.23'
uses: actions/upload-artifact@v4
with:
name: go-precross
Expand Down
4 changes: 2 additions & 2 deletions LANGUAGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,9 +163,9 @@ Thrift's core protocol is TBinary, supported by all languages except for JavaScr
<td align=left><a href="https://github.com/apache/thrift/blob/master/lib/go/README.md">Go</a></td>
<!-- Since -----------------><td>0.7.0</td>
<!-- Build Systems ---------><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cred.png" alt=""/></td>
<!-- Language Levels -------><td>1.21</td><td>1.22</td>
<!-- Language Levels -------><td>1.22</td><td>1.23</td>
<!-- Field types -----------><td><img src="/doc/images/cgrn.png" alt="Yes"/></td>
<!-- Low-Level Transports --><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td>
<!-- Low-Level Transports --><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td>
<!-- Transport Wrappers ----><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td>
<!-- Protocols -------------><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td>
<!-- Servers ---------------><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cred.png" alt=""/></td>
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module github.com/apache/thrift

go 1.21
go 1.22.0
2 changes: 1 addition & 1 deletion lib/go/test/fuzz/go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/apache/thrift/lib/go/test/fuzz

go 1.21
go 1.22.0

require github.com/apache/thrift v0.0.0-00010101000000-000000000000

Expand Down
2 changes: 1 addition & 1 deletion lib/go/test/go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/apache/thrift/lib/go/test

go 1.21
go 1.22.0

require (
github.com/apache/thrift v0.0.0-00010101000000-000000000000
Expand Down
8 changes: 4 additions & 4 deletions lib/go/test/tests/equals_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -255,31 +255,31 @@ func genMapFoo() *equalstest.MapEqualsFoo {

func genInt64Slice(length int) []int64 {
ret := make([]int64, length)
for i := 0; i < length; i++ {
for i := range ret {
ret[i] = int64(length - i)
}
return ret
}

func genStringSlice(length int) []string {
ret := make([]string, length)
for i := 0; i < length; i++ {
for i := range ret {
ret[i] = strconv.Itoa(length - i)
}
return ret
}

func genBytesSlice(length int) [][]byte {
ret := make([][]byte, length)
for i := 0; i < length; i++ {
for i := range ret {
ret[i] = []byte(strconv.Itoa(length - i))
}
return ret
}

func genInt64StringMap(length int) map[int64]string {
ret := make(map[int64]string, length)
for i := 0; i < length; i++ {
for i := range length {
ret[int64(i)] = strconv.Itoa(i)
}
return ret
Expand Down
4 changes: 2 additions & 2 deletions lib/go/test/tests/string_parse_allocation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func BenchmarkSimpleJsonStringParse_Allocations(b *testing.B) {
b.StopTimer()
numEscapedQuotes := 1000
var sb strings.Builder
for i := 0; i < numEscapedQuotes; i++ {
for range numEscapedQuotes {
sb.WriteString(`\"`)
}

Expand All @@ -51,7 +51,7 @@ func BenchmarkSimpleJsonStringParse_Allocations(b *testing.B) {
transport := thrift.NewTMemoryBuffer()
p := thrift.NewTJSONProtocol(transport)

for i := 0; i < b.N; i++ {
for range b.N {
transport.Reset()
transport.WriteString(testString)
transport.Flush(context.Background())
Expand Down
10 changes: 5 additions & 5 deletions lib/go/test/tests/validate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ func TestBasicValidator(t *testing.T) {
}
bt = validatetest.NewBasicTest()
bt.Map1 = make(map[string]string)
for i := 0; i < 11; i++ {
for i := range 11 {
bt.Map1[strconv.Itoa(i)] = strconv.Itoa(i)
}
if err := bt.Validate(); err == nil {
Expand Down Expand Up @@ -149,7 +149,7 @@ func TestBasicValidator(t *testing.T) {
t.Errorf("Error cannot be unwrapped into *ValidationError: %v", err)
}
bt = validatetest.NewBasicTest()
for i := 0; i < 11; i++ {
for range 11 {
bt.Set1 = append(bt.Set1, "0")
}
if err := bt.Validate(); err == nil {
Expand Down Expand Up @@ -272,7 +272,7 @@ func TestFieldReference(t *testing.T) {
frt = validatetest.NewFieldReferenceTest()
frt.MaxSize = 8
frt.Map0 = make(map[string]string)
for i := 0; i < 9; i++ {
for i := range 9 {
frt.Map0[strconv.Itoa(i)] = strconv.Itoa(i)
}
if err := frt.Validate(); err == nil {
Expand All @@ -289,7 +289,7 @@ func TestFieldReference(t *testing.T) {
}
frt = validatetest.NewFieldReferenceTest()
frt.MaxSize = 8
for i := 0; i < 9; i++ {
for range 9 {
frt.List0 = append(frt.List0, "0")
}
if err := frt.Validate(); err == nil {
Expand All @@ -306,7 +306,7 @@ func TestFieldReference(t *testing.T) {
}
frt = validatetest.NewFieldReferenceTest()
frt.MaxSize = 8
for i := 0; i < 9; i++ {
for range 9 {
frt.Set0 = append(frt.Set0, "0")
}
if err := frt.Validate(); err == nil {
Expand Down
2 changes: 1 addition & 1 deletion lib/go/thrift/binary_protocol_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ func generateSafeReadBytesBenchmark(askedSize int32, dataSize int) func(b *testi
return func(b *testing.B) {
data := make([]byte, dataSize)
b.ResetTimer()
for i := 0; i < b.N; i++ {
for range b.N {
safeReadBytes(askedSize, bytes.NewReader(data))
}
}
Expand Down
24 changes: 12 additions & 12 deletions lib/go/thrift/exception.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,20 +121,20 @@ var _ TException = wrappedTException{}
//
// For a endpoint defined in thrift IDL like this:
//
// service MyService {
// FooResponse foo(1: FooRequest request) throws (
// 1: Exception1 error1,
// 2: Exception2 error2,
// )
// }
// service MyService {
// FooResponse foo(1: FooRequest request) throws (
// 1: Exception1 error1,
// 2: Exception2 error2,
// )
// }
//
// The thrift compiler generated go code for the result TStruct would be like:
//
// type MyServiceFooResult struct {
// Success *FooResponse `thrift:"success,0" db:"success" json:"success,omitempty"`
// Error1 *Exception1 `thrift:"error1,1" db:"error1" json:"error1,omitempty"`
// Error2 *Exception2 `thrift:"error2,2" db:"error2" json:"error2,omitempty"`
// }
// type MyServiceFooResult struct {
// Success *FooResponse `thrift:"success,0" db:"success" json:"success,omitempty"`
// Error1 *Exception1 `thrift:"error1,1" db:"error1" json:"error1,omitempty"`
// Error2 *Exception2 `thrift:"error2,2" db:"error2" json:"error2,omitempty"`
// }
//
// And this function extracts the first non-nil exception out of
// *MyServiceFooResult.
Expand All @@ -144,7 +144,7 @@ func ExtractExceptionFromResult(result TStruct) error {
return nil
}
typ := v.Type()
for i := 0; i < v.NumField(); i++ {
for i := range v.NumField() {
if typ.Field(i).Name == "Success" {
continue
}
Expand Down
6 changes: 3 additions & 3 deletions lib/go/thrift/framed_transport_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func TestTFramedTransportReuseTransport(t *testing.T) {
writer := NewTFramedTransport(trans)

t.Run("pair", func(t *testing.T) {
for i := 0; i < n; i++ {
for i := range n {
// write
if _, err := io.Copy(writer, strings.NewReader(content)); err != nil {
t.Fatalf("Failed to write on #%d: %v", i, err)
Expand All @@ -64,7 +64,7 @@ func TestTFramedTransportReuseTransport(t *testing.T) {

t.Run("batched", func(t *testing.T) {
// write
for i := 0; i < n; i++ {
for i := range n {
if _, err := io.Copy(writer, strings.NewReader(content)); err != nil {
t.Fatalf("Failed to write on #%d: %v", i, err)
}
Expand All @@ -74,7 +74,7 @@ func TestTFramedTransportReuseTransport(t *testing.T) {
}

// read
for i := 0; i < n; i++ {
for i := range n {
const (
size = len(content)
)
Expand Down
4 changes: 2 additions & 2 deletions lib/go/thrift/header_transport.go
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@ func (t *THeaderTransport) parseHeaders(ctx context.Context, frameSize uint32) e
)
t.frameReader = reader
transformIDs := make([]THeaderTransformID, transformCount)
for i := 0; i < int(transformCount); i++ {
for i := range int(transformCount) {
id, err := hp.readVarint32()
if err != nil {
return err
Expand Down Expand Up @@ -536,7 +536,7 @@ func (t *THeaderTransport) parseHeaders(ctx context.Context, frameSize uint32) e
if err != nil {
return err
}
for i := 0; i < int(count); i++ {
for range int(count) {
key, err := hp.ReadString(ctx)
if err != nil {
return err
Expand Down
6 changes: 3 additions & 3 deletions lib/go/thrift/header_transport_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ func TestTHeaderTransportReuseTransport(t *testing.T) {
writer := NewTHeaderTransport(trans)

t.Run("pair", func(t *testing.T) {
for i := 0; i < n; i++ {
for i := range n {
// write
if _, err := io.Copy(writer, strings.NewReader(content)); err != nil {
t.Fatalf("Failed to write on #%d: %v", i, err)
Expand All @@ -338,7 +338,7 @@ func TestTHeaderTransportReuseTransport(t *testing.T) {

t.Run("batched", func(t *testing.T) {
// write
for i := 0; i < n; i++ {
for i := range n {
if _, err := io.Copy(writer, strings.NewReader(content)); err != nil {
t.Fatalf("Failed to write on #%d: %v", i, err)
}
Expand All @@ -348,7 +348,7 @@ func TestTHeaderTransportReuseTransport(t *testing.T) {
}

// read
for i := 0; i < n; i++ {
for i := range n {
const (
size = len(content)
)
Expand Down
2 changes: 1 addition & 1 deletion lib/go/thrift/json_protocol_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -451,7 +451,7 @@ func TestReadJSONProtocolBinary(t *testing.T) {
if len(v) != len(value) {
t.Fatalf("Bad value for %s value length %v, wrote: %v, received length: %v", thetype, len(value), s, len(v))
}
for i := 0; i < len(v); i++ {
for i := range v {
if v[i] != value[i] {
t.Fatalf("Bad value for %s at index %d value %v, wrote: %v, received: %v", thetype, i, value[i], s, v[i])
}
Expand Down
Loading

0 comments on commit 42189a8

Please sign in to comment.