mirror of
https://github.com/pomerium/pomerium.git
synced 2025-08-03 16:59:22 +02:00
add tests/benchmarks for http1/http2 tcp tunnels and http1 websockets (#5471)
* add tests/benchmarks for http1/http2 tcp tunnels and http1 websockets testenv: - add new TCP upstream - add websocket functions to HTTP upstream - add https support to mock idp (default on) - add new debug flags -env.bind-address and -env.use-trace-environ to allow changing the default bind address, and enabling otel environment based trace config, respectively * linter pass --------- Co-authored-by: Denis Mishin <dmishin@pomerium.com>
This commit is contained in:
parent
d6b02441b3
commit
08623ef346
12 changed files with 1104 additions and 182 deletions
|
@ -97,8 +97,10 @@ type service struct {
|
|||
impl any
|
||||
}
|
||||
|
||||
func (g *grpcUpstream) Port() values.Value[int] {
|
||||
return g.serverPort
|
||||
func (g *grpcUpstream) Addr() values.Value[string] {
|
||||
return values.Bind(g.serverPort, func(port int) string {
|
||||
return fmt.Sprintf("%s:%d", g.Env().Host(), port)
|
||||
})
|
||||
}
|
||||
|
||||
// RegisterService implements grpc.ServiceRegistrar.
|
||||
|
@ -117,7 +119,7 @@ func (g *grpcUpstream) Route() testenv.RouteStub {
|
|||
protocol = "https"
|
||||
}
|
||||
r.To(values.Bind(g.serverPort, func(port int) string {
|
||||
return fmt.Sprintf("%s://127.0.0.1:%d", protocol, port)
|
||||
return fmt.Sprintf("%s://%s:%d", protocol, g.Env().Host(), port)
|
||||
}))
|
||||
g.Add(r)
|
||||
return r
|
||||
|
@ -125,7 +127,7 @@ func (g *grpcUpstream) Route() testenv.RouteStub {
|
|||
|
||||
// Start implements testenv.Upstream.
|
||||
func (g *grpcUpstream) Run(ctx context.Context) error {
|
||||
listener, err := net.Listen("tcp", "127.0.0.1:0")
|
||||
listener, err := net.Listen("tcp", fmt.Sprintf("%s:0", g.Env().Host()))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -187,7 +189,7 @@ func (g *grpcUpstream) Dial(r testenv.Route, dialOpts ...grpc.DialOption) *grpc.
|
|||
}
|
||||
|
||||
func (g *grpcUpstream) DirectConnect(dialOpts ...grpc.DialOption) *grpc.ClientConn {
|
||||
cc, err := grpc.NewClient(fmt.Sprintf("127.0.0.1:%d", g.Port().Value()),
|
||||
cc, err := grpc.NewClient(g.Addr().Value(),
|
||||
append(g.withDefaultDialOpts(dialOpts), grpc.WithTransportCredentials(insecure.NewCredentials()))...)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue