Browse code

Integration test: bridge ip is excluded from the allocator pool

Signed-off-by: Federico Gimenez <fgimenez@coit.es>

Federico Gimenez authored on 2015/10/25 17:36:18
Showing 1 changed files
... ...
@@ -1804,3 +1804,30 @@ func (s *DockerDaemonSuite) TestDaemonStartWithDefalutTlsHost(c *check.C) {
1804 1804
 		c.Fatalf("docker version should return information of server side")
1805 1805
 	}
1806 1806
 }
1807
+
1808
+func (s *DockerDaemonSuite) TestBridgeIPIsExcludedFromAllocatorPool(c *check.C) {
1809
+	defaultNetworkBridge := "docker0"
1810
+	deleteInterface(c, defaultNetworkBridge)
1811
+
1812
+	bridgeIP := "192.169.1.1"
1813
+	bridgeRange := bridgeIP + "/30"
1814
+
1815
+	err := s.d.StartWithBusybox("--bip", bridgeRange)
1816
+	c.Assert(err, check.IsNil)
1817
+	defer s.d.Restart()
1818
+
1819
+	var cont int
1820
+	for {
1821
+		contName := fmt.Sprintf("container%d", cont)
1822
+		_, err = s.d.Cmd("run", "--name", contName, "-d", "busybox", "/bin/sleep", "2")
1823
+		if err != nil {
1824
+			// pool exhausted
1825
+			break
1826
+		}
1827
+		ip, err := s.d.Cmd("inspect", "--format", "'{{.NetworkSettings.IPAddress}}'", contName)
1828
+		c.Assert(err, check.IsNil)
1829
+
1830
+		c.Assert(ip, check.Not(check.Equals), bridgeIP)
1831
+		cont++
1832
+	}
1833
+}