diff options
-rw-r--r-- | test/e2e/checkpoint_test.go | 9 | ||||
-rw-r--r-- | test/e2e/common_test.go | 14 | ||||
-rw-r--r-- | test/e2e/create_staticip_test.go | 10 | ||||
-rw-r--r-- | test/e2e/run_staticip_test.go | 10 |
4 files changed, 27 insertions, 16 deletions
diff --git a/test/e2e/checkpoint_test.go b/test/e2e/checkpoint_test.go index b77c48c8e..8f3cf5c10 100644 --- a/test/e2e/checkpoint_test.go +++ b/test/e2e/checkpoint_test.go @@ -3,12 +3,9 @@ package integration import ( - "math/rand" "net" "os" "os/exec" - "strconv" - "time" "github.com/containers/libpod/pkg/criu" . "github.com/containers/libpod/test/utils" @@ -17,12 +14,8 @@ import ( ) func getRunString(input []string) []string { - // To avoid IP collisions of initialize random seed for random IP addresses - rand.Seed(time.Now().UnixNano()) - ip3 := strconv.Itoa(rand.Intn(230) + GinkgoParallelNode()) - ip4 := strconv.Itoa(rand.Intn(230) + GinkgoParallelNode()) // CRIU does not work with seccomp correctly on RHEL7 : seccomp=unconfined - runString := []string{"run", "-it", "--security-opt", "seccomp=unconfined", "-d", "--ip", "10.88." + ip3 + "." + ip4} + runString := []string{"run", "-it", "--security-opt", "seccomp=unconfined", "-d", "--ip", GetRandomIPAddress()} return append(runString, input...) } diff --git a/test/e2e/common_test.go b/test/e2e/common_test.go index 7e14f9e06..22eb94972 100644 --- a/test/e2e/common_test.go +++ b/test/e2e/common_test.go @@ -4,10 +4,12 @@ import ( "encoding/json" "fmt" "io/ioutil" + "math/rand" "os" "os/exec" "path/filepath" "sort" + "strconv" "strings" "testing" "time" @@ -339,6 +341,18 @@ func GetPortLock(port string) storage.Locker { return lock } +// GetRandomIPAddress returns a random IP address to avoid IP +// collisions during parallel tests +func GetRandomIPAddress() string { + // To avoid IP collisions of initialize random seed for random IP addresses + rand.Seed(time.Now().UnixNano()) + // Add GinkgoParallelNode() on top of the IP address + // in case of the same random seed + ip3 := strconv.Itoa(rand.Intn(230) + GinkgoParallelNode()) + ip4 := strconv.Itoa(rand.Intn(230) + GinkgoParallelNode()) + return "10.88." + ip3 + "." + ip4 +} + // RunTopContainer runs a simple container in the background that // runs top. If the name passed != "", it will have a name func (p *PodmanTestIntegration) RunTopContainer(name string) *PodmanSessionIntegration { diff --git a/test/e2e/create_staticip_test.go b/test/e2e/create_staticip_test.go index 11301856b..709e56665 100644 --- a/test/e2e/create_staticip_test.go +++ b/test/e2e/create_staticip_test.go @@ -60,7 +60,8 @@ var _ = Describe("Podman create with --ip flag", func() { }) It("Podman create with specified static IP has correct IP", func() { - result := podmanTest.Podman([]string{"create", "--name", "test", "--ip", "10.88.64.128", ALPINE, "ip", "addr"}) + ip := GetRandomIPAddress() + result := podmanTest.Podman([]string{"create", "--name", "test", "--ip", ip, ALPINE, "ip", "addr"}) result.WaitWithDefaultTimeout() Expect(result.ExitCode()).To(Equal(0)) @@ -71,14 +72,15 @@ var _ = Describe("Podman create with --ip flag", func() { result = podmanTest.Podman([]string{"logs", "test"}) result.WaitWithDefaultTimeout() Expect(result.ExitCode()).To(Equal(0)) - Expect(result.OutputToString()).To(ContainSubstring("10.88.64.128/16")) + Expect(result.OutputToString()).To(ContainSubstring(ip + "/16")) }) It("Podman create two containers with the same IP", func() { - result := podmanTest.Podman([]string{"create", "--name", "test1", "--ip", "10.88.64.128", ALPINE, "sleep", "999"}) + ip := GetRandomIPAddress() + result := podmanTest.Podman([]string{"create", "--name", "test1", "--ip", ip, ALPINE, "sleep", "999"}) result.WaitWithDefaultTimeout() Expect(result.ExitCode()).To(Equal(0)) - result = podmanTest.Podman([]string{"create", "--name", "test2", "--ip", "10.88.64.128", ALPINE, "ip", "addr"}) + result = podmanTest.Podman([]string{"create", "--name", "test2", "--ip", ip, ALPINE, "ip", "addr"}) result.WaitWithDefaultTimeout() Expect(result.ExitCode()).To(Equal(0)) result = podmanTest.Podman([]string{"start", "test1"}) diff --git a/test/e2e/run_staticip_test.go b/test/e2e/run_staticip_test.go index b9698cdd9..7a877ebdc 100644 --- a/test/e2e/run_staticip_test.go +++ b/test/e2e/run_staticip_test.go @@ -56,17 +56,19 @@ var _ = Describe("Podman run with --ip flag", func() { }) It("Podman run with specified static IP has correct IP", func() { - result := podmanTest.Podman([]string{"run", "-ti", "--ip", "10.88.63.2", ALPINE, "ip", "addr"}) + ip := GetRandomIPAddress() + result := podmanTest.Podman([]string{"run", "-ti", "--ip", ip, ALPINE, "ip", "addr"}) result.WaitWithDefaultTimeout() Expect(result.ExitCode()).To(Equal(0)) - Expect(result.OutputToString()).To(ContainSubstring("10.88.63.2/16")) + Expect(result.OutputToString()).To(ContainSubstring(ip + "/16")) }) It("Podman run two containers with the same IP", func() { - result := podmanTest.Podman([]string{"run", "-d", "--ip", "10.88.64.128", ALPINE, "sleep", "999"}) + ip := GetRandomIPAddress() + result := podmanTest.Podman([]string{"run", "-d", "--ip", ip, ALPINE, "sleep", "999"}) result.WaitWithDefaultTimeout() Expect(result.ExitCode()).To(Equal(0)) - result = podmanTest.Podman([]string{"run", "-ti", "--ip", "10.88.64.128", ALPINE, "ip", "addr"}) + result = podmanTest.Podman([]string{"run", "-ti", "--ip", ip, ALPINE, "ip", "addr"}) result.WaitWithDefaultTimeout() Expect(result.ExitCode()).ToNot(Equal(0)) }) |