Files
EdgeNode/internal/rpc/rpc_test.go

73 lines
1.4 KiB
Go
Raw Permalink Normal View History

2024-07-27 15:42:50 +08:00
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
2022-11-13 10:32:12 +08:00
package rpc_test
import (
2024-07-27 15:42:50 +08:00
"sync"
"testing"
"time"
2022-11-13 10:32:12 +08:00
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeNode/internal/rpc"
2024-01-21 11:13:30 +08:00
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
2022-11-13 10:32:12 +08:00
_ "github.com/iwind/TeaGo/bootstrap"
timeutil "github.com/iwind/TeaGo/utils/time"
)
func TestRPCConcurrentCall(t *testing.T) {
2024-01-21 11:13:30 +08:00
if !testutils.IsSingleTesting() {
return
}
2022-11-13 10:32:12 +08:00
rpcClient, err := rpc.SharedRPC()
if err != nil {
t.Fatal(err)
}
var before = time.Now()
defer func() {
t.Log("cost:", time.Since(before).Seconds()*1000, "ms")
}()
var concurrent = 3
var wg = sync.WaitGroup{}
wg.Add(concurrent)
for i := 0; i < concurrent; i++ {
go func() {
defer wg.Done()
_, err = rpcClient.NodeRPC.FindCurrentNodeConfig(rpcClient.Context(), &pb.FindCurrentNodeConfigRequest{})
if err != nil {
t.Log(err)
}
}()
}
wg.Wait()
}
func TestRPC_Retry(t *testing.T) {
2024-01-21 11:13:30 +08:00
if !testutils.IsSingleTesting() {
return
}
2022-11-13 10:32:12 +08:00
rpcClient, err := rpc.SharedRPC()
if err != nil {
t.Fatal(err)
}
var ticker = time.NewTicker(1 * time.Second)
for range ticker.C {
go func() {
_, err = rpcClient.NodeRPC.FindCurrentNodeConfig(rpcClient.Context(), &pb.FindCurrentNodeConfigRequest{})
if err != nil {
t.Log(timeutil.Format("H:i:s"), err)
} else {
t.Log(timeutil.Format("H:i:s"), "success")
}
}()
}
}