summaryrefslogtreecommitdiff
path: root/test/e2e/attach_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'test/e2e/attach_test.go')
-rw-r--r--test/e2e/attach_test.go57
1 files changed, 54 insertions, 3 deletions
diff --git a/test/e2e/attach_test.go b/test/e2e/attach_test.go
index 42866d5a1..a843fe7ff 100644
--- a/test/e2e/attach_test.go
+++ b/test/e2e/attach_test.go
@@ -3,8 +3,9 @@
package integration
import (
- "fmt"
"os"
+ "syscall"
+ "time"
. "github.com/containers/libpod/test/utils"
. "github.com/onsi/ginkgo"
@@ -24,14 +25,14 @@ var _ = Describe("Podman attach", func() {
os.Exit(1)
}
podmanTest = PodmanTestCreate(tempdir)
+ podmanTest.Setup()
podmanTest.RestoreAllArtifacts()
})
AfterEach(func() {
podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
- timedResult := fmt.Sprintf("Test: %s completed in %f seconds", f.TestText, f.Duration.Seconds())
- GinkgoWriter.Write([]byte(timedResult))
+ processTestResult(f)
})
@@ -51,6 +52,16 @@ var _ = Describe("Podman attach", func() {
Expect(results.ExitCode()).To(Equal(125))
})
+ It("podman container attach to non-running container", func() {
+ session := podmanTest.Podman([]string{"container", "create", "--name", "test1", "-d", "-i", ALPINE, "ls"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+
+ results := podmanTest.Podman([]string{"container", "attach", "test1"})
+ results.WaitWithDefaultTimeout()
+ Expect(results.ExitCode()).To(Equal(125))
+ })
+
It("podman attach to multiple containers", func() {
session := podmanTest.RunTopContainer("test1")
session.WaitWithDefaultTimeout()
@@ -64,4 +75,44 @@ var _ = Describe("Podman attach", func() {
results.WaitWithDefaultTimeout()
Expect(results.ExitCode()).To(Equal(125))
})
+
+ It("podman attach to a running container", func() {
+ session := podmanTest.Podman([]string{"run", "-d", "--name", "test", ALPINE, "/bin/sh", "-c", "while true; do echo test; sleep 1; done"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+
+ results := podmanTest.Podman([]string{"attach", "test"})
+ time.Sleep(2 * time.Second)
+ results.Signal(syscall.SIGTSTP)
+ Expect(results.OutputToString()).To(ContainSubstring("test"))
+ Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1))
+ })
+ It("podman attach to the latest container", func() {
+ session := podmanTest.Podman([]string{"run", "-d", "--name", "test1", ALPINE, "/bin/sh", "-c", "while true; do echo test1; sleep 1; done"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+
+ session = podmanTest.Podman([]string{"run", "-d", "--name", "test2", ALPINE, "/bin/sh", "-c", "while true; do echo test2; sleep 1; done"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+
+ results := podmanTest.Podman([]string{"attach", "-l"})
+ time.Sleep(2 * time.Second)
+ results.Signal(syscall.SIGTSTP)
+ Expect(results.OutputToString()).To(ContainSubstring("test2"))
+ Expect(podmanTest.NumberOfContainersRunning()).To(Equal(2))
+ })
+
+ It("podman attach to a container with --sig-proxy set to false", func() {
+ session := podmanTest.Podman([]string{"run", "-d", "--name", "test", ALPINE, "/bin/sh", "-c", "while true; do echo test; sleep 1; done"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+
+ results := podmanTest.Podman([]string{"attach", "--sig-proxy=false", "test"})
+ time.Sleep(2 * time.Second)
+ results.Signal(syscall.SIGTERM)
+ results.WaitWithDefaultTimeout()
+ Expect(results.OutputToString()).To(ContainSubstring("test"))
+ Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1))
+ })
})