Skip to content

Commit

Permalink
feat(contrib/registry/etcd): add retry machenism when keepalive lease…
Browse files Browse the repository at this point in the history
… expires (#4035)
  • Loading branch information
gqcn authored Dec 13, 2024
1 parent e3e82c7 commit ac53170
Show file tree
Hide file tree
Showing 23 changed files with 194 additions and 171 deletions.
82 changes: 21 additions & 61 deletions .github/workflows/ci-main.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
#!/usr/bin/env bash

# Define the latest Go version requirement
LATEST_GO_VERSION="1.23"

coverage=$1

# find all path that contains go.mod.
Expand All @@ -13,82 +16,39 @@ for file in `find . -name go.mod`; do
continue 1
fi

if [[ $file =~ "/testdata/" ]]; then
echo "ignore testdata path $file"
continue 1
fi

# package kuhecm was moved to sub ci procedure.
if [ "kubecm" = $(basename $dirpath) ]; then
continue 1
fi

# package consul needs golang >= v1.19
if [ "consul" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][0-9]"; then
echo "ignore consul as go version: $(go version)"
continue 1
# Check if it's a contrib directory or example directory
if [[ $dirpath =~ "/contrib/" ]] || [ "example" = $(basename $dirpath) ]; then
# Check if go version meets the requirement
if ! go version | grep -qE "go${LATEST_GO_VERSION}"; then
echo "ignore path $dirpath as go version is not ${LATEST_GO_VERSION}: $(go version)"
continue 1
fi
fi

# package etcd needs golang >= v1.19
if [ "etcd" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][0-9]"; then
echo "ignore etcd as go version: $(go version)"
continue 1
fi
fi

# package polaris needs golang >= v1.19
if [ "polaris" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][0-9]"; then
echo "ignore polaris as go version: $(go version)"
continue 1
# If it's example directory, only build without tests
if [ "example" = $(basename $dirpath) ]; then
echo "the example directory only needs to be built, not unit tests and coverage tests."
cd $dirpath
go mod tidy
go build ./...
cd -
continue 1
fi
fi

# package example needs golang >= v1.20
if [ "example" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][1-9]"; then
echo "ignore example as go version: $(go version)"
continue 1
fi
echo "the example directory only needs to be built, not unit tests and coverage tests."
cd $dirpath
go mod tidy
go build ./...
cd -
if [[ $file =~ "/testdata/" ]]; then
echo "ignore testdata path $file"
continue 1
fi

# package otlpgrpc needs golang >= v1.20
if [ "otlpgrpc" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][0-9]"; then
echo "ignore otlpgrpc as go version: $(go version)"
continue 1
fi
fi

# package otlphttp needs golang >= v1.20
if [ "otlphttp" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][0-9]"; then
echo "ignore otlphttp as go version: $(go version)"
continue 1
fi
fi

# package otelmetric needs golang >= v1.20
if [ "otelmetric" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][0-9]"; then
echo "ignore otelmetric as go version: $(go version)"
continue 1
fi
fi

cd $dirpath
go mod tidy
go build ./...
# check coverage

# test with coverage
if [ "${coverage}" = "coverage" ]; then
go test ./... -race -coverprofile=coverage.out -covermode=atomic -coverpkg=./...,github.com/gogf/gf/... || exit 1

Expand Down
7 changes: 4 additions & 3 deletions container/gpool/gpool_z_unit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"time"

"github.com/gogf/gf/v2/container/gpool"
"github.com/gogf/gf/v2/container/gtype"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/test/gtest"
)
Expand All @@ -20,10 +21,10 @@ var nf gpool.NewFunc = func() (i interface{}, e error) {
return "hello", nil
}

var assertIndex int = 0
var assertIndex = gtype.NewInt(0)

var ef gpool.ExpireFunc = func(i interface{}) {
assertIndex++
assertIndex.Add(1)
gtest.Assert(i, assertIndex)
}

