github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/test/e2e/diff_test.go (about) 1 package integration 2 3 import ( 4 "os" 5 "sort" 6 7 . "github.com/containers/libpod/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 SkipIfRemote() 65 session := podmanTest.Podman([]string{"run", "--name=diff-test", ALPINE, "touch", "/tmp/diff-test"}) 66 session.WaitWithDefaultTimeout() 67 Expect(session.ExitCode()).To(Equal(0)) 68 session = podmanTest.Podman([]string{"diff", "diff-test"}) 69 session.WaitWithDefaultTimeout() 70 containerDiff := session.OutputToStringArray() 71 sort.Strings(containerDiff) 72 Expect(session.LineInOutputContains("C /tmp")).To(BeTrue()) 73 Expect(session.LineInOutputContains("A /tmp/diff-test")).To(BeTrue()) 74 session = podmanTest.Podman([]string{"commit", "diff-test", "diff-test-img"}) 75 session.WaitWithDefaultTimeout() 76 Expect(session.ExitCode()).To(Equal(0)) 77 session = podmanTest.Podman([]string{"diff", "diff-test-img"}) 78 session.WaitWithDefaultTimeout() 79 imageDiff := session.OutputToStringArray() 80 sort.Strings(imageDiff) 81 Expect(imageDiff).To(Equal(containerDiff)) 82 }) 83 84 It("podman diff latest container", func() { 85 SkipIfRemote() 86 session := podmanTest.Podman([]string{"run", "--name=diff-test", ALPINE, "touch", "/tmp/diff-test"}) 87 session.WaitWithDefaultTimeout() 88 Expect(session.ExitCode()).To(Equal(0)) 89 session = podmanTest.Podman([]string{"diff", "-l"}) 90 session.WaitWithDefaultTimeout() 91 containerDiff := session.OutputToStringArray() 92 sort.Strings(containerDiff) 93 Expect(session.LineInOutputContains("C /tmp")).To(BeTrue()) 94 Expect(session.LineInOutputContains("A /tmp/diff-test")).To(BeTrue()) 95 Expect(session.ExitCode()).To(Equal(0)) 96 }) 97 })