summaryrefslogtreecommitdiff
path: root/test/e2e/common_test.go
diff options
context:
space:
mode:
authorAdrian Reber <areber@redhat.com>2019-07-29 11:38:30 +0000
committerAdrian Reber <areber@redhat.com>2019-07-29 14:24:08 +0200
commit90ffba92e9c931a8b972c2104ad1831b8721fdc7 (patch)
tree14767789f8172988ce159067e7d4d2ab6a2ada18 /test/e2e/common_test.go
parent2c98bd5398979109cf3ddc3cbe4e3400b67d74ac (diff)
downloadpodman-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.go14
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 {