summaryrefslogtreecommitdiff
path: root/test/e2e/checkpoint_test.go
diff options
context:
space:
mode:
authorChris Evich <cevich@redhat.com>2021-10-14 14:32:20 -0400
committerChris Evich <cevich@redhat.com>2021-10-14 15:47:45 -0400
commitc1497cf44f466d3093c8ab29e7c0c48ad3c2f9e4 (patch)
tree99b888322c5dab6d67f5e6f3819d2ee2c88d6e06 /test/e2e/checkpoint_test.go
parent8d44c548c085c65cae33398b322eabadb6b237f7 (diff)
downloadpodman-c1497cf44f466d3093c8ab29e7c0c48ad3c2f9e4.tar.gz
podman-c1497cf44f466d3093c8ab29e7c0c48ad3c2f9e4.tar.bz2
podman-c1497cf44f466d3093c8ab29e7c0c48ad3c2f9e4.zip
Test-hang fix: Wait for ready + timeout on connect.
It was observed during initial F35 testing, this test can cause Ginkgo to "hang" by attempting to connect before the redis is up/listening. Fix this by confirming the ready-state before attempting to connect. Also, force IPv4 and timeout on any connection fault - to allow other tests to run. Thanks to Adrian Reber for help on this and related fixes. Signed-off-by: Chris Evich <cevich@redhat.com>
Diffstat (limited to 'test/e2e/checkpoint_test.go')
-rw-r--r--test/e2e/checkpoint_test.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/test/e2e/checkpoint_test.go b/test/e2e/checkpoint_test.go
index 73ca5e1a6..db8029878 100644
--- a/test/e2e/checkpoint_test.go
+++ b/test/e2e/checkpoint_test.go
@@ -6,6 +6,7 @@ import (
"os"
"os/exec"
"strings"
+ "time"
"github.com/containers/podman/v3/pkg/checkpoint/crutils"
"github.com/containers/podman/v3/pkg/criu"
@@ -247,16 +248,19 @@ var _ = Describe("Podman checkpoint", func() {
session := podmanTest.Podman(localRunString)
session.WaitWithDefaultTimeout()
Expect(session).Should(Exit(0))
+ cid := session.OutputToString()
+ if !WaitContainerReady(podmanTest, cid, "Ready to accept connections", 20, 1) {
+ Fail("Container failed to get ready")
+ }
IP := podmanTest.Podman([]string{"inspect", "-l", "--format={{.NetworkSettings.IPAddress}}"})
IP.WaitWithDefaultTimeout()
Expect(IP).Should(Exit(0))
// Open a network connection to the redis server
- conn, err := net.Dial("tcp", IP.OutputToString()+":6379")
- if err != nil {
- os.Exit(1)
- }
+ conn, err := net.DialTimeout("tcp4", IP.OutputToString()+":6379", time.Duration(3)*time.Second)
+ Expect(err).To(BeNil())
+
// This should fail as the container has established TCP connections
result := podmanTest.Podman([]string{"container", "checkpoint", "-l"})
result.WaitWithDefaultTimeout()