TestLBClientTransportAccessorsAndOverrides() — fiber Function Reference
Architecture documentation for the TestLBClientTransportAccessorsAndOverrides() function in transport_test.go from the fiber codebase.
Entity Profile
Dependency Diagram
graph TD f706e35a_f221_4d47_70ec_b43d07d4fce6["TestLBClientTransportAccessorsAndOverrides()"] b137f470_30b5_d002_b6e6_5173073c07e3["transport_test.go"] f706e35a_f221_4d47_70ec_b43d07d4fce6 -->|defined in| b137f470_30b5_d002_b6e6_5173073c07e3 style f706e35a_f221_4d47_70ec_b43d07d4fce6 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
client/transport_test.go lines 143–211
func TestLBClientTransportAccessorsAndOverrides(t *testing.T) {
t.Parallel()
hostWithoutOverrides := &fasthttp.HostClient{Addr: "example.com:80"}
nestedDialHost := &fasthttp.HostClient{Addr: "example.org:80"}
nestedTLSHost := &fasthttp.HostClient{Addr: "example.net:80", TLSConfig: &tls.Config{ServerName: "example", MinVersion: tls.VersionTLS12}}
multiLevelHost := &fasthttp.HostClient{Addr: "example.edu:80"}
nestedDialHost.Dial = func(addr string) (net.Conn, error) {
_ = addr
return nil, errors.New("original dial")
}
multiLevelHost.Dial = func(addr string) (net.Conn, error) {
_ = addr
return nil, errors.New("multi-level dial")
}
nestedDialLB := &lbBalancingClient{client: &fasthttp.LBClient{Clients: []fasthttp.BalancingClient{nestedDialHost}}}
nestedTLSLB := &lbBalancingClient{client: &fasthttp.LBClient{Clients: []fasthttp.BalancingClient{nestedTLSHost}}}
multiLevelLeaf := &lbBalancingClient{client: &fasthttp.LBClient{Clients: []fasthttp.BalancingClient{multiLevelHost}}}
multiLevelWrapper := &lbBalancingClient{client: &fasthttp.LBClient{Clients: []fasthttp.BalancingClient{multiLevelLeaf}}}
lb := &fasthttp.LBClient{Clients: []fasthttp.BalancingClient{
stubBalancingClient{},
hostWithoutOverrides,
nestedDialLB,
nestedTLSLB,
multiLevelWrapper,
}}
transport := newLBClientTransport(lb)
require.Same(t, lb, transport.Client())
cfg := transport.TLSConfig()
require.Same(t, nestedTLSHost.TLSConfig, cfg)
overrideTLS := &tls.Config{ServerName: "override", MinVersion: tls.VersionTLS12}
transport.SetTLSConfig(overrideTLS)
require.Equal(t, overrideTLS, hostWithoutOverrides.TLSConfig)
require.Equal(t, overrideTLS, nestedDialHost.TLSConfig)
require.Equal(t, overrideTLS, nestedTLSHost.TLSConfig)
require.Equal(t, overrideTLS, multiLevelHost.TLSConfig)
cfg = transport.TLSConfig()
require.Same(t, overrideTLS, cfg)
cfg.ServerName = "mutated"
require.Equal(t, "mutated", transport.TLSConfig().ServerName)
overrideDialCalled := atomic.Bool{}
overrideDial := func(addr string) (net.Conn, error) {
_ = addr
overrideDialCalled.Store(true)
return nil, errors.New("override dial")
}
transport.SetDial(overrideDial)
overrideDialCalled.Store(false)
_, err := hostWithoutOverrides.Dial("example.com:80")
require.Error(t, err)
require.True(t, overrideDialCalled.Load())
overrideDialCalled.Store(false)
_, err = nestedDialHost.Dial("example.org:80")
require.Error(t, err)
require.True(t, overrideDialCalled.Load())
overrideDialCalled.Store(false)
_, err = multiLevelHost.Dial("example.edu:80")
require.Error(t, err)
require.True(t, overrideDialCalled.Load())
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does TestLBClientTransportAccessorsAndOverrides() do?
TestLBClientTransportAccessorsAndOverrides() is a function in the fiber codebase, defined in client/transport_test.go.
Where is TestLBClientTransportAccessorsAndOverrides() defined?
TestLBClientTransportAccessorsAndOverrides() is defined in client/transport_test.go at line 143.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free