github.com/containers/podman/v2@v2.2.2-0.20210501105131-c1e07d070c4c/test/e2e/diff_test.go (about) 1 package integration 2 3 import ( 4 "os" 5 "sort" 6 7 . "github.com/containers/podman/v2/test/utils" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 ) 11 12 var _ = Describe("Podman diff", func() { 13 var ( 14 tempdir string 15 err error 16 podmanTest *PodmanTestIntegration 17 ) 18 19 BeforeEach(func() { 20 tempdir, err = CreateTempDirInTempDir() 21 if err != nil { 22 os.Exit(1) 23 } 24 podmanTest = PodmanTestCreate(tempdir) 25 podmanTest.Setup() 26 podmanTest.SeedImages() 27 }) 28 29 AfterEach(func() { 30 podmanTest.Cleanup() 31 f := CurrentGinkgoTestDescription() 32 processTestResult(f) 33 34 }) 35 36 It("podman diff of image", func() { 37 session := podmanTest.Podman([]string{"diff", ALPINE}) 38 session.WaitWithDefaultTimeout() 39 Expect(session.ExitCode()).To(Equal(0)) 40 Expect(len(session.OutputToStringArray())).To(BeNumerically(">", 0)) 41 }) 42 43 It("podman container diff of image", func() { 44 session := podmanTest.Podman([]string{"container", "diff", ALPINE}) 45 session.WaitWithDefaultTimeout() 46 Expect(session.ExitCode()).To(Equal(0)) 47 Expect(len(session.OutputToStringArray())).To(BeNumerically(">", 0)) 48 }) 49 50 It("podman diff bogus image", func() { 51 session := podmanTest.Podman([]string{"diff", "1234"}) 52 session.WaitWithDefaultTimeout() 53 Expect(session.ExitCode()).To(Equal(125)) 54 }) 55 56 It("podman diff image with json output", func() { 57 session := podmanTest.Podman([]string{"diff", "--format=json", ALPINE}) 58 session.WaitWithDefaultTimeout() 59 Expect(session.ExitCode()).To(Equal(0)) 60 Expect(session.IsJSONOutputValid()).To(BeTrue()) 61 }) 62 63 It("podman diff container and committed image", func() { 64 session := podmanTest.Podman([]string{"run", "--name=diff-test", ALPINE, "touch", "/tmp/diff-test"}) 65 session.WaitWithDefaultTimeout() 66 Expect(session.ExitCode()).To(Equal(0)) 67 session = podmanTest.Podman([]string{"diff", "diff-test"}) 68 session.WaitWithDefaultTimeout() 69 containerDiff := session.OutputToStringArray() 70 sort.Strings(containerDiff) 71 Expect(session.LineInOutputContains("C /tmp")).To(BeTrue()) 72 Expect(session.LineInOutputContains("A /tmp/diff-test")).To(BeTrue()) 73 session = podmanTest.Podman([]string{"commit", "diff-test", "diff-test-img"}) 74 session.WaitWithDefaultTimeout() 75 Expect(session.ExitCode()).To(Equal(0)) 76 session = podmanTest.Podman([]string{"diff", "diff-test-img"}) 77 session.WaitWithDefaultTimeout() 78 imageDiff := session.OutputToStringArray() 79 sort.Strings(imageDiff) 80 Expect(imageDiff).To(Equal(containerDiff)) 81 }) 82 83 It("podman diff latest container", func() { 84 session := podmanTest.Podman([]string{"run", "--name", "diff-test", ALPINE, "touch", "/tmp/diff-test"}) 85 session.WaitWithDefaultTimeout() 86 Expect(session.ExitCode()).To(Equal(0)) 87 session = podmanTest.Podman([]string{"diff", "diff-test"}) 88 session.WaitWithDefaultTimeout() 89 containerDiff := session.OutputToStringArray() 90 sort.Strings(containerDiff) 91 Expect(session.LineInOutputContains("C /tmp")).To(BeTrue()) 92 Expect(session.LineInOutputContains("A /tmp/diff-test")).To(BeTrue()) 93 Expect(session.ExitCode()).To(Equal(0)) 94 }) 95 })