diff options
author | Matthew Heon <matthew.heon@gmail.com> | 2018-03-13 15:12:52 -0400 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-03-15 17:45:11 +0000 |
commit | 4739fc2d98baf0ccfc46ae3ef770243bbdcea47a (patch) | |
tree | a8f09264dbad665e71e1c88a87193def7b3755f6 | |
parent | 02a26c2934eea13799ae950827df54ec995312bc (diff) | |
download | podman-4739fc2d98baf0ccfc46ae3ef770243bbdcea47a.tar.gz podman-4739fc2d98baf0ccfc46ae3ef770243bbdcea47a.tar.bz2 podman-4739fc2d98baf0ccfc46ae3ef770243bbdcea47a.zip |
Add test. Move attach code in start back
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
Closes: #482
Approved by: baude
-rw-r--r-- | cmd/podman/start.go | 20 | ||||
-rw-r--r-- | test/e2e/run_restart_test.go | 39 |
2 files changed, 49 insertions, 10 deletions
diff --git a/cmd/podman/start.go b/cmd/podman/start.go index 243fe71e2..5053abc07 100644 --- a/cmd/podman/start.go +++ b/cmd/podman/start.go @@ -104,18 +104,8 @@ func startCmd(c *cli.Context) error { if err != nil { return errors.Wrapf(err, "unable to parse annotations in %s", ctr.ID()) } - err = ctr.Start() - if err != nil { - if lastError != nil { - fmt.Fprintln(os.Stderr, lastError) - } - lastError = errors.Wrapf(err, "unable to start %s", container) - continue - } // We only get a terminal session if both a tty was specified in the spec and // -a on the command-line was given. - // Must be done after Start() because we might be restarting - // If so, the attach socket might be removed & recreated if attach && tty { // We increment the wg counter because we need to do the attach wg.Add(1) @@ -131,6 +121,14 @@ func startCmd(c *cli.Context) error { return errors.Errorf("unable to attach to container %s", ctr.ID()) } } + err = ctr.Start() + if err != nil { + if lastError != nil { + fmt.Fprintln(os.Stderr, lastError) + } + lastError = errors.Wrapf(err, "unable to start %s", container) + continue + } if !attach { fmt.Println(ctr.ID()) } @@ -147,6 +145,8 @@ func startCmd(c *cli.Context) error { // Otherwise the container is probably still running if attach && tty { lastError = ctr.Cleanup() + // No need for LastError as we can only have one ctr + // with attach } } return lastError diff --git a/test/e2e/run_restart_test.go b/test/e2e/run_restart_test.go new file mode 100644 index 000000000..8737cf4f8 --- /dev/null +++ b/test/e2e/run_restart_test.go @@ -0,0 +1,39 @@ +package integration + +import ( + "os" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +var _ = Describe("Podman run restart containers", func() { + var ( + tempdir string + err error + podmanTest PodmanTest + ) + + BeforeEach(func() { + tempdir, err = CreateTempDirInTempDir() + if err != nil { + os.Exit(1) + } + podmanTest = PodmanCreate(tempdir) + podmanTest.RestoreAllArtifacts() + }) + + AfterEach(func() { + podmanTest.Cleanup() + }) + + It("Podman start after successful run", func() { + session := podmanTest.Podman([]string{"run", ALPINE, "ls"}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + + session2 := podmanTest.Podman([]string{"start", "--attach", "--latest"}) + session2.WaitWithDefaultTimeout() + Expect(session2.ExitCode()).To(Equal(0)) + }) +}) |