mirror of
https://github.com/containers/podman
synced 2024-10-20 17:23:30 +00:00
433cbd5254
Because our tests are getting so long, we want to be able to audit which tests are taking the longest to complete. This may indicate a bad test, bad CI, bad code, etc and therefore should be auditable. Also, make speed improvements to tests by making sure we only unpack caches images that actually get used. Signed-off-by: baude <bbaude@redhat.com> Closes: #1178 Approved by: mheon
112 lines
3.6 KiB
Go
112 lines
3.6 KiB
Go
package integration
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
. "github.com/onsi/ginkgo"
|
|
. "github.com/onsi/gomega"
|
|
)
|
|
|
|
var _ = Describe("Podman import", 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()
|
|
f := CurrentGinkgoTestDescription()
|
|
timedResult := fmt.Sprintf("Test: %s completed in %f seconds", f.TestText, f.Duration.Seconds())
|
|
GinkgoWriter.Write([]byte(timedResult))
|
|
})
|
|
|
|
It("podman import with source and reference", func() {
|
|
outfile := filepath.Join(podmanTest.TempDir, "container.tar")
|
|
_, ec, cid := podmanTest.RunLsContainer("")
|
|
Expect(ec).To(Equal(0))
|
|
|
|
export := podmanTest.Podman([]string{"export", "-o", outfile, cid})
|
|
export.WaitWithDefaultTimeout()
|
|
Expect(export.ExitCode()).To(Equal(0))
|
|
|
|
importImage := podmanTest.Podman([]string{"import", outfile, "foobar.com/imported-image:latest"})
|
|
importImage.WaitWithDefaultTimeout()
|
|
Expect(importImage.ExitCode()).To(Equal(0))
|
|
|
|
results := podmanTest.Podman([]string{"inspect", "--type", "image", "foobar.com/imported-image:latest"})
|
|
results.WaitWithDefaultTimeout()
|
|
Expect(results.ExitCode()).To(Equal(0))
|
|
})
|
|
|
|
It("podman import without reference", func() {
|
|
outfile := filepath.Join(podmanTest.TempDir, "container.tar")
|
|
_, ec, cid := podmanTest.RunLsContainer("")
|
|
Expect(ec).To(Equal(0))
|
|
|
|
export := podmanTest.Podman([]string{"export", "-o", outfile, cid})
|
|
export.WaitWithDefaultTimeout()
|
|
Expect(export.ExitCode()).To(Equal(0))
|
|
|
|
importImage := podmanTest.Podman([]string{"import", outfile})
|
|
importImage.WaitWithDefaultTimeout()
|
|
Expect(importImage.ExitCode()).To(Equal(0))
|
|
|
|
results := podmanTest.Podman([]string{"images", "-q"})
|
|
results.WaitWithDefaultTimeout()
|
|
Expect(results.ExitCode()).To(Equal(0))
|
|
Expect(len(results.OutputToStringArray())).To(Equal(3))
|
|
})
|
|
|
|
It("podman import with message flag", func() {
|
|
outfile := filepath.Join(podmanTest.TempDir, "container.tar")
|
|
_, ec, cid := podmanTest.RunLsContainer("")
|
|
Expect(ec).To(Equal(0))
|
|
|
|
export := podmanTest.Podman([]string{"export", "-o", outfile, cid})
|
|
export.WaitWithDefaultTimeout()
|
|
Expect(export.ExitCode()).To(Equal(0))
|
|
|
|
importImage := podmanTest.Podman([]string{"import", "--message", "importing container test message", outfile, "imported-image"})
|
|
importImage.WaitWithDefaultTimeout()
|
|
Expect(importImage.ExitCode()).To(Equal(0))
|
|
|
|
results := podmanTest.Podman([]string{"history", "imported-image", "--format", "{{.Comment}}"})
|
|
results.WaitWithDefaultTimeout()
|
|
Expect(results.ExitCode()).To(Equal(0))
|
|
Expect(results.LineInOuputStartsWith("importing container test message")).To(BeTrue())
|
|
})
|
|
|
|
It("podman import with change flag", func() {
|
|
outfile := filepath.Join(podmanTest.TempDir, "container.tar")
|
|
_, ec, cid := podmanTest.RunLsContainer("")
|
|
Expect(ec).To(Equal(0))
|
|
|
|
export := podmanTest.Podman([]string{"export", "-o", outfile, cid})
|
|
export.WaitWithDefaultTimeout()
|
|
Expect(export.ExitCode()).To(Equal(0))
|
|
|
|
importImage := podmanTest.Podman([]string{"import", "--change", "CMD=/bin/bash", outfile, "imported-image"})
|
|
importImage.WaitWithDefaultTimeout()
|
|
Expect(importImage.ExitCode()).To(Equal(0))
|
|
|
|
results := podmanTest.Podman([]string{"inspect", "imported-image"})
|
|
results.WaitWithDefaultTimeout()
|
|
Expect(results.ExitCode()).To(Equal(0))
|
|
imageData := results.InspectImageJSON()
|
|
Expect(imageData[0].ContainerConfig.Cmd[0]).To(Equal("/bin/bash"))
|
|
})
|
|
|
|
})
|