service_common_test.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package libnetwork
  2. import (
  3. "net"
  4. "runtime"
  5. "testing"
  6. "github.com/docker/docker/internal/testutils/netnsutils"
  7. "gotest.tools/v3/assert"
  8. "gotest.tools/v3/skip"
  9. )
  10. func TestCleanupServiceDiscovery(t *testing.T) {
  11. skip.If(t, runtime.GOOS == "windows", "test only works on linux")
  12. defer netnsutils.SetupTestOSContext(t)()
  13. c, err := New()
  14. assert.NilError(t, err)
  15. defer c.Stop()
  16. cleanup := func(n *Network) {
  17. if err := n.Delete(); err != nil {
  18. t.Error(err)
  19. }
  20. }
  21. n1, err := c.NewNetwork("bridge", "net1", "", nil)
  22. assert.NilError(t, err)
  23. defer cleanup(n1)
  24. n2, err := c.NewNetwork("bridge", "net2", "", nil)
  25. assert.NilError(t, err)
  26. defer cleanup(n2)
  27. n1.addSvcRecords("N1ep1", "service_test", "serviceID1", net.ParseIP("192.168.0.1"), net.IP{}, true, "test")
  28. n1.addSvcRecords("N2ep2", "service_test", "serviceID2", net.ParseIP("192.168.0.2"), net.IP{}, true, "test")
  29. n2.addSvcRecords("N2ep1", "service_test", "serviceID1", net.ParseIP("192.168.1.1"), net.IP{}, true, "test")
  30. n2.addSvcRecords("N2ep2", "service_test", "serviceID2", net.ParseIP("192.168.1.2"), net.IP{}, true, "test")
  31. if len(c.svcRecords) != 2 {
  32. t.Fatalf("Service record not added correctly:%v", c.svcRecords)
  33. }
  34. // cleanup net1
  35. c.cleanupServiceDiscovery(n1.ID())
  36. if len(c.svcRecords) != 1 {
  37. t.Fatalf("Service record not cleaned correctly:%v", c.svcRecords)
  38. }
  39. c.cleanupServiceDiscovery("")
  40. if len(c.svcRecords) != 0 {
  41. t.Fatalf("Service record not cleaned correctly:%v", c.svcRecords)
  42. }
  43. }