Files
EdgeNode/internal/nodes/http_client_pool_test.go

85 lines
1.9 KiB
Go
Raw Normal View History

2020-09-27 15:26:06 +08:00
package nodes
import (
2023-08-08 10:07:24 +08:00
"context"
2020-09-27 15:26:06 +08:00
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
2024-01-21 11:13:30 +08:00
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
2020-09-27 15:26:06 +08:00
"runtime"
"testing"
"time"
)
func TestHTTPClientPool_Client(t *testing.T) {
2024-01-21 11:13:30 +08:00
var pool = NewHTTPClientPool()
2020-09-27 15:26:06 +08:00
{
var origin = &serverconfigs.OriginConfig{
2020-09-27 15:26:06 +08:00
Id: 1,
Version: 2,
Addr: &serverconfigs.NetworkAddressConfig{Host: "127.0.0.1", PortRange: "1234"},
}
2023-08-08 11:36:54 +08:00
err := origin.Init(context.Background())
2020-09-27 15:26:06 +08:00
if err != nil {
t.Fatal(err)
}
{
2024-04-17 18:24:21 +08:00
client, err := pool.Client(nil, origin, origin.Addr.PickAddress(), nil, false, "example.com")
2020-09-27 15:26:06 +08:00
if err != nil {
t.Fatal(err)
}
t.Log("client:", client)
2020-09-27 15:26:06 +08:00
}
for i := 0; i < 10; i++ {
2024-04-17 18:24:21 +08:00
client, err := pool.Client(nil, origin, origin.Addr.PickAddress(), nil, false, "example.com")
2020-09-27 15:26:06 +08:00
if err != nil {
t.Fatal(err)
}
t.Log("client:", client)
2020-09-27 15:26:06 +08:00
}
}
}
func TestHTTPClientPool_cleanClients(t *testing.T) {
2022-08-06 20:52:52 +08:00
var origin = &serverconfigs.OriginConfig{
2020-09-27 15:26:06 +08:00
Id: 1,
Version: 2,
Addr: &serverconfigs.NetworkAddressConfig{Host: "127.0.0.1", PortRange: "1234"},
}
2023-08-08 10:07:24 +08:00
err := origin.Init(context.Background())
2020-09-27 15:26:06 +08:00
if err != nil {
t.Fatal(err)
}
2022-08-06 20:52:52 +08:00
var pool = NewHTTPClientPool()
2020-09-27 15:26:06 +08:00
for i := 0; i < 10; i++ {
t.Log("get", i)
2024-04-17 18:24:21 +08:00
_, _ = pool.Client(nil, origin, origin.Addr.PickAddress(), nil, false, "example.com")
2024-01-21 11:13:30 +08:00
if testutils.IsSingleTesting() {
time.Sleep(1 * time.Second)
}
2020-09-27 15:26:06 +08:00
}
}
func BenchmarkHTTPClientPool_Client(b *testing.B) {
runtime.GOMAXPROCS(1)
var origin = &serverconfigs.OriginConfig{
2020-09-27 15:26:06 +08:00
Id: 1,
Version: 2,
Addr: &serverconfigs.NetworkAddressConfig{Host: "127.0.0.1", PortRange: "1234"},
}
2023-08-08 10:07:24 +08:00
err := origin.Init(context.Background())
2020-09-27 15:26:06 +08:00
if err != nil {
b.Fatal(err)
}
b.ResetTimer()
var pool = NewHTTPClientPool()
2020-09-27 15:26:06 +08:00
for i := 0; i < b.N; i++ {
2024-04-17 18:24:21 +08:00
_, _ = pool.Client(nil, origin, origin.Addr.PickAddress(), nil, false, "example.com")
2020-09-27 15:26:06 +08:00
}
}