mirror of
https://github.com/containers/podman
synced 2024-10-19 08:44:11 +00:00
15345ce4c3
Detached containers and detach keys are only created with the podman run, i exec, and start commands. We do not store the detach key sequence or the detach flags in the database, nor does Docker. The current code was ignoreing these fields but documenting that they can be used. Fix podman create man page and --help output to no longer indicate that --detach and --detach-keys works. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
131 lines
4.4 KiB
Go
131 lines
4.4 KiB
Go
package integration
|
|
|
|
import (
|
|
"os"
|
|
|
|
. "github.com/containers/podman/v2/test/utils"
|
|
. "github.com/onsi/ginkgo"
|
|
. "github.com/onsi/gomega"
|
|
)
|
|
|
|
var _ = Describe("Podman init", func() {
|
|
var (
|
|
tempdir string
|
|
err error
|
|
podmanTest *PodmanTestIntegration
|
|
)
|
|
|
|
BeforeEach(func() {
|
|
tempdir, err = CreateTempDirInTempDir()
|
|
if err != nil {
|
|
os.Exit(1)
|
|
}
|
|
podmanTest = PodmanTestCreate(tempdir)
|
|
podmanTest.Setup()
|
|
podmanTest.SeedImages()
|
|
})
|
|
|
|
AfterEach(func() {
|
|
podmanTest.Cleanup()
|
|
f := CurrentGinkgoTestDescription()
|
|
processTestResult(f)
|
|
|
|
})
|
|
|
|
It("podman init bogus container", func() {
|
|
session := podmanTest.Podman([]string{"start", "123456"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session.ExitCode()).To(Equal(125))
|
|
})
|
|
|
|
It("podman init with no arguments", func() {
|
|
session := podmanTest.Podman([]string{"start"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session.ExitCode()).To(Equal(125))
|
|
})
|
|
|
|
It("podman init single container by ID", func() {
|
|
session := podmanTest.Podman([]string{"create", ALPINE, "ls"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session.ExitCode()).To(Equal(0))
|
|
cid := session.OutputToString()
|
|
init := podmanTest.Podman([]string{"init", cid})
|
|
init.WaitWithDefaultTimeout()
|
|
Expect(init.ExitCode()).To(Equal(0))
|
|
result := podmanTest.Podman([]string{"inspect", cid})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).To(Equal(0))
|
|
conData := result.InspectContainerToJSON()
|
|
Expect(conData[0].State.Status).To(Equal("created"))
|
|
})
|
|
|
|
It("podman init single container by name", func() {
|
|
name := "test1"
|
|
session := podmanTest.Podman([]string{"create", "--name", name, ALPINE, "ls"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session.ExitCode()).To(Equal(0))
|
|
init := podmanTest.Podman([]string{"init", name})
|
|
init.WaitWithDefaultTimeout()
|
|
Expect(init.ExitCode()).To(Equal(0))
|
|
result := podmanTest.Podman([]string{"inspect", name})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).To(Equal(0))
|
|
conData := result.InspectContainerToJSON()
|
|
Expect(conData[0].State.Status).To(Equal("created"))
|
|
})
|
|
|
|
It("podman init latest container", func() {
|
|
SkipIfRemote("--latest flag n/a")
|
|
session := podmanTest.Podman([]string{"create", ALPINE, "ls"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session.ExitCode()).To(Equal(0))
|
|
init := podmanTest.Podman([]string{"init", "--latest"})
|
|
init.WaitWithDefaultTimeout()
|
|
Expect(init.ExitCode()).To(Equal(0))
|
|
result := podmanTest.Podman([]string{"inspect", "--latest"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).To(Equal(0))
|
|
conData := result.InspectContainerToJSON()
|
|
Expect(conData[0].State.Status).To(Equal("created"))
|
|
})
|
|
|
|
It("podman init all three containers, one running", func() {
|
|
session := podmanTest.Podman([]string{"create", "--name", "test1", ALPINE, "ls"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session.ExitCode()).To(Equal(0))
|
|
session2 := podmanTest.Podman([]string{"create", "--name", "test2", ALPINE, "ls"})
|
|
session2.WaitWithDefaultTimeout()
|
|
Expect(session2.ExitCode()).To(Equal(0))
|
|
session3 := podmanTest.Podman([]string{"run", "--name", "test3", "-d", ALPINE, "top"})
|
|
session3.WaitWithDefaultTimeout()
|
|
Expect(session3.ExitCode()).To(Equal(0))
|
|
init := podmanTest.Podman([]string{"init", "--all"})
|
|
init.WaitWithDefaultTimeout()
|
|
Expect(init.ExitCode()).To(Equal(0))
|
|
result := podmanTest.Podman([]string{"inspect", "test1"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).To(Equal(0))
|
|
conData := result.InspectContainerToJSON()
|
|
Expect(conData[0].State.Status).To(Equal("created"))
|
|
result2 := podmanTest.Podman([]string{"inspect", "test2"})
|
|
result2.WaitWithDefaultTimeout()
|
|
Expect(result2.ExitCode()).To(Equal(0))
|
|
conData2 := result2.InspectContainerToJSON()
|
|
Expect(conData2[0].State.Status).To(Equal("created"))
|
|
result3 := podmanTest.Podman([]string{"inspect", "test3"})
|
|
result3.WaitWithDefaultTimeout()
|
|
Expect(result3.ExitCode()).To(Equal(0))
|
|
conData3 := result3.InspectContainerToJSON()
|
|
Expect(conData3[0].State.Status).To(Equal("running"))
|
|
})
|
|
|
|
It("podman init running container errors", func() {
|
|
session := podmanTest.Podman([]string{"run", "--name", "init_test", "-d", ALPINE, "top"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session.ExitCode()).To(Equal(0))
|
|
init := podmanTest.Podman([]string{"init", "init_test"})
|
|
init.WaitWithDefaultTimeout()
|
|
Expect(init.ExitCode()).To(Equal(125))
|
|
})
|
|
})
|