Skip to content

Commit

Permalink
tests: reduced 1m30s time for testing
Browse files Browse the repository at this point in the history
* *: use pkg/utils/serverutils for listening addrs
* removed common pkg, moved to pkg/utils/serverutils
* pbrpc: rm time.Sleep
* thriftrpc: rm time.Sleep and run in parallel
* thrift_streaming: updated exitserver, use update_xxx_dep.sh if needed
* ci: seperate compliant check and run tests
  • Loading branch information
xiaost committed Sep 23, 2024
1 parent 222be12 commit 5ef3817
Show file tree
Hide file tree
Showing 41 changed files with 766 additions and 692 deletions.
15 changes: 9 additions & 6 deletions .github/workflows/pr-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,25 @@ name: Push Check
on: [pull_request]

jobs:
build:
run-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: stable
- name: Run Tests
run: ./run.sh

compliant-checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check License Header
uses: apache/skywalking-eyes/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: typos-action
uses: crate-ci/[email protected]

- name: Run Tests
run: ./run.sh
- name: Check Spell
uses: crate-ci/[email protected]
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,18 @@ output/*
*.test
testdata/

# Go workspace
go.work
go.work.sum

# Files produced by run.sh
kitex_gen/
kitex_gen_slim/
kitex_gen_noDefSerdes/
grpc_gen/
go.mod
go.sum
*.bak
bin
thrift_streaming/binaries
thrift_streaming/kitex_gen/
Expand Down
32 changes: 0 additions & 32 deletions common/common.go

This file was deleted.

6 changes: 3 additions & 3 deletions kitexgrpc/abc/abc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ package abc
import (
"testing"

"github.com/cloudwego/kitex-tests/common"
"github.com/cloudwego/kitex-tests/kitexgrpc/abc/consts"
"github.com/cloudwego/kitex-tests/kitexgrpc/abc/servicea"
"github.com/cloudwego/kitex-tests/kitexgrpc/abc/serviceb"
"github.com/cloudwego/kitex-tests/kitexgrpc/abc/servicec"
"github.com/cloudwego/kitex-tests/pkg/test"
"github.com/cloudwego/kitex-tests/pkg/utils/serverutils"
)

func TestMain(m *testing.M) {
Expand All @@ -43,8 +43,8 @@ func TestMain(m *testing.M) {
}
}()

common.WaitServer(consts.ServiceCAddr)
common.WaitServer(consts.ServiceBAddr)
serverutils.Wait(consts.ServiceCAddr)
serverutils.Wait(consts.ServiceBAddr)

m.Run()
}
Expand Down
10 changes: 5 additions & 5 deletions kitexgrpc/compressor/grpc_compressor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import (

"github.com/cloudwego/kitex-tests/kitex_gen/protobuf/grpc_demo/servicea"
"github.com/cloudwego/kitex-tests/pkg/test"
"github.com/cloudwego/kitex-tests/pkg/utils"
"github.com/cloudwego/kitex-tests/pkg/utils/clientutils"
client_opt "github.com/cloudwego/kitex/client"
"github.com/cloudwego/kitex/client/callopt"
"github.com/cloudwego/kitex/pkg/endpoint"
Expand All @@ -46,7 +46,7 @@ func TestKitexWithoutCompressor(t *testing.T) {
time.Sleep(50 * time.Millisecond)
client, err := GetClient(hostport)
test.Assert(t, err == nil, err)
defer utils.CallClose(client)
defer clientutils.CallClose(client)
resp, err := client.RunUnary()
test.Assert(t, err == nil, err)
test.Assert(t, resp != nil && resp.Message == "Kitex Hello!")
Expand All @@ -73,7 +73,7 @@ func TestKitexCompressor(t *testing.T) {
time.Sleep(50 * time.Millisecond)
client, err := GetClient(hostport)
test.Assert(t, err == nil, err)
defer utils.CallClose(client)
defer clientutils.CallClose(client)

resp, err := client.RunUnary(callopt.WithGRPCCompressor(kitex_gzip.Name))
test.Assert(t, err == nil, err)
Expand Down Expand Up @@ -105,7 +105,7 @@ func TestKitexCompressorWithGRPCClient(t *testing.T) {
defer conn.Close()
client, err := GetGRPCClient(hostport)
test.Assert(t, err == nil, err)
defer utils.CallClose(client)
defer clientutils.CallClose(client)

resp, err := client.RunUnary(grpc.UseCompressor(gzip.Name))
test.Assert(t, err == nil, err)
Expand Down Expand Up @@ -145,7 +145,7 @@ func TestKitexCompressorWithGRPCServer(t *testing.T) {

client, err := GetClient(hostport, client_opt.WithMiddleware(ServiceNameMW))
test.Assert(t, err == nil, err)
defer utils.CallClose(client)
defer clientutils.CallClose(client)

resp, err := client.RunUnary(callopt.WithGRPCCompressor(kitex_gzip.Name))
test.Assert(t, err == nil, err)
Expand Down
12 changes: 6 additions & 6 deletions kitexgrpc/multi_service/multi_service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import (
"github.com/cloudwego/kitex-tests/kitex_gen/protobuf/grpc_multi_service_2"
servicea2 "github.com/cloudwego/kitex-tests/kitex_gen/protobuf/grpc_multi_service_2/servicea"
"github.com/cloudwego/kitex-tests/pkg/test"
"github.com/cloudwego/kitex-tests/pkg/utils"
"github.com/cloudwego/kitex-tests/pkg/utils/clientutils"
)

type ServiceAImpl struct{}
Expand Down Expand Up @@ -94,7 +94,7 @@ func TestMultiService(t *testing.T) {

clientA, err := servicea.NewClient("ServiceA", client.WithTransportProtocol(transport.GRPC), client.WithHostPorts(hostport))
test.Assert(t, err == nil, err)
defer utils.CallClose(clientA)
defer clientutils.CallClose(clientA)

streamCliA, err := clientA.EchoA(context.Background())
test.Assert(t, err == nil, err)
Expand All @@ -106,7 +106,7 @@ func TestMultiService(t *testing.T) {

clientB, err := serviceb.NewClient("ServiceB", client.WithTransportProtocol(transport.GRPC), client.WithHostPorts(hostport))
test.Assert(t, err == nil, err)
defer utils.CallClose(clientB)
defer clientutils.CallClose(clientB)

streamCliB, err := clientB.EchoB(context.Background())
test.Assert(t, err == nil, err)
Expand All @@ -127,7 +127,7 @@ func TestUnknownException(t *testing.T) {

clientC, err := servicec.NewClient("ServiceC", client.WithTransportProtocol(transport.GRPC), client.WithHostPorts(hostport))
test.Assert(t, err == nil, err)
defer utils.CallClose(clientC)
defer clientutils.CallClose(clientC)

streamCliC, err := clientC.EchoC(context.Background())
test.Assert(t, err == nil, err)
Expand All @@ -146,7 +146,7 @@ func TestUnknownExceptionWithMultiService(t *testing.T) {
// unknown service error
clientC, err := servicec.NewClient("ServiceC", client.WithTransportProtocol(transport.GRPC), client.WithHostPorts(hostport))
test.Assert(t, err == nil, err)
defer utils.CallClose(clientC)
defer clientutils.CallClose(clientC)

streamCliC, err := clientC.EchoC(context.Background())
test.Assert(t, err == nil, err)
Expand All @@ -158,7 +158,7 @@ func TestUnknownExceptionWithMultiService(t *testing.T) {
// unknown method error
clientA, err := servicea2.NewClient("ServiceA", client.WithTransportProtocol(transport.GRPC), client.WithHostPorts(hostport))
test.Assert(t, err == nil, err)
defer utils.CallClose(clientA)
defer clientutils.CallClose(clientA)

streamCliA, err := clientA.Echo(context.Background())
test.Assert(t, err == nil, err)
Expand Down
30 changes: 17 additions & 13 deletions kitexgrpc/normalcall/normalcall_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ package normalcall

import (
"context"
"fmt"
"io"
"net"
"os"
Expand All @@ -34,7 +35,8 @@ import (
"github.com/cloudwego/kitex-tests/kitex_gen/protobuf/grpc_demo"
"github.com/cloudwego/kitex-tests/kitex_gen/protobuf/grpc_demo/servicea"
"github.com/cloudwego/kitex-tests/pkg/test"
"github.com/cloudwego/kitex-tests/pkg/utils"
"github.com/cloudwego/kitex-tests/pkg/utils/clientutils"
"github.com/cloudwego/kitex-tests/pkg/utils/serverutils"
)

type ServerAHandler struct {
Expand Down Expand Up @@ -72,10 +74,12 @@ func TestDisableRPCInfoReuse(t *testing.T) {
backupState := rpcinfo.PoolEnabled()
defer rpcinfo.EnablePool(backupState)

addr := serverutils.NextListenAddr()

var ri rpcinfo.RPCInfo
svr := servicea.NewServer(
&ServerAHandler{},
server.WithServiceAddr(serverAddr("127.0.0.1:9005")),
server.WithServiceAddr(serverAddr(addr)),
server.WithMiddleware(func(next endpoint.Endpoint) endpoint.Endpoint {
return func(ctx context.Context, req, resp interface{}) error {
ri = rpcinfo.GetRPCInfo(ctx)
Expand All @@ -91,8 +95,8 @@ func TestDisableRPCInfoReuse(t *testing.T) {
time.Sleep(50 * time.Millisecond)
defer svr.Stop()

cli := servicea.MustNewClient("servicea", client.WithHostPorts("127.0.0.1:9005"))
defer utils.CallClose(cli)
cli := servicea.MustNewClient("servicea", client.WithHostPorts(addr))
defer clientutils.CallClose(cli)

ctx := context.Background()

Expand All @@ -111,8 +115,7 @@ func TestDisableRPCInfoReuse(t *testing.T) {
}

func TestShortConnection(t *testing.T) {
svrIP, svrPort := "127.0.0.1", "19005"
svrAddrStr := svrIP + ":" + svrPort
svrAddrStr := serverutils.NextListenAddr()
svr := servicea.NewServer(
&ServerAHandler{},
server.WithServiceAddr(serverAddr(svrAddrStr)),
Expand All @@ -122,25 +125,25 @@ func TestShortConnection(t *testing.T) {
panic(err)
}
}()
time.Sleep(50 * time.Millisecond)
serverutils.Wait(svrAddrStr)
defer svr.Stop()

cli, err := servicea.NewClient("servicea",
client.WithHostPorts(svrAddrStr),
client.WithShortConnection(),
)
test.Assert(t, err == nil)

clientStream, err := cli.CallClientStream(context.Background())
test.Assert(t, err == nil)
err = clientStream.Send(&grpc_demo.Request{Name: "1"})
test.Assert(t, err == nil)
_, err = clientStream.CloseAndRecv()
test.Assert(t, err == nil)
time.Sleep(50 * time.Millisecond)
time.Sleep(20 * time.Millisecond)

// the connection should not exist after the call
exist, err := checkEstablishedConnection(svrIP, svrPort)
_, port, _ := net.SplitHostPort(svrAddrStr)
exist, err := checkEstablishedConnection(port)
if err != nil {
klog.Warnf("check established connection failed, error=%v", err)
} else {
Expand All @@ -150,16 +153,17 @@ func TestShortConnection(t *testing.T) {
}

// return true if current pid established connection with the input remote ip and port
func checkEstablishedConnection(ip, port string) (bool, error) {
func checkEstablishedConnection(port string) (bool, error) {
pid := os.Getpid()
conns, err := netutil.ConnectionsPid("all", int32(pid))
if err != nil {
return false, err
}

for _, c := range conns {
if c.Status == "ESTABLISHED" {
if strconv.Itoa(int(c.Raddr.Port)) == port && c.Raddr.IP == ip {
if strconv.Itoa(int(c.Raddr.Port)) == port &&
net.ParseIP(c.Raddr.IP).IsLoopback() { // only need to check IsLoopback for localhost
fmt.Println(c.Laddr, c.Raddr)
return true, nil
}
}
Expand Down
6 changes: 3 additions & 3 deletions kitexgrpc/unknown_handler/unknown_service_handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import (
"github.com/cloudwego/kitex-tests/kitex_gen/protobuf/unknown_handler/servicea"
"github.com/cloudwego/kitex-tests/kitex_gen/protobuf/unknown_handler/serviceb"
"github.com/cloudwego/kitex-tests/pkg/test"
"github.com/cloudwego/kitex-tests/pkg/utils"
"github.com/cloudwego/kitex-tests/pkg/utils/clientutils"
)

type ServiceAImpl struct{}
Expand Down Expand Up @@ -69,7 +69,7 @@ func TestUnknownServiceError(t *testing.T) {
time.Sleep(50 * time.Millisecond)
client, err := servicea.NewClient("grpcService", client.WithTransportProtocol(transport.GRPC), client.WithHostPorts(ip))
test.Assert(t, err == nil, err)
defer utils.CallClose(client)
defer clientutils.CallClose(client)

req := &unknown_handler.Request{Name: "kitex"}
_, err = client.Echo(context.Background(), req)
Expand All @@ -87,7 +87,7 @@ func TestUnknownServiceHandler(t *testing.T) {
time.Sleep(50 * time.Millisecond)
client, err := servicea.NewClient("grpcService", client.WithTransportProtocol(transport.GRPC), client.WithHostPorts(ip))
test.Assert(t, err == nil, err)
defer utils.CallClose(client)
defer clientutils.CallClose(client)

req := &unknown_handler.Request{Name: "kitex"}
resp, err := client.Echo(context.Background(), req)
Expand Down
Loading

0 comments on commit 5ef3817

Please sign in to comment.