diff options
author | Adrian Reber <areber@redhat.com> | 2019-07-29 11:38:30 +0000 |
---|---|---|
committer | Adrian Reber <areber@redhat.com> | 2019-07-29 14:24:08 +0200 |
commit | 90ffba92e9c931a8b972c2104ad1831b8721fdc7 (patch) | |
tree | 14767789f8172988ce159067e7d4d2ab6a2ada18 /test/e2e/common_test.go | |
parent | 2c98bd5398979109cf3ddc3cbe4e3400b67d74ac (diff) | |
download | podman-90ffba92e9c931a8b972c2104ad1831b8721fdc7.tar.gz podman-90ffba92e9c931a8b972c2104ad1831b8721fdc7.tar.bz2 podman-90ffba92e9c931a8b972c2104ad1831b8721fdc7.zip |
Move random IP code for tests from checkpoint to common
The function to generate random IP addresses during ginkgo tests in
the checkpoint test code is moved to common and all tests using
hardcoded IP addresses have been changed to use random IP addresses to
reduce test errors when running the tests in parallel.
Signed-off-by: Adrian Reber <areber@redhat.com>
Diffstat (limited to 'test/e2e/common_test.go')
-rw-r--r-- | test/e2e/common_test.go | 14 |
1 files changed, 14 insertions, 0 deletions
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 { |