From 882f4d7e741eb6f0c28dc74431162d5bb4c4c7ca Mon Sep 17 00:00:00 2001 From: Arnaud Porterie Date: Tue, 24 Feb 2015 18:49:08 -0800 Subject: [PATCH] Add FixedCIDRv6 test Signed-off-by: Arnaud Porterie --- .../drivers/bridge/setup_fixedcidrv6.go | 8 +++- .../drivers/bridge/setup_fixedcidrv6_test.go | 37 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 libnetwork/drivers/bridge/setup_fixedcidrv6_test.go diff --git a/libnetwork/drivers/bridge/setup_fixedcidrv6.go b/libnetwork/drivers/bridge/setup_fixedcidrv6.go index bb15cf5880..2e4853a2e8 100644 --- a/libnetwork/drivers/bridge/setup_fixedcidrv6.go +++ b/libnetwork/drivers/bridge/setup_fixedcidrv6.go @@ -1,11 +1,17 @@ package bridge import ( + "fmt" + log "github.com/Sirupsen/logrus" "github.com/docker/docker/daemon/networkdriver/ipallocator" ) func SetupFixedCIDRv6(i *Interface) error { log.Debugf("Using IPv6 subnet: %v", i.Config.FixedCIDRv6) - return ipallocator.RegisterSubnet(i.Config.FixedCIDRv6, i.Config.FixedCIDRv6) + if err := ipallocator.RegisterSubnet(i.Config.FixedCIDRv6, i.Config.FixedCIDRv6); err != nil { + return fmt.Errorf("Setup FixedCIDRv6 failed for subnet %s in %s: %v", i.Config.FixedCIDRv6, i.Config.FixedCIDRv6, err) + } + + return nil } diff --git a/libnetwork/drivers/bridge/setup_fixedcidrv6_test.go b/libnetwork/drivers/bridge/setup_fixedcidrv6_test.go new file mode 100644 index 0000000000..884fdbc416 --- /dev/null +++ b/libnetwork/drivers/bridge/setup_fixedcidrv6_test.go @@ -0,0 +1,37 @@ +package bridge + +import ( + "net" + "testing" + + "github.com/docker/docker/daemon/networkdriver/ipallocator" + "github.com/docker/libnetwork" +) + +func TestSetupFixedCIDRv6(t *testing.T) { + defer libnetwork.SetupTestNetNS(t)() + + br := NewInterface(&Configuration{}) + + _, br.Config.FixedCIDRv6, _ = net.ParseCIDR("2002:db8::/48") + if err := SetupDevice(br); err != nil { + t.Fatalf("Bridge creation failed: %v", err) + } + if err := SetupBridgeIPv4(br); err != nil { + t.Fatalf("Assign IPv4 to bridge failed: %v", err) + } + + if err := SetupBridgeIPv6(br); err != nil { + t.Fatalf("Assign IPv4 to bridge failed: %v", err) + } + + if err := SetupFixedCIDRv6(br); err != nil { + t.Fatalf("Failed to setup bridge FixedCIDRv6: %v", err) + } + + if ip, err := ipallocator.RequestIP(br.Config.FixedCIDRv6, nil); err != nil { + t.Fatalf("Failed to request IP to allocator: %v", err) + } else if expected := "2002:db8::1"; ip.String() != expected { + t.Fatalf("Expected allocated IP %s, got %s", expected, ip) + } +}