From 7ee8fe86c162331630c7d1e16a28f68b7f8ac143 Mon Sep 17 00:00:00 2001
From: Ed Santiago <santiago@redhat.com>
Date: Tue, 5 Feb 2019 14:08:01 -0700
Subject: e2e tests: sigproxy: fix rare hang condition

The sig-proxy test creates a FIFO, runs podman with actions
that write to it, then tries reading from the FIFO.

Opening a FIFO for read or write blocks until the other end is
opened for the corresponding write/read. If our podman process
fails for any reason, the test's FIFO open will hang forever.

Solution: open with O_NONBLOCK.

Signed-off-by: Ed Santiago <santiago@redhat.com>
---
 test/e2e/run_signal_test.go | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'test')

diff --git a/test/e2e/run_signal_test.go b/test/e2e/run_signal_test.go
index 9be8e7810..51c14602e 100644
--- a/test/e2e/run_signal_test.go
+++ b/test/e2e/run_signal_test.go
@@ -55,7 +55,7 @@ var _ = Describe("Podman run with --sig-proxy", func() {
 
 		_, pid := podmanTest.PodmanPID([]string{"run", "-it", "-v", fmt.Sprintf("%s:/h:Z", udsDir), fedoraMinimal, "bash", "-c", sigCatch})
 
-		uds, _ := os.OpenFile(udsPath, os.O_RDONLY, 0600)
+		uds, _ := os.OpenFile(udsPath, os.O_RDONLY|syscall.O_NONBLOCK, 0600)
 		defer uds.Close()
 
 		// Wait for the script in the container to alert us that it is READY
@@ -73,7 +73,7 @@ var _ = Describe("Podman run with --sig-proxy", func() {
 			}
 			time.Sleep(1 * time.Second)
 			if counter == 15 {
-				os.Exit(1)
+				Fail("Timed out waiting for READY from container")
 			}
 			counter++
 		}
@@ -99,7 +99,7 @@ var _ = Describe("Podman run with --sig-proxy", func() {
 			}
 			time.Sleep(1 * time.Second)
 			if counter == 15 {
-				os.Exit(1)
+				Fail("timed out waiting for FOO from container")
 			}
 			counter++
 		}
-- 
cgit v1.2.3-54-g00ecf