summaryrefslogtreecommitdiff
path: root/test/e2e/libpod_suite_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'test/e2e/libpod_suite_test.go')
-rw-r--r--test/e2e/libpod_suite_test.go53
1 files changed, 41 insertions, 12 deletions
diff --git a/test/e2e/libpod_suite_test.go b/test/e2e/libpod_suite_test.go
index 2f541244c..c83105325 100644
--- a/test/e2e/libpod_suite_test.go
+++ b/test/e2e/libpod_suite_test.go
@@ -9,6 +9,7 @@ import (
"strings"
"testing"
+ "encoding/json"
"github.com/containers/image/copy"
"github.com/containers/image/signature"
"github.com/containers/image/storage"
@@ -30,17 +31,18 @@ import (
//TODO whats the best way to clean up after a test
var (
- PODMAN_BINARY string
- CONMON_BINARY string
- CNI_CONFIG_DIR string
- RUNC_BINARY string
- INTEGRATION_ROOT string
- STORAGE_OPTIONS = "--storage-driver vfs"
- ARTIFACT_DIR = "/tmp/.artifacts"
- IMAGES = []string{"alpine", "busybox"}
- ALPINE = "docker.io/library/alpine:latest"
- BB_GLIBC = "docker.io/library/busybox:glibc"
- fedoraMinimal = "registry.fedoraproject.org/fedora-minimal:latest"
+ PODMAN_BINARY string
+ CONMON_BINARY string
+ CNI_CONFIG_DIR string
+ RUNC_BINARY string
+ INTEGRATION_ROOT string
+ STORAGE_OPTIONS = "--storage-driver vfs"
+ ARTIFACT_DIR = "/tmp/.artifacts"
+ IMAGES = []string{"alpine", "busybox"}
+ ALPINE = "docker.io/library/alpine:latest"
+ BB_GLIBC = "docker.io/library/busybox:glibc"
+ fedoraMinimal = "registry.fedoraproject.org/fedora-minimal:latest"
+ defaultWaitTimeout = 90
)
// PodmanSession wrapps the gexec.session so we can extend it
@@ -156,7 +158,7 @@ func (p *PodmanTest) Podman(args []string) *PodmanSession {
func (p *PodmanTest) Cleanup() {
// Remove all containers
session := p.Podman([]string{"rm", "-fa"})
- session.Wait()
+ session.Wait(60)
// Nuke tempdir
if err := os.RemoveAll(p.TempDir); err != nil {
fmt.Printf("%q\n", err)
@@ -203,6 +205,22 @@ func (s *PodmanSession) OutputToString() string {
return strings.Join(fields, " ")
}
+// IsJSONOutputValid attempts to unmarshall the session buffer
+// and if successful, returns true, else false
+func (s *PodmanSession) IsJSONOutputValid() bool {
+ var i interface{}
+ if err := json.Unmarshal(s.Out.Contents(), &i); err != nil {
+ fmt.Println(err)
+ fmt.Println(s.OutputToString())
+ return false
+ }
+ return true
+}
+
+func (s *PodmanSession) WaitWithDefaultTimeout() {
+ s.Wait(defaultWaitTimeout)
+}
+
// SystemExec is used to exec a system command to check its exit code or output
func (p *PodmanTest) SystemExec(command string, args []string) *PodmanSession {
c := exec.Command(command, args...)
@@ -306,3 +324,14 @@ func (p *PodmanTest) RestoreAllArtifacts() error {
}
return nil
}
+
+//RunSleepContainer runs a simple container in the background that
+// sleeps. If the name passed != "", it will have a name
+func (p *PodmanTest) RunSleepContainer(name string) *PodmanSession {
+ var podmanArgs = []string{"run"}
+ if name != "" {
+ podmanArgs = append(podmanArgs, "--name", name)
+ }
+ podmanArgs = append(podmanArgs, "-d", ALPINE, "sleep", "90")
+ return p.Podman(podmanArgs)
+}