Expand Down Expand Up @@ -83,7 +84,7 @@ func Test_Gpool(t *testing.T) {
v2, err2 = p2.Get()
t.Assert(err2, nil)
t.Assert(v2, 0)
assertIndex = 0
assertIndex.Set(0)
p2.Close()
time.Sleep(3 * time.Second)
t.AssertNE(p2.Put(1), nil)
Expand Down
2 changes: 1 addition & 1 deletion contrib/drivers/clickhouse/clickhouse_z_unit_db_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ func Test_DB_Tables(t *testing.T) {
}

result, err := db.Tables(ctx)
gtest.Assert(err, nil)
gtest.AssertNil(err)

for i := 0; i < len(tables); i++ {
find := false
Expand Down
12 changes: 6 additions & 6 deletions contrib/drivers/dm/dm_z_unit_basic_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func TestTables(t *testing.T) {
}
gtest.C(t, func(t *gtest.T) {
result, err := db.Tables(ctx)
gtest.Assert(err, nil)
gtest.AssertNil(err)

for i := 0; i < len(tables); i++ {
find := false
Expand All @@ -48,7 +48,7 @@ func TestTables(t *testing.T) {
}

result, err = dblink.Tables(ctx)
gtest.Assert(err, nil)
gtest.AssertNil(err)
for i := 0; i < len(tables); i++ {
find := false
for j := 0; j < len(result); j++ {
Expand Down Expand Up @@ -95,7 +95,7 @@ func TestTableFields(t *testing.T) {
gtest.AssertNE(err, nil)

res, err := db.TableFields(ctx, tables)
gtest.Assert(err, nil)
gtest.AssertNil(err)

for k, v := range expect {
_, ok := res[k]
Expand Down Expand Up @@ -205,7 +205,7 @@ func TestModelInsert(t *testing.T) {
}
// _, err := db.Schema(TestDBName).Model(table).Data(data).Insert()
_, err := db.Model(table).Insert(&data)
gtest.Assert(err, nil)
gtest.AssertNil(err)
})

gtest.C(t, func(t *gtest.T) {
Expand All @@ -220,7 +220,7 @@ func TestModelInsert(t *testing.T) {
}
// _, err := db.Schema(TestDBName).Model(table).Data(data).Insert()
_, err := db.Model(table).Data(&data).Insert()
gtest.Assert(err, nil)
gtest.AssertNil(err)
})
}

Expand All @@ -238,7 +238,7 @@ func TestDBInsert(t *testing.T) {
"UPDATED_TIME": gtime.Now(),
}
_, err := db.Insert(ctx, table, &data)
gtest.Assert(err, nil)
gtest.AssertNil(err)
})
}

Expand Down
2 changes: 1 addition & 1 deletion contrib/drivers/dm/dm_z_unit_init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ func createInitTable(table ...string) (name string) {
})
}
result, err := db.Schema(TestDBName).Insert(context.Background(), name, array.Slice())
gtest.Assert(err, nil)
gtest.AssertNil(err)

n, e := result.RowsAffected()
gtest.Assert(e, nil)
Expand Down
10 changes: 5 additions & 5 deletions contrib/drivers/mssql/mssql_z_unit_basic_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func TestTables(t *testing.T) {
}

result, err := db.Tables(context.Background())
gtest.Assert(err, nil)
gtest.AssertNil(err)

for i := 0; i < len(tables); i++ {
find := false
Expand All @@ -43,7 +43,7 @@ func TestTables(t *testing.T) {
}

result, err = db.Tables(context.Background(), "test")
gtest.Assert(err, nil)
gtest.AssertNil(err)
for i := 0; i < len(tables); i++ {
find := false
for j := 0; j < len(result); j++ {
Expand Down Expand Up @@ -74,7 +74,7 @@ func TestTableFields(t *testing.T) {
}

res, err := db.TableFields(context.Background(), "t_user")
gtest.Assert(err, nil)
gtest.AssertNil(err)

for k, v := range expect {
_, ok := res[k]
Expand All @@ -89,7 +89,7 @@ func TestTableFields(t *testing.T) {
}

res, err = db.TableFields(context.Background(), "t_user", "test")
gtest.Assert(err, nil)
gtest.AssertNil(err)

for k, v := range expect {
_, ok := res[k]
Expand Down Expand Up @@ -124,7 +124,7 @@ func TestDoInsert(t *testing.T) {
"create_time": gtime.Now(),
}
_, err := db.Insert(context.Background(), "t_user", data)
gtest.Assert(err, nil)
gtest.AssertNil(err)

})

Expand Down
5 changes: 3 additions & 2 deletions contrib/drivers/mssql/mssql_z_unit_init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ func init() {

nodeErr := gdb.ConfigNode{
Type: "mssql",
Link: fmt.Sprintf("user id=%s;password=%s;server=%s;port=%s;database=%s;encrypt=disable",
Link: fmt.Sprintf(
"mssql:%s:%s@tcp(%s:%s)/%s?encrypt=disable",
node.User, "node.Pass", node.Host, node.Port, node.Name),
}

Expand Down Expand Up @@ -130,7 +131,7 @@ func createInitTable(table ...string) (name string) {
})
}
result, err := db.Insert(context.Background(), name, array.Slice())
gtest.Assert(err, nil)
gtest.AssertNil(err)

n, e := result.RowsAffected()
gtest.Assert(e, nil)
Expand Down
50 changes: 26 additions & 24 deletions contrib/drivers/mssql/mssql_z_unit_model_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,30 +26,32 @@ import (
func Test_Page(t *testing.T) {
table := createInitTable()
defer dropTable(table)
// db.SetDebug(true)
result, err := db.Model(table).Page(1, 2).Order("id").All()
gtest.Assert(err, nil)
fmt.Println("page:1--------", result)
gtest.Assert(len(result), 2)
gtest.Assert(result[0]["ID"], 1)
gtest.Assert(result[1]["ID"], 2)

result, err = db.Model(table).Page(2, 2).Order("id").All()
gtest.Assert(err, nil)
fmt.Println("page: 2--------", result)
gtest.Assert(len(result), 2)
gtest.Assert(result[0]["ID"], 3)
gtest.Assert(result[1]["ID"], 4)

result, err = db.Model(table).Page(3, 2).Order("id").All()
gtest.Assert(err, nil)
fmt.Println("page:3 --------", result)
gtest.Assert(len(result), 2)
gtest.Assert(result[0]["ID"], 5)

result, err = db.Model(table).Page(2, 3).All()
gtest.Assert(err, nil)
gtest.Assert(len(result), 3)
gtest.C(t, func(t *gtest.T) {
result, err := db.Model(table).Page(1, 2).Order("id").All()
t.AssertNil(err)
fmt.Println("page:1--------", result)
gtest.Assert(len(result), 2)
gtest.Assert(result[0]["ID"], 1)
gtest.Assert(result[1]["ID"], 2)

result, err = db.Model(table).Page(2, 2).Order("id").All()
t.AssertNil(err)
fmt.Println("page: 2--------", result)
gtest.Assert(len(result), 2)
gtest.Assert(result[0]["ID"], 3)
gtest.Assert(result[1]["ID"], 4)

result, err = db.Model(table).Page(3, 2).Order("id").All()
t.AssertNil(err)
fmt.Println("page:3 --------", result)
gtest.Assert(len(result), 2)
gtest.Assert(result[0]["ID"], 5)

result, err = db.Model(table).Page(2, 3).All()
t.AssertNil(err)
gtest.Assert(len(result), 3)
})

}

func Test_Model_Insert(t *testing.T) {
Expand Down
10 changes: 5 additions & 5 deletions contrib/drivers/oracle/oracle_z_unit_basic_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ func Test_Tables(t *testing.T) {
}

result, err := db.Tables(ctx)
gtest.Assert(err, nil)
gtest.AssertNil(err)

for i := 0; i < len(tables); i++ {
find := false
Expand All @@ -41,7 +41,7 @@ func Test_Tables(t *testing.T) {
}

result, err = db.Tables(ctx, TestSchema)
gtest.Assert(err, nil)
gtest.AssertNil(err)
for i := 0; i < len(tables); i++ {
find := false
for j := 0; j < len(result); j++ {
Expand Down Expand Up @@ -76,7 +76,7 @@ func Test_Table_Fields(t *testing.T) {
gtest.AssertNE(err, nil)

res, err := db.TableFields(ctx, "t_user")
gtest.Assert(err, nil)
gtest.AssertNil(err)

for k, v := range expect {
_, ok := res[k]
Expand All @@ -88,7 +88,7 @@ func Test_Table_Fields(t *testing.T) {
}

res, err = db.TableFields(ctx, "t_user", TestSchema)
gtest.Assert(err, nil)
gtest.AssertNil(err)

for k, v := range expect {
_, ok := res[k]
Expand Down Expand Up @@ -121,7 +121,7 @@ func Test_Do_Insert(t *testing.T) {
"CREATE_TIME": gtime.Now().String(),
}
_, err := db.Insert(ctx, "t_user", data)
gtest.Assert(err, nil)
gtest.AssertNil(err)

})

Expand Down
2 changes: 1 addition & 1 deletion contrib/drivers/oracle/oracle_z_unit_init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ func createInitTable(table ...string) (name string) {
})
}
result, err := db.Insert(context.Background(), name, array.Slice())
gtest.Assert(err, nil)
gtest.AssertNil(err)

n, e := result.RowsAffected()
gtest.Assert(e, nil)
Expand Down
Loading

0 comments on commit ac53170

Please sign in to comment.