| package drvregistry |
| |
| import ( |
| "runtime" |
| "sort" |
| "testing" |
| |
| "github.com/docker/docker/libnetwork/ipamapi" |
| builtinIpam "github.com/docker/docker/libnetwork/ipams/builtin" |
| nullIpam "github.com/docker/docker/libnetwork/ipams/null" |
| remoteIpam "github.com/docker/docker/libnetwork/ipams/remote" |
| "gotest.tools/v3/assert" |
| is "gotest.tools/v3/assert/cmp" |
| ) |
| |
| func getNewIPAMs(t *testing.T) *IPAMs { |
| r := &IPAMs{} |
| |
| assert.Assert(t, builtinIpam.Register(r)) |
| assert.Assert(t, remoteIpam.Register(r, nil)) |
| assert.Assert(t, nullIpam.Register(r)) |
| |
| return r |
| } |
| |
| func TestIPAMs(t *testing.T) { |
| t.Run("IPAM", func(t *testing.T) { |
| reg := getNewIPAMs(t) |
| |
| i, caps := reg.IPAM("default") |
| assert.Check(t, i != nil) |
| assert.Check(t, caps != nil) |
| }) |
| |
| t.Run("WalkIPAMs", func(t *testing.T) { |
| reg := getNewIPAMs(t) |
| |
| ipams := make([]string, 0, 2) |
| reg.WalkIPAMs(func(name string, driver ipamapi.Ipam, cap *ipamapi.Capability) bool { |
| ipams = append(ipams, name) |
| return false |
| }) |
| |
| sort.Strings(ipams) |
| expected := []string{"default", "null"} |
| if runtime.GOOS == "windows" { |
| expected = append(expected, "windows") |
| } |
| assert.Check(t, is.DeepEqual(ipams, expected)) |
| }) |
| } |