diff options
Diffstat (limited to 'test/e2e/common_test.go')
-rw-r--r-- | test/e2e/common_test.go | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/test/e2e/common_test.go b/test/e2e/common_test.go index 59252fcb0..28991af7f 100644 --- a/test/e2e/common_test.go +++ b/test/e2e/common_test.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "math/rand" "net" + "net/url" "os" "os/exec" "path/filepath" @@ -861,9 +862,6 @@ func (p *PodmanTestIntegration) makeOptions(args []string, noEvents, noCache boo podmanOptions := strings.Split(fmt.Sprintf("%s--root %s --runroot %s --runtime %s --conmon %s --network-config-dir %s --cgroup-manager %s --tmpdir %s --events-backend %s", debug, p.Root, p.RunRoot, p.OCIRuntime, p.ConmonBinary, p.NetworkConfigDir, p.CgroupManager, p.TmpDir, eventsType), " ") - if os.Getenv("HOOK_OPTION") != "" { - podmanOptions = append(podmanOptions, os.Getenv("HOOK_OPTION")) - } if !p.RemoteTest { podmanOptions = append(podmanOptions, "--network-backend", p.NetworkBackend.ToString()) @@ -1066,3 +1064,36 @@ func digShort(container, lookupName string, matchNames []string, p *PodmanTestIn } Fail("dns is not responding") } + +// WaitForFile to be created in defaultWaitTimeout seconds, returns false if file not created +func WaitForFile(path string) (err error) { + until := time.Now().Add(time.Duration(defaultWaitTimeout) * time.Second) + for i := 1; time.Now().Before(until); i++ { + _, err = os.Stat(path) + switch { + case err == nil: + return nil + case errors.Is(err, os.ErrNotExist): + time.Sleep(time.Duration(i) * time.Second) + default: + return err + } + } + return err +} + +// WaitForService blocks, waiting for some service listening on given host:port +func WaitForService(address url.URL) { + // Wait for podman to be ready + var conn net.Conn + var err error + for i := 1; i <= 5; i++ { + conn, err = net.Dial("tcp", address.Host) + if err != nil { + // Podman not available yet... + time.Sleep(time.Duration(i) * time.Second) + } + } + Expect(err).ShouldNot(HaveOccurred()) + conn.Close() +} |