setup_ipv4_test.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package bridge
  2. import (
  3. "net"
  4. "testing"
  5. "github.com/docker/libnetwork/testutils"
  6. "github.com/vishvananda/netlink"
  7. )
  8. func setupTestInterface(t *testing.T) (*networkConfiguration, *bridgeInterface) {
  9. config := &networkConfiguration{
  10. BridgeName: DefaultBridgeName}
  11. br := &bridgeInterface{}
  12. if err := setupDevice(config, br); err != nil {
  13. t.Fatalf("Bridge creation failed: %v", err)
  14. }
  15. return config, br
  16. }
  17. func TestSetupBridgeIPv4Fixed(t *testing.T) {
  18. defer testutils.SetupTestOSContext(t)()
  19. ip, netw, err := net.ParseCIDR("192.168.1.1/24")
  20. if err != nil {
  21. t.Fatalf("Failed to parse bridge IPv4: %v", err)
  22. }
  23. config, br := setupTestInterface(t)
  24. config.AddressIPv4 = &net.IPNet{IP: ip, Mask: netw.Mask}
  25. if err := setupBridgeIPv4(config, br); err != nil {
  26. t.Fatalf("Failed to setup bridge IPv4: %v", err)
  27. }
  28. addrsv4, err := netlink.AddrList(br.Link, netlink.FAMILY_V4)
  29. if err != nil {
  30. t.Fatalf("Failed to list device IPv4 addresses: %v", err)
  31. }
  32. var found bool
  33. for _, addr := range addrsv4 {
  34. if config.AddressIPv4.String() == addr.IPNet.String() {
  35. found = true
  36. break
  37. }
  38. }
  39. if !found {
  40. t.Fatalf("Bridge device does not have requested IPv4 address %v", config.AddressIPv4)
  41. }
  42. }
  43. func TestSetupGatewayIPv4(t *testing.T) {
  44. defer testutils.SetupTestOSContext(t)()
  45. ip, nw, _ := net.ParseCIDR("192.168.0.24/16")
  46. nw.IP = ip
  47. gw := net.ParseIP("192.168.2.254")
  48. config := &networkConfiguration{
  49. BridgeName: DefaultBridgeName,
  50. DefaultGatewayIPv4: gw}
  51. br := &bridgeInterface{bridgeIPv4: nw}
  52. if err := setupGatewayIPv4(config, br); err != nil {
  53. t.Fatalf("Set Default Gateway failed: %v", err)
  54. }
  55. if !gw.Equal(br.gatewayIPv4) {
  56. t.Fatalf("Set Default Gateway failed. Expected %v, Found %v", gw, br.gatewayIPv4)
  57. }
  58. }