ipams_test.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package drvregistry
  2. import (
  3. "runtime"
  4. "sort"
  5. "testing"
  6. "github.com/docker/docker/libnetwork/ipamapi"
  7. builtinIpam "github.com/docker/docker/libnetwork/ipams/builtin"
  8. nullIpam "github.com/docker/docker/libnetwork/ipams/null"
  9. remoteIpam "github.com/docker/docker/libnetwork/ipams/remote"
  10. "gotest.tools/v3/assert"
  11. is "gotest.tools/v3/assert/cmp"
  12. )
  13. func getNewIPAMs(t *testing.T) *IPAMs {
  14. r := &IPAMs{}
  15. assert.Assert(t, builtinIpam.Register(r))
  16. assert.Assert(t, remoteIpam.Register(r, nil))
  17. assert.Assert(t, nullIpam.Register(r))
  18. return r
  19. }
  20. func TestIPAMs(t *testing.T) {
  21. t.Run("IPAM", func(t *testing.T) {
  22. reg := getNewIPAMs(t)
  23. i, caps := reg.IPAM("default")
  24. assert.Check(t, i != nil)
  25. assert.Check(t, caps != nil)
  26. })
  27. t.Run("WalkIPAMs", func(t *testing.T) {
  28. reg := getNewIPAMs(t)
  29. ipams := make([]string, 0, 2)
  30. reg.WalkIPAMs(func(name string, driver ipamapi.Ipam, cap *ipamapi.Capability) bool {
  31. ipams = append(ipams, name)
  32. return false
  33. })
  34. sort.Strings(ipams)
  35. expected := []string{"default", "null"}
  36. if runtime.GOOS == "windows" {
  37. expected = append(expected, "windows")
  38. }
  39. assert.Check(t, is.DeepEqual(ipams, expected))
  40. })
  41. }