mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2024-12-22 19:50:36 +00:00
64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
|
package rpc
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"net/http/httptest"
|
||
|
"strings"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/ledgerwatch/log/v3"
|
||
|
)
|
||
|
|
||
|
// This test checks whether calls exceeding the request size limit are rejected.
|
||
|
func BenchmarkWebsocketEmptyCall(b *testing.B) {
|
||
|
logger := log.New()
|
||
|
|
||
|
var (
|
||
|
srv = newTestServer(logger)
|
||
|
httpsrv = httptest.NewServer(srv.WebsocketHandler([]string{"*"}, nil, false, logger))
|
||
|
wsURL = "ws:" + strings.TrimPrefix(httpsrv.URL, "http:")
|
||
|
)
|
||
|
defer srv.Stop()
|
||
|
defer httpsrv.Close()
|
||
|
|
||
|
client, err := DialWebsocket(context.Background(), wsURL, "", logger)
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
defer client.Close()
|
||
|
|
||
|
b.ResetTimer()
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
if err := client.Call(nil, "test_ping"); err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
func BenchmarkWebsocket16kb(b *testing.B) {
|
||
|
logger := log.New()
|
||
|
|
||
|
var (
|
||
|
srv = newTestServer(logger)
|
||
|
httpsrv = httptest.NewServer(srv.WebsocketHandler([]string{"*"}, nil, false, logger))
|
||
|
wsURL = "ws:" + strings.TrimPrefix(httpsrv.URL, "http:")
|
||
|
)
|
||
|
defer srv.Stop()
|
||
|
defer httpsrv.Close()
|
||
|
|
||
|
client, err := DialWebsocket(context.Background(), wsURL, "", logger)
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
defer client.Close()
|
||
|
|
||
|
payload16kb := strings.Repeat("x", 4096*4)
|
||
|
b.ResetTimer()
|
||
|
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
err := client.Call(nil, "test_echo", payload16kb, 5, nil)
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
}
|
||
|
}
|