123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- //go:build windows
- package windows
- import (
- "net"
- "testing"
- "github.com/docker/docker/libnetwork/driverapi"
- "github.com/docker/docker/libnetwork/netlabel"
- "github.com/docker/docker/libnetwork/types"
- )
- func testNetwork(networkType string, t *testing.T) {
- d := newDriver(networkType)
- bnw, _ := types.ParseCIDR("172.16.0.0/24")
- br, _ := types.ParseCIDR("172.16.0.1/16")
- netOption := make(map[string]interface{})
- networkOptions := map[string]string{
- NetworkName: "TestNetwork",
- }
- netOption[netlabel.GenericData] = networkOptions
- ipdList := []driverapi.IPAMData{
- {
- Pool: bnw,
- Gateway: br,
- },
- }
- err := d.CreateNetwork("dummy", netOption, nil, ipdList, nil)
- if err != nil {
- t.Fatalf("Failed to create bridge: %v", err)
- }
- defer func() {
- err = d.DeleteNetwork("dummy")
- if err != nil {
- t.Fatalf("Failed to create bridge: %v", err)
- }
- }()
- epOptions := make(map[string]interface{})
- te := &testEndpoint{}
- err = d.CreateEndpoint("dummy", "ep1", te.Interface(), epOptions)
- if err != nil {
- t.Fatalf("Failed to create an endpoint : %s", err.Error())
- }
- err = d.DeleteEndpoint("dummy", "ep1")
- if err != nil {
- t.Fatalf("Failed to delete an endpoint : %s", err.Error())
- }
- }
- func TestNAT(t *testing.T) {
- t.Skip("Test does not work on CI and was never running to begin with")
- testNetwork("nat", t)
- }
- func TestTransparent(t *testing.T) {
- t.Skip("Test does not work on CI and was never running to begin with")
- testNetwork("transparent", t)
- }
- type testEndpoint struct {
- t *testing.T
- src string
- dst string
- address string
- macAddress string
- gateway string
- disableGatewayService bool
- }
- func (test *testEndpoint) Interface() driverapi.InterfaceInfo {
- return test
- }
- func (test *testEndpoint) Address() *net.IPNet {
- if test.address == "" {
- return nil
- }
- nw, _ := types.ParseCIDR(test.address)
- return nw
- }
- func (test *testEndpoint) AddressIPv6() *net.IPNet {
- return nil
- }
- func (test *testEndpoint) MacAddress() net.HardwareAddr {
- if test.macAddress == "" {
- return nil
- }
- mac, _ := net.ParseMAC(test.macAddress)
- return mac
- }
- func (test *testEndpoint) SetMacAddress(mac net.HardwareAddr) error {
- if test.macAddress != "" {
- return types.ForbiddenErrorf("endpoint interface MAC address present (%s). Cannot be modified with %s.", test.macAddress, mac)
- }
- if mac == nil {
- return types.InvalidParameterErrorf("tried to set nil MAC address to endpoint interface")
- }
- test.macAddress = mac.String()
- return nil
- }
- func (test *testEndpoint) SetIPAddress(address *net.IPNet) error {
- if address.IP == nil {
- return types.InvalidParameterErrorf("tried to set nil IP address to endpoint interface")
- }
- test.address = address.String()
- return nil
- }
- func (test *testEndpoint) InterfaceName() driverapi.InterfaceNameInfo {
- return test
- }
- func (test *testEndpoint) SetGateway(ipv4 net.IP) error {
- return nil
- }
- func (test *testEndpoint) SetGatewayIPv6(ipv6 net.IP) error {
- return nil
- }
- func (test *testEndpoint) SetNames(src string, dst string) error {
- return nil
- }
- func (test *testEndpoint) AddStaticRoute(destination *net.IPNet, routeType int, nextHop net.IP) error {
- return nil
- }
- func (test *testEndpoint) DisableGatewayService() {
- test.disableGatewayService = true
- }
|