github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/test/e2e/run_entrypoint_test.go (about) 1 // +build !remoteclient 2 3 package integration 4 5 import ( 6 "os" 7 8 . "github.com/containers/libpod/test/utils" 9 . "github.com/onsi/ginkgo" 10 . "github.com/onsi/gomega" 11 ) 12 13 var _ = Describe("Podman run entrypoint", func() { 14 var ( 15 tempdir string 16 err error 17 podmanTest *PodmanTestIntegration 18 ) 19 20 BeforeEach(func() { 21 tempdir, err = CreateTempDirInTempDir() 22 if err != nil { 23 os.Exit(1) 24 } 25 podmanTest = PodmanTestCreate(tempdir) 26 podmanTest.Setup() 27 podmanTest.SeedImages() 28 }) 29 30 AfterEach(func() { 31 podmanTest.Cleanup() 32 f := CurrentGinkgoTestDescription() 33 processTestResult(f) 34 35 }) 36 37 It("podman run no command, entrypoint, or cmd", func() { 38 dockerfile := `FROM docker.io/library/alpine:latest 39 ENTRYPOINT [] 40 CMD [] 41 ` 42 podmanTest.BuildImage(dockerfile, "foobar.com/entrypoint:latest", "false") 43 session := podmanTest.Podman([]string{"run", "foobar.com/entrypoint:latest"}) 44 session.WaitWithDefaultTimeout() 45 Expect(session.ExitCode()).To(Equal(125)) 46 }) 47 48 It("podman run entrypoint", func() { 49 dockerfile := `FROM docker.io/library/alpine:latest 50 ENTRYPOINT ["grep", "Alpine", "/etc/os-release"] 51 ` 52 podmanTest.BuildImage(dockerfile, "foobar.com/entrypoint:latest", "false") 53 session := podmanTest.Podman([]string{"run", "foobar.com/entrypoint:latest"}) 54 session.WaitWithDefaultTimeout() 55 Expect(session.ExitCode()).To(Equal(0)) 56 Expect(len(session.OutputToStringArray())).To(Equal(2)) 57 }) 58 59 It("podman run entrypoint with cmd", func() { 60 dockerfile := `FROM docker.io/library/alpine:latest 61 CMD [ "-v"] 62 ENTRYPOINT ["grep", "Alpine", "/etc/os-release"] 63 ` 64 podmanTest.BuildImage(dockerfile, "foobar.com/entrypoint:latest", "false") 65 session := podmanTest.Podman([]string{"run", "foobar.com/entrypoint:latest"}) 66 session.WaitWithDefaultTimeout() 67 Expect(session.ExitCode()).To(Equal(0)) 68 Expect(len(session.OutputToStringArray())).To(Equal(4)) 69 }) 70 71 It("podman run entrypoint with user cmd overrides image cmd", func() { 72 dockerfile := `FROM docker.io/library/alpine:latest 73 CMD [ "-v"] 74 ENTRYPOINT ["grep", "Alpine", "/etc/os-release"] 75 ` 76 podmanTest.BuildImage(dockerfile, "foobar.com/entrypoint:latest", "false") 77 session := podmanTest.Podman([]string{"run", "foobar.com/entrypoint:latest", "-i"}) 78 session.WaitWithDefaultTimeout() 79 Expect(session.ExitCode()).To(Equal(0)) 80 Expect(len(session.OutputToStringArray())).To(Equal(5)) 81 }) 82 83 It("podman run entrypoint with user cmd no image cmd", func() { 84 dockerfile := `FROM docker.io/library/alpine:latest 85 ENTRYPOINT ["grep", "Alpine", "/etc/os-release"] 86 ` 87 podmanTest.BuildImage(dockerfile, "foobar.com/entrypoint:latest", "false") 88 session := podmanTest.Podman([]string{"run", "foobar.com/entrypoint:latest", "-i"}) 89 session.WaitWithDefaultTimeout() 90 Expect(session.ExitCode()).To(Equal(0)) 91 Expect(len(session.OutputToStringArray())).To(Equal(5)) 92 }) 93 94 It("podman run user entrypoint overrides image entrypoint and image cmd", func() { 95 dockerfile := `FROM docker.io/library/alpine:latest 96 CMD ["-i"] 97 ENTRYPOINT ["grep", "Alpine", "/etc/os-release"] 98 ` 99 podmanTest.BuildImage(dockerfile, "foobar.com/entrypoint:latest", "false") 100 session := podmanTest.Podman([]string{"run", "--entrypoint=uname", "foobar.com/entrypoint:latest"}) 101 session.WaitWithDefaultTimeout() 102 Expect(session.ExitCode()).To(Equal(0)) 103 Expect(session.LineInOuputStartsWith("Linux")).To(BeTrue()) 104 }) 105 106 It("podman run user entrypoint with command overrides image entrypoint and image cmd", func() { 107 dockerfile := `FROM docker.io/library/alpine:latest 108 CMD ["-i"] 109 ENTRYPOINT ["grep", "Alpine", "/etc/os-release"] 110 ` 111 podmanTest.BuildImage(dockerfile, "foobar.com/entrypoint:latest", "false") 112 session := podmanTest.Podman([]string{"run", "--entrypoint=uname", "foobar.com/entrypoint:latest", "-r"}) 113 session.WaitWithDefaultTimeout() 114 Expect(session.ExitCode()).To(Equal(0)) 115 Expect(session.LineInOuputStartsWith("Linux")).To(BeFalse()) 116 }) 117 })