Dmitrii Stepanov
e35ad63f2d
The use of network interfaces does not cover cases where it is necessary to use network interfaces to access different subnets. Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
39 lines
900 B
Go
39 lines
900 B
Go
package multinet
|
|
|
|
import (
|
|
"context"
|
|
"net/netip"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestNoSourceIPs(t *testing.T) {
|
|
t.Run("noop balancer", func(t *testing.T) {
|
|
d, err := NewDialer(Config{
|
|
Subnets: []Subnet{
|
|
{
|
|
Prefix: netip.MustParsePrefix("10.11.12.0/24"),
|
|
},
|
|
},
|
|
})
|
|
require.NoError(t, err)
|
|
conn, err := d.DialContext(context.Background(), "tcp", "10.11.12.254:8080")
|
|
require.ErrorIs(t, err, errNoSuitableNodeFound)
|
|
require.Nil(t, conn)
|
|
})
|
|
t.Run("round robin balancer", func(t *testing.T) {
|
|
d, err := NewDialer(Config{
|
|
Subnets: []Subnet{
|
|
{
|
|
Prefix: netip.MustParsePrefix("10.11.12.0/24"),
|
|
},
|
|
},
|
|
Balancer: BalancerTypeRoundRobin,
|
|
})
|
|
require.NoError(t, err)
|
|
conn, err := d.DialContext(context.Background(), "tcp", "10.11.12.254:8080")
|
|
require.ErrorIs(t, err, errNoSuitableNodeFound)
|
|
require.Nil(t, conn)
|
|
})
|
|
}
|