diff options
Diffstat (limited to 'test/e2e')
65 files changed, 638 insertions, 523 deletions
diff --git a/test/e2e/build_test.go b/test/e2e/build_test.go index 5e93f9078..9a9dec191 100644 --- a/test/e2e/build_test.go +++ b/test/e2e/build_test.go @@ -139,7 +139,7 @@ var _ = Describe("Podman build", func() { session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) // Check for two layers - Expect(len(strings.Fields(session.OutputToString()))).To(Equal(2)) + Expect(strings.Fields(session.OutputToString())).To(HaveLen(2)) session = podmanTest.Podman([]string{"build", "--pull-never", "-f", "build/squash/Dockerfile.squash-b", "--squash", "-t", "test-squash-b:latest", "build/squash"}) session.WaitWithDefaultTimeout() @@ -149,7 +149,7 @@ var _ = Describe("Podman build", func() { session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) // Check for three layers - Expect(len(strings.Fields(session.OutputToString()))).To(Equal(3)) + Expect(strings.Fields(session.OutputToString())).To(HaveLen(3)) session = podmanTest.Podman([]string{"build", "--pull-never", "-f", "build/squash/Dockerfile.squash-c", "--squash", "-t", "test-squash-c:latest", "build/squash"}) session.WaitWithDefaultTimeout() @@ -159,7 +159,7 @@ var _ = Describe("Podman build", func() { session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) // Check for two layers - Expect(len(strings.Fields(session.OutputToString()))).To(Equal(2)) + Expect(strings.Fields(session.OutputToString())).To(HaveLen(2)) session = podmanTest.Podman([]string{"build", "--pull-never", "-f", "build/squash/Dockerfile.squash-c", "--squash-all", "-t", "test-squash-d:latest", "build/squash"}) session.WaitWithDefaultTimeout() @@ -169,7 +169,7 @@ var _ = Describe("Podman build", func() { session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) // Check for one layers - Expect(len(strings.Fields(session.OutputToString()))).To(Equal(1)) + Expect(strings.Fields(session.OutputToString())).To(HaveLen(1)) session = podmanTest.Podman([]string{"rm", "-a"}) session.WaitWithDefaultTimeout() diff --git a/test/e2e/checkpoint_test.go b/test/e2e/checkpoint_test.go index e068a6582..064c82621 100644 --- a/test/e2e/checkpoint_test.go +++ b/test/e2e/checkpoint_test.go @@ -192,7 +192,7 @@ var _ = Describe("Podman checkpoint", func() { ps.WaitWithDefaultTimeout() Expect(ps).Should(Exit(0)) Expect(ps.OutputToString()).To(ContainSubstring(session1.OutputToString())) - Expect(ps.LineInOutputContains(session2.OutputToString())).To(BeFalse()) + Expect(ps.OutputToString()).To(Not(ContainSubstring(session2.OutputToString()))) result = podmanTest.Podman([]string{"container", "restore", "second"}) result.WaitWithDefaultTimeout() @@ -228,8 +228,8 @@ var _ = Describe("Podman checkpoint", func() { ps := podmanTest.Podman([]string{"ps", "-q", "--no-trunc"}) ps.WaitWithDefaultTimeout() Expect(ps).Should(Exit(0)) - Expect(ps.LineInOutputContains(session1.OutputToString())).To(BeFalse()) - Expect(ps.LineInOutputContains(session2.OutputToString())).To(BeFalse()) + Expect(ps.OutputToString()).To(Not(ContainSubstring(session1.OutputToString()))) + Expect(ps.OutputToString()).To(Not(ContainSubstring(session2.OutputToString()))) result = podmanTest.Podman([]string{"container", "restore", "-a"}) result.WaitWithDefaultTimeout() @@ -568,7 +568,7 @@ var _ = Describe("Podman checkpoint", func() { Expect(result.OutputToString()).To(ContainSubstring("C /etc")) Expect(result.OutputToString()).To(ContainSubstring("A /test.output")) Expect(result.OutputToString()).To(ContainSubstring("D /etc/motd")) - Expect(len(result.OutputToStringArray())).To(Equal(3)) + Expect(result.OutputToStringArray()).To(HaveLen(3)) // Checkpoint the container result = podmanTest.Podman([]string{"container", "checkpoint", cid, "-e", fileName}) @@ -599,7 +599,7 @@ var _ = Describe("Podman checkpoint", func() { Expect(result.OutputToString()).To(ContainSubstring("C /etc")) Expect(result.OutputToString()).To(ContainSubstring("A /test.output")) Expect(result.OutputToString()).To(ContainSubstring("D /etc/motd")) - Expect(len(result.OutputToStringArray())).To(Equal(3)) + Expect(result.OutputToStringArray()).To(HaveLen(3)) // Remove exported checkpoint os.Remove(fileName) @@ -1280,7 +1280,7 @@ var _ = Describe("Podman checkpoint", func() { err := json.Unmarshal([]byte(result.OutputToString()), cS) Expect(err).ShouldNot(HaveOccurred()) - Expect(len(cS.ContainerStatistics)).To(Equal(2)) + Expect(cS.ContainerStatistics).To(HaveLen(2)) Expect(cS.PodmanDuration).To(BeNumerically(">", cS.ContainerStatistics[0].RuntimeDuration)) Expect(cS.PodmanDuration).To(BeNumerically(">", cS.ContainerStatistics[1].RuntimeDuration)) Expect(cS.ContainerStatistics[0].RuntimeDuration).To( @@ -1297,8 +1297,8 @@ var _ = Describe("Podman checkpoint", func() { }) ps.WaitWithDefaultTimeout() Expect(ps).Should(Exit(0)) - Expect(ps.LineInOutputContains(session1.OutputToString())).To(BeFalse()) - Expect(ps.LineInOutputContains(session2.OutputToString())).To(BeFalse()) + Expect(ps.OutputToString()).To(Not(ContainSubstring(session1.OutputToString()))) + Expect(ps.OutputToString()).To(Not(ContainSubstring(session2.OutputToString()))) result = podmanTest.Podman([]string{ "container", @@ -1322,7 +1322,7 @@ var _ = Describe("Podman checkpoint", func() { err = json.Unmarshal([]byte(result.OutputToString()), rS) Expect(err).ShouldNot(HaveOccurred()) - Expect(len(cS.ContainerStatistics)).To(Equal(2)) + Expect(cS.ContainerStatistics).To(HaveLen(2)) Expect(cS.PodmanDuration).To(BeNumerically(">", cS.ContainerStatistics[0].RuntimeDuration)) Expect(cS.PodmanDuration).To(BeNumerically(">", cS.ContainerStatistics[1].RuntimeDuration)) Expect(cS.ContainerStatistics[0].RuntimeDuration).To( diff --git a/test/e2e/commit_test.go b/test/e2e/commit_test.go index b751c338f..d9411b146 100644 --- a/test/e2e/commit_test.go +++ b/test/e2e/commit_test.go @@ -146,8 +146,8 @@ var _ = Describe("Podman commit", func() { check := podmanTest.Podman([]string{"inspect", "foobar.com/test1-image:latest"}) check.WaitWithDefaultTimeout() data := check.InspectImageJSON() - Expect(len(data)).To(Equal(1)) - Expect(len(data[0].Config.Entrypoint)).To(Equal(2)) + Expect(data).To(HaveLen(1)) + Expect(data[0].Config.Entrypoint).To(HaveLen(2)) Expect(data[0].Config.Entrypoint[0]).To(Equal("foo")) Expect(data[0].Config.Entrypoint[1]).To(Equal("bar=baz")) }) @@ -204,8 +204,7 @@ var _ = Describe("Podman commit", func() { inspect.WaitWithDefaultTimeout() Expect(inspect).Should(Exit(0)) image := inspect.InspectImageJSON() - _, ok := image[0].Config.Volumes["/foo"] - Expect(ok).To(BeFalse()) + Expect(image[0].Config.Volumes).To(Not(HaveKey("/foo"))) }) It("podman commit with volume mounts and --include-volumes", func() { @@ -224,8 +223,7 @@ var _ = Describe("Podman commit", func() { inspect.WaitWithDefaultTimeout() Expect(inspect).Should(Exit(0)) image := inspect.InspectImageJSON() - _, ok := image[0].Config.Volumes["/foo"] - Expect(ok).To(BeTrue(), ".Config.Volumes[/foo]") + Expect(image[0].Config.Volumes).To(HaveKey("/foo")) r := podmanTest.Podman([]string{"run", "newimage"}) r.WaitWithDefaultTimeout() @@ -250,7 +248,7 @@ var _ = Describe("Podman commit", func() { for _, v := range image[0].Config.Env { envMap[v] = true } - Expect(envMap["TEST=1=1-01=9.01"]).To(BeTrue(), "envMap[TEST=1=1-01=9.01]") + Expect(envMap).To(HaveKey("TEST=1=1-01=9.01")) }) It("podman commit container and print id to external file", func() { diff --git a/test/e2e/common_test.go b/test/e2e/common_test.go index 63cb4f091..a411a860b 100644 --- a/test/e2e/common_test.go +++ b/test/e2e/common_test.go @@ -36,7 +36,6 @@ var ( PODMAN_BINARY string //nolint:golint,stylecheck INTEGRATION_ROOT string //nolint:golint,stylecheck CGROUP_MANAGER = "systemd" //nolint:golint,stylecheck - ARTIFACT_DIR = "/tmp/.artifacts" //nolint:golint,stylecheck RESTORE_IMAGES = []string{ALPINE, BB, nginx} //nolint:golint,stylecheck defaultWaitTimeout = 90 CGROUPSV2, _ = cgroups.IsCgroup2UnifiedMode() //nolint:golint,stylecheck @@ -46,7 +45,7 @@ var ( type PodmanTestIntegration struct { PodmanTest ConmonBinary string - CrioRoot string + Root string CNIConfigDir string OCIRuntime string RunRoot string @@ -111,13 +110,6 @@ var _ = SynchronizedBeforeSuite(func() []byte { cwd, _ := os.Getwd() INTEGRATION_ROOT = filepath.Join(cwd, "../../") podman := PodmanTestSetup("/tmp") - podman.ArtifactPath = ARTIFACT_DIR - if _, err := os.Stat(ARTIFACT_DIR); os.IsNotExist(err) { - if err = os.Mkdir(ARTIFACT_DIR, 0777); err != nil { - fmt.Printf("%q\n", err) - os.Exit(1) - } - } // Pull cirros but don't put it into the cache pullImages := []string{cirros, fedoraToolbox, volumeTest} @@ -130,7 +122,7 @@ var _ = SynchronizedBeforeSuite(func() []byte { fmt.Printf("%q\n", err) os.Exit(1) } - podman.CrioRoot = ImageCacheDir + podman.Root = ImageCacheDir // If running localized tests, the cache dir is created and populated. if the // tests are remote, this is a no-op populateCache(podman) @@ -170,7 +162,6 @@ var _ = SynchronizedBeforeSuite(func() []byte { func (p *PodmanTestIntegration) Setup() { cwd, _ := os.Getwd() INTEGRATION_ROOT = filepath.Join(cwd, "../../") - p.ArtifactPath = ARTIFACT_DIR } var _ = SynchronizedAfterSuite(func() {}, @@ -181,14 +172,14 @@ var _ = SynchronizedAfterSuite(func() {}, fmt.Printf("%s\t\t%f\n", result.name, result.length) } - // previous crio-run + // previous runroot tempdir, err := CreateTempDirInTempDir() if err != nil { os.Exit(1) } podmanTest := PodmanTestCreate(tempdir) - if err := os.RemoveAll(podmanTest.CrioRoot); err != nil { + if err := os.RemoveAll(podmanTest.Root); err != nil { fmt.Printf("%q\n", err) } @@ -265,18 +256,17 @@ func PodmanTestCreateUtil(tempDir string, remote bool) *PodmanTestIntegration { PodmanTest: PodmanTest{ PodmanBinary: podmanBinary, RemotePodmanBinary: podmanRemoteBinary, - ArtifactPath: ARTIFACT_DIR, TempDir: tempDir, RemoteTest: remote, ImageCacheFS: storageFs, ImageCacheDir: ImageCacheDir, }, ConmonBinary: conmonBinary, - CrioRoot: filepath.Join(tempDir, "crio"), + Root: filepath.Join(tempDir, "root"), TmpDir: tempDir, CNIConfigDir: CNIConfigDir, OCIRuntime: ociRuntime, - RunRoot: filepath.Join(tempDir, "crio-run"), + RunRoot: filepath.Join(tempDir, "runroot"), StorageOptions: storageOptions, SignaturePolicyPath: filepath.Join(INTEGRATION_ROOT, "test/policy.json"), CgroupManager: cgroupManager, @@ -308,15 +298,29 @@ func (p PodmanTestIntegration) AddImageToRWStore(image string) { } } -// createArtifact creates a cached image in the artifact dir +func imageTarPath(image string) string { + cacheDir := os.Getenv("PODMAN_TEST_IMAGE_CACHE_DIR") + if cacheDir == "" { + cacheDir = os.Getenv("TMPDIR") + if cacheDir == "" { + cacheDir = "/tmp" + } + } + + // e.g., registry.com/fubar:latest -> registry.com-fubar-latest.tar + imageCacheName := strings.Replace(strings.Replace(image, ":", "-", -1), "/", "-", -1) + ".tar" + + return filepath.Join(cacheDir, imageCacheName) +} + +// createArtifact creates a cached image tarball in a local directory func (p *PodmanTestIntegration) createArtifact(image string) { if os.Getenv("NO_TEST_CACHE") != "" { return } - dest := strings.Split(image, "/") - destName := fmt.Sprintf("/tmp/%s.tar", strings.Replace(strings.Join(strings.Split(dest[len(dest)-1], "/"), ""), ":", "-", -1)) - fmt.Printf("Caching %s at %s...\n", image, destName) + destName := imageTarPath(image) if _, err := os.Stat(destName); os.IsNotExist(err) { + fmt.Printf("Caching %s at %s...\n", image, destName) pull := p.PodmanNoCache([]string{"pull", image}) pull.Wait(440) Expect(pull).Should(Exit(0)) @@ -326,7 +330,7 @@ func (p *PodmanTestIntegration) createArtifact(image string) { Expect(save).Should(Exit(0)) fmt.Printf("\n") } else { - fmt.Printf(" already exists.\n") + fmt.Printf("[image already cached: %s]\n", destName) } } @@ -738,12 +742,13 @@ func (p *PodmanTestIntegration) RestartRemoteService() { // RestoreArtifactToCache populates the imagecache from tarballs that were cached earlier func (p *PodmanTestIntegration) RestoreArtifactToCache(image string) error { - fmt.Printf("Restoring %s...\n", image) - dest := strings.Split(image, "/") - destName := fmt.Sprintf("/tmp/%s.tar", strings.Replace(strings.Join(strings.Split(dest[len(dest)-1], "/"), ""), ":", "-", -1)) - p.CrioRoot = p.ImageCacheDir - restore := p.PodmanNoEvents([]string{"load", "-q", "-i", destName}) - restore.WaitWithDefaultTimeout() + tarball := imageTarPath(image) + if _, err := os.Stat(tarball); err == nil { + fmt.Printf("Restoring %s...\n", image) + p.Root = p.ImageCacheDir + restore := p.PodmanNoEvents([]string{"load", "-q", "-i", tarball}) + restore.WaitWithDefaultTimeout() + } return nil } @@ -795,7 +800,7 @@ func (p *PodmanTestIntegration) makeOptions(args []string, noEvents, noCache boo } podmanOptions := strings.Split(fmt.Sprintf("%s--root %s --runroot %s --runtime %s --conmon %s --cni-config-dir %s --cgroup-manager %s --tmpdir %s --events-backend %s", - debug, p.CrioRoot, p.RunRoot, p.OCIRuntime, p.ConmonBinary, p.CNIConfigDir, p.CgroupManager, p.TmpDir, eventsType), " ") + debug, p.Root, p.RunRoot, p.OCIRuntime, p.ConmonBinary, p.CNIConfigDir, p.CgroupManager, p.TmpDir, eventsType), " ") if os.Getenv("HOOK_OPTION") != "" { podmanOptions = append(podmanOptions, os.Getenv("HOOK_OPTION")) } diff --git a/test/e2e/container_create_volume_test.go b/test/e2e/container_create_volume_test.go index 0dac96a5e..df1d9a371 100644 --- a/test/e2e/container_create_volume_test.go +++ b/test/e2e/container_create_volume_test.go @@ -45,8 +45,8 @@ func checkDataVolumeContainer(pTest *PodmanTestIntegration, image, cont, dest, d Expect(create).Should(Exit(0)) inspect := pTest.InspectContainer(cont) - Expect(len(inspect)).To(Equal(1)) - Expect(len(inspect[0].Mounts)).To(Equal(1)) + Expect(inspect).To(HaveLen(1)) + Expect(inspect[0].Mounts).To(HaveLen(1)) Expect(inspect[0].Mounts[0].Destination).To(Equal(dest)) mntName, mntSource := inspect[0].Mounts[0].Name, inspect[0].Mounts[0].Source @@ -54,7 +54,7 @@ func checkDataVolumeContainer(pTest *PodmanTestIntegration, image, cont, dest, d volList := pTest.Podman([]string{"volume", "list", "--quiet"}) volList.WaitWithDefaultTimeout() Expect(volList).Should(Exit(0)) - Expect(len(volList.OutputToStringArray())).To(Equal(1)) + Expect(volList.OutputToStringArray()).To(HaveLen(1)) Expect(volList.OutputToStringArray()[0]).To(Equal(mntName)) // Check the mount source directory @@ -62,9 +62,9 @@ func checkDataVolumeContainer(pTest *PodmanTestIntegration, image, cont, dest, d Expect(err).To(BeNil()) if data == "" { - Expect(len(files)).To(Equal(0)) + Expect(files).To(BeEmpty()) } else { - Expect(len(files)).To(Equal(1)) + Expect(files).To(HaveLen(1)) Expect(files[0].Name()).To(Equal(data)) } } diff --git a/test/e2e/containers_conf_test.go b/test/e2e/containers_conf_test.go index 6bc230aae..2a6f177f2 100644 --- a/test/e2e/containers_conf_test.go +++ b/test/e2e/containers_conf_test.go @@ -245,7 +245,7 @@ var _ = Describe("Podman run", func() { session := podmanTest.Podman([]string{"run", "--dns-search=.", ALPINE, "cat", "/etc/resolv.conf"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(session.LineInOutputStartsWith("search")).To(BeFalse()) + Expect(session.OutputToStringArray()).To(Not(ContainElement(HavePrefix("search")))) }) It("podman run use containers.conf search domain", func() { diff --git a/test/e2e/create_test.go b/test/e2e/create_test.go index 52d439f4a..9126303cd 100644 --- a/test/e2e/create_test.go +++ b/test/e2e/create_test.go @@ -107,9 +107,7 @@ var _ = Describe("Podman create", func() { check := podmanTest.Podman([]string{"inspect", "annotate_test"}) check.WaitWithDefaultTimeout() data := check.InspectContainerToJSON() - value, ok := data[0].Config.Annotations["HELLO"] - Expect(ok).To(BeTrue(), ".Config.Annotations[HELLO]") - Expect(value).To(Equal("WORLD")) + Expect(data[0].Config.Annotations).To(HaveKeyWithValue("HELLO", "WORLD")) }) It("podman create --entrypoint command", func() { @@ -281,8 +279,8 @@ var _ = Describe("Podman create", func() { Expect(create).Should(Exit(0)) ctrJSON := podmanTest.InspectContainer(name) - Expect(len(ctrJSON)).To(Equal(1)) - Expect(len(ctrJSON[0].Config.Cmd)).To(Equal(1)) + Expect(ctrJSON).To(HaveLen(1)) + Expect(ctrJSON[0].Config.Cmd).To(HaveLen(1)) Expect(ctrJSON[0].Config.Cmd[0]).To(Equal("redis-server")) Expect(ctrJSON[0].Config.Entrypoint).To(Equal("docker-entrypoint.sh")) }) @@ -384,12 +382,10 @@ var _ = Describe("Podman create", func() { inspect := podmanTest.Podman([]string{"inspect", ctrName}) inspect.WaitWithDefaultTimeout() data := inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1), "len(InspectContainerToJSON)") - Expect(len(data[0].Config.Labels)).To(Equal(2)) - _, ok1 := data[0].Config.Labels["TESTKEY1"] - Expect(ok1).To(BeTrue(), ".Config.Labels[TESTKEY1]") - _, ok2 := data[0].Config.Labels["TESTKEY2"] - Expect(ok2).To(BeTrue(), ".Config.Labels[TESTKEY2]") + Expect(data).To(HaveLen(1), "len(InspectContainerToJSON)") + Expect(data[0].Config.Labels).To(HaveLen(2)) + Expect(data[0].Config.Labels).To(HaveKey("TESTKEY1")) + Expect(data[0].Config.Labels).To(HaveKey("TESTKEY2")) }) It("podman create with set label", func() { @@ -402,14 +398,10 @@ var _ = Describe("Podman create", func() { inspect := podmanTest.Podman([]string{"inspect", ctrName}) inspect.WaitWithDefaultTimeout() data := inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) - Expect(len(data[0].Config.Labels)).To(Equal(2)) - val1, ok1 := data[0].Config.Labels["TESTKEY1"] - Expect(ok1).To(BeTrue(), ".Config.Labels[TESTKEY1]") - Expect(val1).To(Equal("value1")) - val2, ok2 := data[0].Config.Labels["TESTKEY2"] - Expect(ok2).To(BeTrue(), ".Config.Labels[TESTKEY2]") - Expect(val2).To(Equal("bar")) + Expect(data).To(HaveLen(1)) + Expect(data[0].Config.Labels).To(HaveLen(2)) + Expect(data[0].Config.Labels).To(HaveKeyWithValue("TESTKEY1", "value1")) + Expect(data[0].Config.Labels).To(HaveKeyWithValue("TESTKEY2", "bar")) }) It("podman create with --restart=on-failure:5 parses correctly", func() { @@ -421,7 +413,7 @@ var _ = Describe("Podman create", func() { inspect := podmanTest.Podman([]string{"inspect", ctrName}) inspect.WaitWithDefaultTimeout() data := inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].HostConfig.RestartPolicy.Name).To(Equal("on-failure")) Expect(data[0].HostConfig.RestartPolicy.MaximumRetryCount).To(Equal(uint(5))) }) @@ -442,7 +434,7 @@ var _ = Describe("Podman create", func() { inspect := podmanTest.Podman([]string{"inspect", ctrName}) inspect.WaitWithDefaultTimeout() data := inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].HostConfig.RestartPolicy.Name).To(Equal(unlessStopped)) }) @@ -456,7 +448,7 @@ var _ = Describe("Podman create", func() { inspect := podmanTest.Podman([]string{"inspect", ctrName}) inspect.WaitWithDefaultTimeout() data := inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].HostConfig.MemorySwap).To(Equal(int64(2 * numMem))) }) @@ -471,7 +463,7 @@ var _ = Describe("Podman create", func() { inspect := podmanTest.Podman([]string{"inspect", ctrName}) inspect.WaitWithDefaultTimeout() data := inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].HostConfig.NanoCpus).To(Equal(int64(nanoCPUs))) }) @@ -499,7 +491,7 @@ var _ = Describe("Podman create", func() { inspect := podmanTest.Podman([]string{"inspect", ctrName}) inspect.WaitWithDefaultTimeout() data := inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].Config.StopSignal).To(Equal(uint(15))) }) @@ -517,7 +509,7 @@ var _ = Describe("Podman create", func() { inspect := podmanTest.Podman([]string{"inspect", "zone"}) inspect.WaitWithDefaultTimeout() data := inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].Config.Timezone).To(Equal("Pacific/Honolulu")) session = podmanTest.Podman([]string{"create", "--tz", "local", "--name", "lcl", ALPINE, "date"}) @@ -525,7 +517,7 @@ var _ = Describe("Podman create", func() { inspect = podmanTest.Podman([]string{"inspect", "lcl"}) inspect.WaitWithDefaultTimeout() data = inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].Config.Timezone).To(Equal("local")) }) @@ -539,7 +531,7 @@ var _ = Describe("Podman create", func() { inspect := podmanTest.Podman([]string{"inspect", "default"}) inspect.WaitWithDefaultTimeout() data := inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].Config.Umask).To(Equal("0022")) session = podmanTest.Podman([]string{"create", "--umask", "0002", "--name", "umask", ALPINE}) @@ -547,7 +539,7 @@ var _ = Describe("Podman create", func() { inspect = podmanTest.Podman([]string{"inspect", "umask"}) inspect.WaitWithDefaultTimeout() data = inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].Config.Umask).To(Equal("0002")) session = podmanTest.Podman([]string{"create", "--umask", "0077", "--name", "fedora", fedoraMinimal}) @@ -555,7 +547,7 @@ var _ = Describe("Podman create", func() { inspect = podmanTest.Podman([]string{"inspect", "fedora"}) inspect.WaitWithDefaultTimeout() data = inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].Config.Umask).To(Equal("0077")) session = podmanTest.Podman([]string{"create", "--umask", "22", "--name", "umask-short", ALPINE}) @@ -563,7 +555,7 @@ var _ = Describe("Podman create", func() { inspect = podmanTest.Podman([]string{"inspect", "umask-short"}) inspect.WaitWithDefaultTimeout() data = inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].Config.Umask).To(Equal("0022")) session = podmanTest.Podman([]string{"create", "--umask", "9999", "--name", "bad", ALPINE}) @@ -697,7 +689,7 @@ var _ = Describe("Podman create", func() { Expect(setup).Should(Exit(0)) idata := setup.InspectImageJSON() // returns []inspect.ImageData - Expect(len(idata)).To(Equal(1)) + Expect(idata).To(HaveLen(1)) Expect(idata[0].Os).To(Equal(runtime.GOOS)) Expect(idata[0].Architecture).To(Equal("arm64")) }) diff --git a/test/e2e/diff_test.go b/test/e2e/diff_test.go index 80647c6f5..a872a9713 100644 --- a/test/e2e/diff_test.go +++ b/test/e2e/diff_test.go @@ -120,13 +120,13 @@ RUN echo test session := podmanTest.Podman([]string{"image", "diff", image}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(BeNumerically("==", 1)) + Expect(session.OutputToStringArray()).To(HaveLen(1)) Expect(session.OutputToString()).To(Equal("A " + file3)) session = podmanTest.Podman([]string{"image", "diff", image, baseImage}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(BeNumerically("==", 4)) + Expect(session.OutputToStringArray()).To(HaveLen(4)) Expect(session.OutputToString()).To(ContainSubstring("A " + file1)) Expect(session.OutputToString()).To(ContainSubstring("A " + file2)) Expect(session.OutputToString()).To(ContainSubstring("A " + file3)) @@ -149,7 +149,7 @@ RUN echo test session := podmanTest.Podman([]string{"image", "diff", ALPINE, ALPINE}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(BeNumerically("==", 0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) }) It("podman diff container and image with same name", func() { @@ -172,20 +172,20 @@ RUN touch %s`, ALPINE, imagefile) session = podmanTest.Podman([]string{"diff", name}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(BeNumerically("==", 2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToString()).To(ContainSubstring(imagefile)) session = podmanTest.Podman([]string{"image", "diff", name}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(BeNumerically("==", 2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToString()).To(ContainSubstring(imagefile)) // container diff has to show the container session = podmanTest.Podman([]string{"container", "diff", name}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(BeNumerically("==", 2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToString()).To(ContainSubstring(confile)) }) diff --git a/test/e2e/events_test.go b/test/e2e/events_test.go index 2b9b0f575..39f495460 100644 --- a/test/e2e/events_test.go +++ b/test/e2e/events_test.go @@ -74,7 +74,7 @@ var _ = Describe("Podman events", func() { result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) events := result.OutputToStringArray() - Expect(len(events)).To(Equal(1), "number of events") + Expect(events).To(HaveLen(1), "number of events") Expect(events[0]).To(ContainSubstring(cid), "event log includes CID") Expect(events[0]).To(Not(ContainSubstring(cid2)), "event log does not include second CID") }) @@ -86,7 +86,7 @@ var _ = Describe("Podman events", func() { result := podmanTest.Podman([]string{"events", "--stream=false", "--filter", "type=pod", "--filter", fmt.Sprintf("container=%s", cid)}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).To(Equal(0)) + Expect(result.OutputToStringArray()).To(BeEmpty()) }) It("podman events with a type", func() { diff --git a/test/e2e/exec_test.go b/test/e2e/exec_test.go index 65d60b24d..121d0b234 100644 --- a/test/e2e/exec_test.go +++ b/test/e2e/exec_test.go @@ -527,8 +527,8 @@ RUN useradd -u 1000 auser`, fedoraMinimal) Expect(ctr).Should(Exit(0)) data := podmanTest.InspectContainer(ctrName) - Expect(len(data)).To(Equal(1)) - Expect(len(data[0].ExecIDs)).To(Equal(1)) + Expect(data).To(HaveLen(1)) + Expect(data[0].ExecIDs).To(HaveLen(1)) Expect(exec1.OutputToString()).To(ContainSubstring(data[0].ExecIDs[0])) exec2 := podmanTest.Podman([]string{"exec", "-t", "-i", ctrName, "ps", "-a"}) diff --git a/test/e2e/generate_kube_test.go b/test/e2e/generate_kube_test.go index 62482598a..cfa264de2 100644 --- a/test/e2e/generate_kube_test.go +++ b/test/e2e/generate_kube_test.go @@ -137,12 +137,12 @@ var _ = Describe("Podman generate kube", func() { // Separate out the Service and Pod yaml arr := strings.Split(string(kube.Out.Contents()), "---") - Expect(len(arr)).To(Equal(2)) + Expect(arr).To(HaveLen(2)) svc := new(v1.Service) err := yaml.Unmarshal([]byte(arr[0]), svc) Expect(err).To(BeNil()) - Expect(len(svc.Spec.Ports)).To(Equal(1)) + Expect(svc.Spec.Ports).To(HaveLen(1)) Expect(svc.Spec.Ports[0].TargetPort.IntValue()).To(Equal(3890)) pod := new(v1.Pod) @@ -324,7 +324,7 @@ var _ = Describe("Podman generate kube", func() { pod := new(v1.Pod) err := yaml.Unmarshal(kube.Out.Contents(), pod) Expect(err).To(BeNil()) - Expect(len(pod.Spec.HostAliases)).To(Equal(2)) + Expect(pod.Spec.HostAliases).To(HaveLen(2)) Expect(pod.Spec.HostAliases[0].IP).To(Equal(testIP)) Expect(pod.Spec.HostAliases[1].IP).To(Equal(testIP)) }) @@ -340,12 +340,12 @@ var _ = Describe("Podman generate kube", func() { // Separate out the Service and Pod yaml arr := strings.Split(string(kube.Out.Contents()), "---") - Expect(len(arr)).To(Equal(2)) + Expect(arr).To(HaveLen(2)) svc := new(v1.Service) err := yaml.Unmarshal([]byte(arr[0]), svc) Expect(err).To(BeNil()) - Expect(len(svc.Spec.Ports)).To(Equal(1)) + Expect(svc.Spec.Ports).To(HaveLen(1)) Expect(svc.Spec.Ports[0].TargetPort.IntValue()).To(Equal(4000)) Expect(svc.Spec.Ports[0].Protocol).To(Equal(v1.ProtocolUDP)) @@ -504,8 +504,8 @@ var _ = Describe("Podman generate kube", func() { Expect(err).To(BeNil()) containers := pod.Spec.Containers - Expect(len(containers)).To(Equal(1)) - Expect(len(containers[0].Ports)).To(Equal(1)) + Expect(containers).To(HaveLen(1)) + Expect(containers[0].Ports).To(HaveLen(1)) Expect(containers[0].Ports[0].Protocol).To(Equal(v1.ProtocolUDP)) }) @@ -606,9 +606,7 @@ var _ = Describe("Podman generate kube", func() { pod := new(v1.Pod) err = yaml.Unmarshal(b, pod) Expect(err).To(BeNil()) - val, found := pod.Annotations[define.BindMountPrefix+vol1] - Expect(found).To(BeTrue(), "pod.Annotations["+vol1+"]") - Expect(val).To(HaveSuffix("z")) + Expect(pod.Annotations).To(HaveKeyWithValue(define.BindMountPrefix+vol1, HaveSuffix("z"))) rm := podmanTest.Podman([]string{"pod", "rm", "-t", "0", "-f", "test1"}) rm.WaitWithDefaultTimeout() @@ -643,7 +641,7 @@ var _ = Describe("Podman generate kube", func() { err := yaml.Unmarshal(kube.Out.Contents(), pod) Expect(err).To(BeNil()) - Expect(len(pod.Spec.Volumes)).To(Equal(2)) + Expect(pod.Spec.Volumes).To(HaveLen(2)) }) @@ -841,7 +839,7 @@ var _ = Describe("Podman generate kube", func() { Expect(err).To(BeNil()) containers := pod.Spec.Containers - Expect(len(containers)).To(Equal(1)) + Expect(containers).To(HaveLen(1)) Expect(containers[0].Command).To(Equal([]string{"/bin/sleep"})) Expect(containers[0].Args).To(Equal([]string{"10s"})) @@ -863,8 +861,8 @@ var _ = Describe("Podman generate kube", func() { Expect(err).To(BeNil()) containers := pod.Spec.Containers - Expect(len(containers)).To(Equal(1)) - Expect(len(containers[0].Command)).To(Equal(0)) + Expect(containers).To(HaveLen(1)) + Expect(containers[0].Command).To(BeEmpty()) cmd := []string{"echo", "hi"} session = podmanTest.Podman(append([]string{"create", "--name", "test1", ALPINE}, cmd...)) @@ -882,7 +880,7 @@ var _ = Describe("Podman generate kube", func() { Expect(err).To(BeNil()) containers = pod.Spec.Containers - Expect(len(containers)).To(Equal(1)) + Expect(containers).To(HaveLen(1)) Expect(containers[0].Command).To(Equal(cmd)) }) @@ -917,7 +915,7 @@ ENTRYPOINT ["sleep"]` Expect(err).To(BeNil()) containers := pod.Spec.Containers - Expect(len(containers)).To(Equal(1)) + Expect(containers).To(HaveLen(1)) Expect(containers[0].Args).To(Equal([]string{"10s"})) session = podmanTest.Podman([]string{"create", "--pod", "new:testpod-2", "--entrypoint", "echo", image, "hello"}) @@ -935,7 +933,7 @@ ENTRYPOINT ["sleep"]` Expect(err).To(BeNil()) containers = pod.Spec.Containers - Expect(len(containers)).To(Equal(1)) + Expect(containers).To(HaveLen(1)) Expect(containers[0].Command).To(Equal([]string{"echo"})) Expect(containers[0].Args).To(Equal([]string{"hello"})) }) @@ -955,7 +953,7 @@ ENTRYPOINT ["sleep"]` Expect(err).To(BeNil()) containers := pod.Spec.Containers - Expect(len(containers)).To(Equal(1)) + Expect(containers).To(HaveLen(1)) Expect(containers[0].SecurityContext.Capabilities).To(BeNil()) // Now make sure we can also `play` it. @@ -1071,9 +1069,7 @@ USER test1` err := yaml.Unmarshal(kube.Out.Contents(), pod) Expect(err).To(BeNil()) - v, ok := pod.GetAnnotations()["io.containers.autoupdate/top"] - Expect(ok).To(Equal(true)) - Expect(v).To(Equal("local")) + Expect(pod.GetAnnotations()).To(HaveKeyWithValue("io.containers.autoupdate/top", "local")) }) It("podman generate kube on pod with auto update labels in all containers", func() { @@ -1100,13 +1096,8 @@ USER test1` Expect(pod.Spec.Containers[1].WorkingDir).To(Equal("/root")) for _, ctr := range []string{"top1", "top2"} { - v, ok := pod.GetAnnotations()["io.containers.autoupdate/"+ctr] - Expect(ok).To(Equal(true)) - Expect(v).To(Equal("registry")) - - v, ok = pod.GetAnnotations()["io.containers.autoupdate.authfile/"+ctr] - Expect(ok).To(Equal(true)) - Expect(v).To(Equal("/some/authfile.json")) + Expect(pod.GetAnnotations()).To(HaveKeyWithValue("io.containers.autoupdate/"+ctr, "registry")) + Expect(pod.GetAnnotations()).To(HaveKeyWithValue("io.containers.autoupdate.authfile/"+ctr, "/some/authfile.json")) } }) }) diff --git a/test/e2e/generate_systemd_test.go b/test/e2e/generate_systemd_test.go index 1cffdc62e..fd9ae5037 100644 --- a/test/e2e/generate_systemd_test.go +++ b/test/e2e/generate_systemd_test.go @@ -282,6 +282,19 @@ var _ = Describe("Podman generate systemd", func() { Expect(session.OutputToString()).To(ContainSubstring(" pod create ")) }) + It("podman generate systemd --restart-sec 15 --name foo", func() { + n := podmanTest.Podman([]string{"pod", "create", "--name", "foo"}) + n.WaitWithDefaultTimeout() + Expect(n).Should(Exit(0)) + + session := podmanTest.Podman([]string{"generate", "systemd", "--restart-sec", "15", "--name", "foo"}) + session.WaitWithDefaultTimeout() + Expect(session).Should(Exit(0)) + + // Grepping the output (in addition to unit tests) + Expect(session.OutputToString()).To(ContainSubstring("RestartSec=15")) + }) + It("podman generate systemd --new=false pod", func() { n := podmanTest.Podman([]string{"pod", "create", "--name", "foo"}) n.WaitWithDefaultTimeout() diff --git a/test/e2e/healthcheck_run_test.go b/test/e2e/healthcheck_run_test.go index c9a6f926f..6e4dc5bbf 100644 --- a/test/e2e/healthcheck_run_test.go +++ b/test/e2e/healthcheck_run_test.go @@ -239,7 +239,7 @@ var _ = Describe("Podman healthcheck run", func() { ps := podmanTest.Podman([]string{"ps", "--filter", "health=healthy"}) ps.WaitWithDefaultTimeout() Expect(ps).Should(Exit(0)) - Expect(len(ps.OutputToStringArray())).To(Equal(2)) + Expect(ps.OutputToStringArray()).To(HaveLen(2)) Expect(ps.OutputToString()).To(ContainSubstring("hc")) }) }) diff --git a/test/e2e/history_test.go b/test/e2e/history_test.go index 1f8faa6c2..c6e9579ae 100644 --- a/test/e2e/history_test.go +++ b/test/e2e/history_test.go @@ -73,7 +73,7 @@ var _ = Describe("Podman history", func() { lines := session.OutputToStringArray() Expect(len(lines)).To(BeNumerically(">", 0)) // the image id must be 64 chars long - Expect(len(lines[0])).To(BeNumerically("==", 64)) + Expect(lines[0]).To(HaveLen(64)) session = podmanTest.Podman([]string{"history", "--no-trunc", "--format", "{{.CreatedBy}}", ALPINE}) session.WaitWithDefaultTimeout() diff --git a/test/e2e/image_scp_test.go b/test/e2e/image_scp_test.go index 6c6c85bc3..6651a04b5 100644 --- a/test/e2e/image_scp_test.go +++ b/test/e2e/image_scp_test.go @@ -109,7 +109,7 @@ var _ = Describe("podman image scp", func() { cfg, err := config.ReadCustomConfig() Expect(err).ShouldNot(HaveOccurred()) Expect(cfg.Engine.ActiveService).To(Equal("QA")) - Expect(cfg.Engine.ServiceDestinations["QA"]).To(Equal( + Expect(cfg.Engine.ServiceDestinations).To(HaveKeyWithValue("QA", config.Destination{ URI: "ssh://root@server.fubar.com:2222/run/podman/podman.sock", }, diff --git a/test/e2e/images_test.go b/test/e2e/images_test.go index 8e21ca606..efa9f399b 100644 --- a/test/e2e/images_test.go +++ b/test/e2e/images_test.go @@ -78,7 +78,7 @@ var _ = Describe("Podman images", func() { session = podmanTest.Podman([]string{"images", "-qn"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(BeNumerically("==", len(CACHE_IMAGES))) + Expect(session.OutputToStringArray()).To(HaveLen(len(CACHE_IMAGES))) }) It("podman images with digests", func() { @@ -125,7 +125,7 @@ var _ = Describe("Podman images", func() { session := podmanTest.Podman([]string{"images", "-q", ALPINE}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(1)) + Expect(session.OutputToStringArray()).To(HaveLen(1)) session = podmanTest.Podman([]string{"tag", ALPINE, "foo:a"}) session.WaitWithDefaultTimeout() @@ -137,31 +137,31 @@ var _ = Describe("Podman images", func() { session = podmanTest.Podman([]string{"images", "-q", "foo"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) }) It("podman images filter reference", func() { result := podmanTest.Podman([]string{"images", "-q", "-f", "reference=quay.io*"}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).To(Equal(7)) + Expect(result.OutputToStringArray()).To(HaveLen(7)) retalpine := podmanTest.Podman([]string{"images", "-f", "reference=a*pine"}) retalpine.WaitWithDefaultTimeout() Expect(retalpine).Should(Exit(0)) - Expect(len(retalpine.OutputToStringArray())).To(Equal(6)) + Expect(retalpine.OutputToStringArray()).To(HaveLen(6)) Expect(retalpine.OutputToString()).To(ContainSubstring("alpine")) retalpine = podmanTest.Podman([]string{"images", "-f", "reference=alpine"}) retalpine.WaitWithDefaultTimeout() Expect(retalpine).Should(Exit(0)) - Expect(len(retalpine.OutputToStringArray())).To(Equal(6)) + Expect(retalpine.OutputToStringArray()).To(HaveLen(6)) Expect(retalpine.OutputToString()).To(ContainSubstring("alpine")) retnone := podmanTest.Podman([]string{"images", "-q", "-f", "reference=bogus"}) retnone.WaitWithDefaultTimeout() Expect(retnone).Should(Exit(0)) - Expect(len(retnone.OutputToStringArray())).To(Equal(0)) + Expect(retnone.OutputToStringArray()).To(BeEmpty()) }) It("podman images filter before image", func() { @@ -172,8 +172,7 @@ RUN apk update && apk add strace result := podmanTest.Podman([]string{"images", "-q", "-f", "before=foobar.com/before:latest"}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray()) >= 1).To(BeTrue()) - + Expect(len(result.OutputToStringArray())).To(BeNumerically(">=", 1)) }) It("podman images workingdir from image", func() { @@ -194,7 +193,7 @@ WORKDIR /test result := podmanTest.Podman([]string{"images", "-q", "-f", "since=quay.io/libpod/alpine:latest"}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).To(Equal(9)) + Expect(result.OutputToStringArray()).To(HaveLen(9)) }) It("podman image list filter after image", func() { @@ -229,11 +228,10 @@ WORKDIR /test result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - found, _ := result.GrepString("<none>") if noneTag { - Expect(found).To(BeTrue()) + Expect(result.OutputToString()).To(ContainSubstring("<none>")) } else { - Expect(found).To(BeFalse()) + Expect(result.OutputToString()).To(Not(ContainSubstring("<none>"))) } } // No "<none>" tag as tagged alpine instances should be present. @@ -327,12 +325,12 @@ ENV foo=bar session := podmanTest.Podman([]string{"images"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(len(CACHE_IMAGES) + 2)) + Expect(session.OutputToStringArray()).To(HaveLen(len(CACHE_IMAGES) + 2)) session2 := podmanTest.Podman([]string{"images", "--all"}) session2.WaitWithDefaultTimeout() Expect(session2).Should(Exit(0)) - Expect(len(session2.OutputToStringArray())).To(Equal(len(CACHE_IMAGES) + 4)) + Expect(session2.OutputToStringArray()).To(HaveLen(len(CACHE_IMAGES) + 4)) }) It("podman images filter by label", func() { @@ -344,7 +342,7 @@ LABEL "com.example.vendor"="Example Vendor" session := podmanTest.Podman([]string{"images", "-f", "label=version=1.0"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) }) It("podman with images with no layers", func() { @@ -381,7 +379,7 @@ LABEL "com.example.vendor"="Example Vendor" session = podmanTest.Podman([]string{"history", "--quiet", "foo"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(6)) + Expect(session.OutputToStringArray()).To(HaveLen(6)) session = podmanTest.Podman([]string{"image", "list", "foo"}) session.WaitWithDefaultTimeout() @@ -438,11 +436,11 @@ RUN > file2 result := podmanTest.Podman([]string{"image", "prune", "--filter", "label=abc", "--force"}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).To(Equal(1)) + Expect(result.OutputToStringArray()).To(HaveLen(1)) //check if really abc is removed result = podmanTest.Podman([]string{"image", "list", "--filter", "label=abc"}) - Expect(len(result.OutputToStringArray())).To(Equal(0)) + Expect(result.OutputToStringArray()).To(BeEmpty()) }) @@ -459,11 +457,11 @@ RUN > file2 result := podmanTest.Podman([]string{"builder", "prune", "--filter", "label=abc", "--force"}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).To(Equal(1)) + Expect(result.OutputToStringArray()).To(HaveLen(1)) //check if really abc is removed result = podmanTest.Podman([]string{"image", "list", "--filter", "label=abc"}) - Expect(len(result.OutputToStringArray())).To(Equal(0)) + Expect(result.OutputToStringArray()).To(BeEmpty()) }) diff --git a/test/e2e/inspect_test.go b/test/e2e/inspect_test.go index 0f0237adc..127e26b11 100644 --- a/test/e2e/inspect_test.go +++ b/test/e2e/inspect_test.go @@ -113,7 +113,7 @@ var _ = Describe("Podman inspect", func() { result := podmanTest.Podman([]string{"inspect", "--format={{.ID}}", cid, ALPINE}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).To(Equal(2)) + Expect(result.OutputToStringArray()).To(HaveLen(2)) }) It("podman inspect container and filter for Image{ID}", func() { @@ -124,12 +124,12 @@ var _ = Describe("Podman inspect", func() { result := podmanTest.Podman([]string{"inspect", "--format={{.ImageID}}", cid}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).To(Equal(1)) + Expect(result.OutputToStringArray()).To(HaveLen(1)) result = podmanTest.Podman([]string{"inspect", "--format={{.Image}}", cid}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).To(Equal(1)) + Expect(result.OutputToStringArray()).To(HaveLen(1)) }) It("podman inspect container and filter for CreateCommand", func() { @@ -140,7 +140,7 @@ var _ = Describe("Podman inspect", func() { result := podmanTest.Podman([]string{"inspect", "--format={{.Config.CreateCommand}}", cid}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).To(Equal(1)) + Expect(result.OutputToStringArray()).To(HaveLen(1)) }) It("podman inspect -l with additional input should fail", func() { @@ -200,7 +200,7 @@ var _ = Describe("Podman inspect", func() { baseInspect.WaitWithDefaultTimeout() Expect(baseInspect).Should(Exit(0)) baseJSON := baseInspect.InspectImageJSON() - Expect(len(baseJSON)).To(Equal(1)) + Expect(baseJSON).To(HaveLen(1)) ctrInspect := podmanTest.Podman([]string{"container", "inspect", ALPINE}) ctrInspect.WaitWithDefaultTimeout() @@ -210,7 +210,7 @@ var _ = Describe("Podman inspect", func() { imageInspect.WaitWithDefaultTimeout() Expect(imageInspect).Should(Exit(0)) imageJSON := imageInspect.InspectImageJSON() - Expect(len(imageJSON)).To(Equal(1)) + Expect(imageJSON).To(HaveLen(1)) Expect(baseJSON[0].ID).To(Equal(imageJSON[0].ID)) }) @@ -225,13 +225,13 @@ var _ = Describe("Podman inspect", func() { baseInspect.WaitWithDefaultTimeout() Expect(baseInspect).Should(Exit(0)) baseJSON := baseInspect.InspectContainerToJSON() - Expect(len(baseJSON)).To(Equal(1)) + Expect(baseJSON).To(HaveLen(1)) ctrInspect := podmanTest.Podman([]string{"container", "inspect", ctrName}) ctrInspect.WaitWithDefaultTimeout() Expect(ctrInspect).Should(Exit(0)) ctrJSON := ctrInspect.InspectContainerToJSON() - Expect(len(ctrJSON)).To(Equal(1)) + Expect(ctrJSON).To(HaveLen(1)) imageInspect := podmanTest.Podman([]string{"image", "inspect", ctrName}) imageInspect.WaitWithDefaultTimeout() @@ -245,7 +245,7 @@ var _ = Describe("Podman inspect", func() { baseInspect.WaitWithDefaultTimeout() Expect(baseInspect).To(ExitWithError()) emptyJSON := baseInspect.InspectContainerToJSON() - Expect(len(emptyJSON)).To(Equal(0)) + Expect(emptyJSON).To(BeEmpty()) }) It("podman inspect one container with not exist returns 1-length valid array", func() { @@ -258,7 +258,7 @@ var _ = Describe("Podman inspect", func() { baseInspect.WaitWithDefaultTimeout() Expect(baseInspect).To(ExitWithError()) baseJSON := baseInspect.InspectContainerToJSON() - Expect(len(baseJSON)).To(Equal(1)) + Expect(baseJSON).To(HaveLen(1)) Expect(baseJSON[0].Name).To(Equal(ctrName)) }) @@ -277,7 +277,7 @@ var _ = Describe("Podman inspect", func() { baseInspect.WaitWithDefaultTimeout() Expect(baseInspect).Should(Exit(0)) baseJSON := baseInspect.InspectContainerToJSON() - Expect(len(baseJSON)).To(Equal(1)) + Expect(baseJSON).To(HaveLen(1)) Expect(baseJSON[0].Name).To(Equal(ctrName)) }) @@ -301,7 +301,7 @@ var _ = Describe("Podman inspect", func() { baseInspect.WaitWithDefaultTimeout() Expect(baseInspect).Should(Exit(0)) baseJSON := baseInspect.InspectContainerToJSON() - Expect(len(baseJSON)).To(Equal(1)) + Expect(baseJSON).To(HaveLen(1)) Expect(baseJSON[0].HostConfig.SecurityOpt).To(Equal([]string{"label=type:spc_t,label=level:s0", "seccomp=unconfined"})) }) @@ -468,8 +468,8 @@ var _ = Describe("Podman inspect", func() { Expect(session).Should(Exit(0)) inspect := podmanTest.InspectContainer(ctrName) - Expect(len(inspect)).To(Equal(1)) - Expect(len(inspect[0].NetworkSettings.Networks)).To(Equal(1)) + Expect(inspect).To(HaveLen(1)) + Expect(inspect[0].NetworkSettings.Networks).To(HaveLen(1)) }) It("Verify stopped container still has default network in inspect", func() { @@ -480,8 +480,8 @@ var _ = Describe("Podman inspect", func() { Expect(session).Should(Exit(0)) inspect := podmanTest.InspectContainer(ctrName) - Expect(len(inspect)).To(Equal(1)) - Expect(len(inspect[0].NetworkSettings.Networks)).To(Equal(1)) + Expect(inspect).To(HaveLen(1)) + Expect(inspect[0].NetworkSettings.Networks).To(HaveLen(1)) }) It("Container inspect with unlimited uilimits should be -1", func() { @@ -519,8 +519,8 @@ var _ = Describe("Podman inspect", func() { Expect(inspect).Should(Exit(0)) data := inspect.InspectContainerToJSON() - Expect(len(data)).To(Equal(1)) - Expect(len(data[0].HostConfig.CapDrop)).To(Equal(3)) + Expect(data).To(HaveLen(1)) + Expect(data[0].HostConfig.CapDrop).To(HaveLen(3)) Expect(data[0].HostConfig.CapDrop[0]).To(Equal("CAP_AUDIT_WRITE")) Expect(data[0].HostConfig.CapDrop[1]).To(Equal("CAP_MKNOD")) Expect(data[0].HostConfig.CapDrop[2]).To(Equal("CAP_NET_RAW")) diff --git a/test/e2e/libpod_suite_remote_test.go b/test/e2e/libpod_suite_remote_test.go index 2ecbd0eab..d60383029 100644 --- a/test/e2e/libpod_suite_remote_test.go +++ b/test/e2e/libpod_suite_remote_test.go @@ -148,7 +148,7 @@ func (p *PodmanTestIntegration) StopRemoteService() { //MakeOptions assembles all the podman main options func getRemoteOptions(p *PodmanTestIntegration, args []string) []string { podmanOptions := strings.Split(fmt.Sprintf("--root %s --runroot %s --runtime %s --conmon %s --cni-config-dir %s --cgroup-manager %s", - p.CrioRoot, p.RunRoot, p.OCIRuntime, p.ConmonBinary, p.CNIConfigDir, p.CgroupManager), " ") + p.Root, p.RunRoot, p.OCIRuntime, p.ConmonBinary, p.CNIConfigDir, p.CgroupManager), " ") if os.Getenv("HOOK_OPTION") != "" { podmanOptions = append(podmanOptions, os.Getenv("HOOK_OPTION")) } @@ -164,15 +164,16 @@ func (p *PodmanTestIntegration) SeedImages() error { // RestoreArtifact puts the cached image into our test store func (p *PodmanTestIntegration) RestoreArtifact(image string) error { - fmt.Printf("Restoring %s...\n", image) - dest := strings.Split(image, "/") - destName := fmt.Sprintf("/tmp/%s.tar", strings.Replace(strings.Join(strings.Split(dest[len(dest)-1], "/"), ""), ":", "-", -1)) - args := []string{"load", "-q", "-i", destName} - podmanOptions := getRemoteOptions(p, args) - command := exec.Command(p.PodmanBinary, podmanOptions...) - fmt.Printf("Running: %s %s\n", p.PodmanBinary, strings.Join(podmanOptions, " ")) - command.Start() - command.Wait() + tarball := imageTarPath(image) + if _, err := os.Stat(tarball); err == nil { + fmt.Printf("Restoring %s...\n", image) + args := []string{"load", "-q", "-i", tarball} + podmanOptions := getRemoteOptions(p, args) + command := exec.Command(p.PodmanBinary, podmanOptions...) + fmt.Printf("Running: %s %s\n", p.PodmanBinary, strings.Join(podmanOptions, " ")) + command.Start() + command.Wait() + } return nil } diff --git a/test/e2e/libpod_suite_test.go b/test/e2e/libpod_suite_test.go index 001a869b1..4147ba2c3 100644 --- a/test/e2e/libpod_suite_test.go +++ b/test/e2e/libpod_suite_test.go @@ -7,7 +7,6 @@ import ( "io/ioutil" "os" "path/filepath" - "strings" "github.com/containers/podman/v3/pkg/rootless" ) @@ -59,11 +58,12 @@ func PodmanTestCreate(tempDir string) *PodmanTestIntegration { // RestoreArtifact puts the cached image into our test store func (p *PodmanTestIntegration) RestoreArtifact(image string) error { - fmt.Printf("Restoring %s...\n", image) - dest := strings.Split(image, "/") - destName := fmt.Sprintf("/tmp/%s.tar", strings.Replace(strings.Join(strings.Split(dest[len(dest)-1], "/"), ""), ":", "-", -1)) - restore := p.PodmanNoEvents([]string{"load", "-q", "-i", destName}) - restore.Wait(90) + tarball := imageTarPath(image) + if _, err := os.Stat(tarball); err == nil { + fmt.Printf("Restoring %s...\n", image) + restore := p.PodmanNoEvents([]string{"load", "-q", "-i", tarball}) + restore.Wait(90) + } return nil } diff --git a/test/e2e/load_test.go b/test/e2e/load_test.go index ad5634e0c..ac70ebd8c 100644 --- a/test/e2e/load_test.go +++ b/test/e2e/load_test.go @@ -160,8 +160,7 @@ var _ = Describe("Podman load", func() { Expect(result).Should(Exit(125)) errMsg := fmt.Sprintf("remote client supports archives only but %q is a directory", podmanTest.TempDir) - found, _ := result.ErrorGrepString(errMsg) - Expect(found).Should(BeTrue()) + Expect(result.ErrorToString()).To(ContainSubstring(errMsg)) }) It("podman load bogus file", func() { diff --git a/test/e2e/logs_test.go b/test/e2e/logs_test.go index 2558af0eb..dc00491cd 100644 --- a/test/e2e/logs_test.go +++ b/test/e2e/logs_test.go @@ -68,7 +68,7 @@ var _ = Describe("Podman logs", func() { results := podmanTest.Podman([]string{"logs", cid}) results.WaitWithDefaultTimeout() Expect(results).To(Exit(0)) - Expect(len(results.OutputToStringArray())).To(Equal(3)) + Expect(results.OutputToStringArray()).To(HaveLen(3)) Expect(results.OutputToString()).To(Equal("podman podman podman")) }) @@ -83,7 +83,7 @@ var _ = Describe("Podman logs", func() { results := podmanTest.Podman([]string{"logs", "--tail", "2", cid}) results.WaitWithDefaultTimeout() Expect(results).To(Exit(0)) - Expect(len(results.OutputToStringArray())).To(Equal(2)) + Expect(results.OutputToStringArray()).To(HaveLen(2)) }) It("tail zero lines: "+log, func() { @@ -97,7 +97,7 @@ var _ = Describe("Podman logs", func() { results := podmanTest.Podman([]string{"logs", "--tail", "0", cid}) results.WaitWithDefaultTimeout() Expect(results).To(Exit(0)) - Expect(len(results.OutputToStringArray())).To(Equal(0)) + Expect(results.OutputToStringArray()).To(BeEmpty()) }) It("tail 99 lines: "+log, func() { @@ -111,7 +111,7 @@ var _ = Describe("Podman logs", func() { results := podmanTest.Podman([]string{"logs", "--tail", "99", cid}) results.WaitWithDefaultTimeout() Expect(results).To(Exit(0)) - Expect(len(results.OutputToStringArray())).To(Equal(3)) + Expect(results.OutputToStringArray()).To(HaveLen(3)) }) It("tail 800 lines: "+log, func() { @@ -125,7 +125,7 @@ var _ = Describe("Podman logs", func() { results := podmanTest.Podman([]string{"logs", "--tail", "800", cid}) results.WaitWithDefaultTimeout() Expect(results).To(Exit(0)) - Expect(len(results.OutputToStringArray())).To(Equal(800)) + Expect(results.OutputToStringArray()).To(HaveLen(800)) }) It("tail 2 lines with timestamps: "+log, func() { @@ -139,7 +139,7 @@ var _ = Describe("Podman logs", func() { results := podmanTest.Podman([]string{"logs", "--tail", "2", "-t", cid}) results.WaitWithDefaultTimeout() Expect(results).To(Exit(0)) - Expect(len(results.OutputToStringArray())).To(Equal(2)) + Expect(results.OutputToStringArray()).To(HaveLen(2)) }) It("since time 2017-08-07: "+log, func() { @@ -153,7 +153,7 @@ var _ = Describe("Podman logs", func() { results := podmanTest.Podman([]string{"logs", "--since", "2017-08-07T10:10:09.056611202-04:00", cid}) results.WaitWithDefaultTimeout() Expect(results).To(Exit(0)) - Expect(len(results.OutputToStringArray())).To(Equal(3)) + Expect(results.OutputToStringArray()).To(HaveLen(3)) }) It("since duration 10m: "+log, func() { @@ -167,7 +167,7 @@ var _ = Describe("Podman logs", func() { results := podmanTest.Podman([]string{"logs", "--since", "10m", cid}) results.WaitWithDefaultTimeout() Expect(results).To(Exit(0)) - Expect(len(results.OutputToStringArray())).To(Equal(3)) + Expect(results.OutputToStringArray()).To(HaveLen(3)) }) It("until duration 10m: "+log, func() { @@ -181,7 +181,7 @@ var _ = Describe("Podman logs", func() { results := podmanTest.Podman([]string{"logs", "--until", "10m", cid}) results.WaitWithDefaultTimeout() Expect(results).To(Exit(0)) - Expect(len(results.OutputToStringArray())).To(Equal(3)) + Expect(results.OutputToStringArray()).To(HaveLen(3)) }) It("until time NOW: "+log, func() { @@ -198,7 +198,7 @@ var _ = Describe("Podman logs", func() { results := podmanTest.Podman([]string{"logs", "--until", nowS, cid}) results.WaitWithDefaultTimeout() Expect(results).To(Exit(0)) - Expect(len(results.OutputToStringArray())).To(Equal(3)) + Expect(results.OutputToStringArray()).To(HaveLen(3)) }) It("latest and container name should fail: "+log, func() { @@ -228,7 +228,7 @@ var _ = Describe("Podman logs", func() { Expect(results).Should(Exit(0)) output := results.OutputToStringArray() - Expect(len(output)).To(Equal(6)) + Expect(output).To(HaveLen(6)) Expect(strings.Contains(output[0], cid1[:12]) || strings.Contains(output[0], cid2[:12])).To(BeTrue()) }) @@ -342,7 +342,7 @@ var _ = Describe("Podman logs", func() { results.WaitWithDefaultTimeout() Expect(results).To(Exit(0)) outlines := results.OutputToStringArray() - Expect(len(outlines)).To(Equal(2)) + Expect(outlines).To(HaveLen(2)) Expect(outlines[0]).To(Equal("1\r")) Expect(outlines[1]).To(Equal("2\r")) }) diff --git a/test/e2e/mount_test.go b/test/e2e/mount_test.go index 0555a0749..cd7f73337 100644 --- a/test/e2e/mount_test.go +++ b/test/e2e/mount_test.go @@ -348,7 +348,7 @@ var _ = Describe("Podman mount", func() { umount := podmanTest.Podman([]string{"image", "umount", "--all"}) umount.WaitWithDefaultTimeout() Expect(umount).Should(Exit(0)) - Expect(len(umount.OutputToStringArray())).To(Equal(1)) + Expect(umount.OutputToStringArray()).To(HaveLen(1)) }) It("podman mount many", func() { diff --git a/test/e2e/network_test.go b/test/e2e/network_test.go index ff306f0f8..92f962abc 100644 --- a/test/e2e/network_test.go +++ b/test/e2e/network_test.go @@ -140,7 +140,7 @@ var _ = Describe("Podman network", func() { session := podmanTest.Podman([]string{"network", "ls", "--filter", "label=abc"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(session.LineInOutputContains(name)).To(BeFalse()) + Expect(session.OutputToString()).To(Not(ContainSubstring(name))) }) It("podman network ID test", func() { @@ -208,7 +208,7 @@ var _ = Describe("Podman network", func() { results := podmanTest.Podman([]string{"network", "ls", "--quiet"}) results.WaitWithDefaultTimeout() Expect(results).Should(Exit(0)) - Expect(results.LineInOutputContains(name)).To(BeFalse()) + Expect(results.OutputToString()).To(Not(ContainSubstring(name))) }) } @@ -262,8 +262,8 @@ var _ = Describe("Podman network", func() { inspect.WaitWithDefaultTimeout() Expect(inspect).Should(Exit(0)) conData := inspect.InspectContainerToJSON() - Expect(len(conData)).To(Equal(1)) - Expect(len(conData[0].NetworkSettings.Networks)).To(Equal(1)) + Expect(conData).To(HaveLen(1)) + Expect(conData[0].NetworkSettings.Networks).To(HaveLen(1)) net, ok := conData[0].NetworkSettings.Networks[netName] Expect(ok).To(BeTrue()) Expect(net.NetworkID).To(Equal(netName)) @@ -298,8 +298,8 @@ var _ = Describe("Podman network", func() { inspect.WaitWithDefaultTimeout() Expect(inspect).Should(Exit(0)) conData := inspect.InspectContainerToJSON() - Expect(len(conData)).To(Equal(1)) - Expect(len(conData[0].NetworkSettings.Networks)).To(Equal(2)) + Expect(conData).To(HaveLen(1)) + Expect(conData[0].NetworkSettings.Networks).To(HaveLen(2)) net1, ok := conData[0].NetworkSettings.Networks[netName1] Expect(ok).To(BeTrue()) Expect(net1.NetworkID).To(Equal(netName1)) @@ -335,8 +335,8 @@ var _ = Describe("Podman network", func() { inspect.WaitWithDefaultTimeout() Expect(inspect).Should(Exit(0)) conData := inspect.InspectContainerToJSON() - Expect(len(conData)).To(Equal(1)) - Expect(len(conData[0].NetworkSettings.Networks)).To(Equal(2)) + Expect(conData).To(HaveLen(1)) + Expect(conData[0].NetworkSettings.Networks).To(HaveLen(2)) net1, ok := conData[0].NetworkSettings.Networks[netName1] Expect(ok).To(BeTrue()) Expect(net1.NetworkID).To(Equal(netName1)) diff --git a/test/e2e/pause_test.go b/test/e2e/pause_test.go index 99488a507..c9182960a 100644 --- a/test/e2e/pause_test.go +++ b/test/e2e/pause_test.go @@ -282,7 +282,7 @@ var _ = Describe("Podman pause", func() { running := podmanTest.Podman([]string{"ps", "-q"}) running.WaitWithDefaultTimeout() Expect(running).Should(Exit(0)) - Expect(len(running.OutputToStringArray())).To(Equal(3)) + Expect(running.OutputToStringArray()).To(HaveLen(3)) pause := podmanTest.Podman([]string{"pause", "--all"}) pause.WaitWithDefaultTimeout() @@ -291,7 +291,7 @@ var _ = Describe("Podman pause", func() { running = podmanTest.Podman([]string{"ps", "-q"}) running.WaitWithDefaultTimeout() Expect(running).Should(Exit(0)) - Expect(len(running.OutputToStringArray())).To(Equal(0)) + Expect(running.OutputToStringArray()).To(BeEmpty()) unpause := podmanTest.Podman([]string{"unpause", "--all"}) unpause.WaitWithDefaultTimeout() @@ -317,7 +317,7 @@ var _ = Describe("Podman pause", func() { running := podmanTest.Podman([]string{"ps", "-q"}) running.WaitWithDefaultTimeout() Expect(running).Should(Exit(0)) - Expect(len(running.OutputToStringArray())).To(Equal(3)) + Expect(running.OutputToStringArray()).To(HaveLen(3)) }) }) diff --git a/test/e2e/play_build_test.go b/test/e2e/play_build_test.go index 9bdf9d06b..a56560634 100644 --- a/test/e2e/play_build_test.go +++ b/test/e2e/play_build_test.go @@ -125,7 +125,7 @@ LABEL marge=mom Expect(inspect).Should(Exit(0)) inspectData := inspect.InspectContainerToJSON() Expect(len(inspectData)).To(BeNumerically(">", 0)) - Expect(inspectData[0].Config.Labels["homer"]).To(Equal("dad")) + Expect(inspectData[0].Config.Labels).To(HaveKeyWithValue("homer", "dad")) }) It("Check that image is built using Containerfile", func() { @@ -162,7 +162,7 @@ LABEL marge=mom Expect(inspect).Should(Exit(0)) inspectData := inspect.InspectContainerToJSON() Expect(len(inspectData)).To(BeNumerically(">", 0)) - Expect(inspectData[0].Config.Labels["homer"]).To(Equal("dad")) + Expect(inspectData[0].Config.Labels).To(HaveKeyWithValue("homer", "dad")) }) It("Do not build image if already in the local store", func() { @@ -208,8 +208,8 @@ LABEL marge=mom Expect(inspect).Should(Exit(0)) inspectData := inspect.InspectContainerToJSON() Expect(len(inspectData)).To(BeNumerically(">", 0)) - Expect(inspectData[0].Config.Labels["homer"]).To(Equal("")) - Expect(inspectData[0].Config.Labels["marge"]).To(Equal("mom")) + Expect(inspectData[0].Config.Labels).To(Not(HaveKey("homer"))) + Expect(inspectData[0].Config.Labels).To(HaveKeyWithValue("marge", "mom")) }) It("--build should override image in store", func() { @@ -255,8 +255,8 @@ LABEL marge=mom Expect(inspect).Should(Exit(0)) inspectData := inspect.InspectContainerToJSON() Expect(len(inspectData)).To(BeNumerically(">", 0)) - Expect(inspectData[0].Config.Labels["homer"]).To(Equal("dad")) - Expect(inspectData[0].Config.Labels["marge"]).To(Equal("")) + Expect(inspectData[0].Config.Labels).To(HaveKeyWithValue("homer", "dad")) + Expect(inspectData[0].Config.Labels).To(Not(HaveKey("marge"))) }) }) diff --git a/test/e2e/play_kube_test.go b/test/e2e/play_kube_test.go index 1e15b50a7..36010704f 100644 --- a/test/e2e/play_kube_test.go +++ b/test/e2e/play_kube_test.go @@ -380,6 +380,18 @@ spec: persistentVolumeClaim: claimName: {{ .PersistentVolumeClaim.ClaimName }} {{- end }} + {{- if (eq .VolumeType "ConfigMap") }} + configMap: + name: {{ .ConfigMap.Name }} + optional: {{ .ConfigMap.Optional }} + {{- with .ConfigMap.Items }} + items: + {{- range . }} + - key: {{ .key }} + path: {{ .path }} + {{- end }} + {{- end }} + {{- end }} {{ end }} {{ end }} status: {} @@ -619,14 +631,14 @@ func createSecret(podmanTest *PodmanTestIntegration, name string, value []byte) Expect(secret).Should(Exit(0)) } -// ConfigMap describes the options a kube yaml can be configured at configmap level -type ConfigMap struct { +// CM describes the options a kube yaml can be configured at configmap level +type CM struct { Name string Data map[string]string } -func getConfigMap(options ...configMapOption) *ConfigMap { - cm := ConfigMap{ +func getConfigMap(options ...configMapOption) *CM { + cm := CM{ Name: defaultConfigMapName, Data: map[string]string{}, } @@ -638,16 +650,16 @@ func getConfigMap(options ...configMapOption) *ConfigMap { return &cm } -type configMapOption func(*ConfigMap) +type configMapOption func(*CM) func withConfigMapName(name string) configMapOption { - return func(configmap *ConfigMap) { + return func(configmap *CM) { configmap.Name = name } } func withConfigMapData(k, v string) configMapOption { - return func(configmap *ConfigMap) { + return func(configmap *CM) { configmap.Data[k] = v } } @@ -1047,11 +1059,18 @@ type PersistentVolumeClaim struct { ClaimName string } +type ConfigMap struct { + Name string + Items []map[string]string + Optional bool +} + type Volume struct { VolumeType string Name string HostPath PersistentVolumeClaim + ConfigMap } // getHostPathVolume takes a type and a location for a HostPath @@ -1079,6 +1098,20 @@ func getPersistentVolumeClaimVolume(vName string) *Volume { } } +// getConfigMap returns a new ConfigMap Volume given the name and items +// of the ConfigMap. +func getConfigMapVolume(vName string, items []map[string]string, optional bool) *Volume { + return &Volume{ + VolumeType: "ConfigMap", + Name: defaultVolName, + ConfigMap: ConfigMap{ + Name: vName, + Items: items, + Optional: optional, + }, + } +} + type Env struct { Name string Value string @@ -2017,8 +2050,8 @@ spec: ctr := inspect.InspectContainerToJSON() Expect(ctr[0].Config.WorkingDir).To(ContainSubstring("/etc")) - Expect(ctr[0].Config.Labels["key1"]).To(ContainSubstring("value1")) - Expect(ctr[0].Config.Labels["key1"]).To(ContainSubstring("value1")) + Expect(ctr[0].Config.Labels).To(HaveKeyWithValue("key1", ContainSubstring("value1"))) + Expect(ctr[0].Config.Labels).To(HaveKeyWithValue("key1", ContainSubstring("value1"))) Expect(ctr[0].Config.StopSignal).To(Equal(uint(51))) }) @@ -2291,7 +2324,7 @@ VOLUME %s`, ALPINE, hostPathDir+"/") // If two volumes are specified and share the same destination, // only one will be mounted. Host path volumes take precedence. ctrJSON := inspect.InspectContainerToJSON() - Expect(len(ctrJSON[0].Mounts)).To(Equal(1)) + Expect(ctrJSON[0].Mounts).To(HaveLen(1)) Expect(ctrJSON[0].Mounts[0].Type).To(Equal("bind")) }) @@ -2316,6 +2349,75 @@ VOLUME %s`, ALPINE, hostPathDir+"/") Expect(inspect.OutputToString()).To(Equal(correct)) }) + It("podman play kube ConfigMap volume with no items", func() { + volumeName := "cmVol" + cm := getConfigMap(withConfigMapName(volumeName), withConfigMapData("FOO", "foobar")) + cmYaml, err := getKubeYaml("configmap", cm) + Expect(err).To(BeNil()) + + ctr := getCtr(withVolumeMount("/test", false), withImage(BB)) + pod := getPod(withVolume(getConfigMapVolume(volumeName, []map[string]string{}, false)), withCtr(ctr)) + podYaml, err := getKubeYaml("pod", pod) + Expect(err).To(BeNil()) + yamls := []string{cmYaml, podYaml} + err = generateMultiDocKubeYaml(yamls, kubeYaml) + Expect(err).To(BeNil()) + + kube := podmanTest.Podman([]string{"play", "kube", kubeYaml}) + kube.WaitWithDefaultTimeout() + Expect(kube).Should(Exit(0)) + + cmData := podmanTest.Podman([]string{"exec", getCtrNameInPod(pod), "cat", "/test/FOO"}) + cmData.WaitWithDefaultTimeout() + Expect(cmData).Should(Exit(0)) + Expect(cmData.OutputToString()).To(Equal("foobar")) + }) + + It("podman play kube ConfigMap volume with items", func() { + volumeName := "cmVol" + cm := getConfigMap(withConfigMapName(volumeName), withConfigMapData("FOO", "foobar")) + cmYaml, err := getKubeYaml("configmap", cm) + Expect(err).To(BeNil()) + volumeContents := []map[string]string{{ + "key": "FOO", + "path": "BAR", + }} + + ctr := getCtr(withVolumeMount("/test", false), withImage(BB)) + pod := getPod(withVolume(getConfigMapVolume(volumeName, volumeContents, false)), withCtr(ctr)) + podYaml, err := getKubeYaml("pod", pod) + Expect(err).To(BeNil()) + yamls := []string{cmYaml, podYaml} + err = generateMultiDocKubeYaml(yamls, kubeYaml) + Expect(err).To(BeNil()) + + kube := podmanTest.Podman([]string{"play", "kube", kubeYaml}) + kube.WaitWithDefaultTimeout() + Expect(kube).Should(Exit(0)) + + cmData := podmanTest.Podman([]string{"exec", getCtrNameInPod(pod), "cat", "/test/BAR"}) + cmData.WaitWithDefaultTimeout() + Expect(cmData).Should(Exit(0)) + Expect(cmData.OutputToString()).To(Equal("foobar")) + + cmData = podmanTest.Podman([]string{"exec", getCtrNameInPod(pod), "cat", "/test/FOO"}) + cmData.WaitWithDefaultTimeout() + Expect(cmData).Should(Not(Exit(0))) + }) + + It("podman play kube with a missing optional ConfigMap volume", func() { + volumeName := "cmVol" + + ctr := getCtr(withVolumeMount("/test", false), withImage(BB)) + pod := getPod(withVolume(getConfigMapVolume(volumeName, []map[string]string{}, true)), withCtr(ctr)) + err = generateKubeYaml("pod", pod, kubeYaml) + Expect(err).To(BeNil()) + + kube := podmanTest.Podman([]string{"play", "kube", kubeYaml}) + kube.WaitWithDefaultTimeout() + Expect(kube).Should(Exit(0)) + }) + It("podman play kube applies labels to pods", func() { var numReplicas int32 = 5 expectedLabelKey := "key1" @@ -2775,7 +2877,7 @@ invalid kube kind ls := podmanTest.Podman([]string{"pod", "ps", "--format", "'{{.ID}}'"}) ls.WaitWithDefaultTimeout() Expect(ls).Should(Exit(0)) - Expect(len(ls.OutputToStringArray())).To(Equal(1)) + Expect(ls.OutputToStringArray()).To(HaveLen(1)) // teardown teardown := podmanTest.Podman([]string{"play", "kube", "--down", kubeYaml}) @@ -2785,7 +2887,7 @@ invalid kube kind checkls := podmanTest.Podman([]string{"pod", "ps", "--format", "'{{.ID}}'"}) checkls.WaitWithDefaultTimeout() Expect(checkls).Should(Exit(0)) - Expect(len(checkls.OutputToStringArray())).To(Equal(0)) + Expect(checkls.OutputToStringArray()).To(BeEmpty()) }) It("podman play kube teardown pod does not exist", func() { @@ -2867,7 +2969,7 @@ invalid kube kind ls := podmanTest.Podman([]string{"pod", "ps", "--format", "'{{.ID}}'"}) ls.WaitWithDefaultTimeout() Expect(ls).Should(Exit(0)) - Expect(len(ls.OutputToStringArray())).To(Equal(1)) + Expect(ls.OutputToStringArray()).To(HaveLen(1)) containerLen := podmanTest.Podman([]string{"pod", "inspect", pod.Name, "--format", "'{{len .Containers}}'"}) @@ -2906,7 +3008,7 @@ invalid kube kind ls := podmanTest.Podman([]string{"pod", "ps", "--format", "'{{.ID}}'"}) ls.WaitWithDefaultTimeout() Expect(ls).Should(Exit(0)) - Expect(len(ls.OutputToStringArray())).To(Equal(1)) + Expect(ls.OutputToStringArray()).To(HaveLen(1)) }) Describe("verify environment variables", func() { diff --git a/test/e2e/pod_create_test.go b/test/e2e/pod_create_test.go index 186688b93..41a017a52 100644 --- a/test/e2e/pod_create_test.go +++ b/test/e2e/pod_create_test.go @@ -49,7 +49,7 @@ var _ = Describe("Podman pod create", func() { check := podmanTest.Podman([]string{"pod", "ps", "-q", "--no-trunc"}) check.WaitWithDefaultTimeout() Expect(check.OutputToString()).To(ContainSubstring(podID)) - Expect(len(check.OutputToStringArray())).To(Equal(1)) + Expect(check.OutputToStringArray()).To(HaveLen(1)) }) It("podman create pod with name", func() { @@ -72,7 +72,7 @@ var _ = Describe("Podman pod create", func() { check := podmanTest.Podman([]string{"pod", "ps", "-q"}) check.WaitWithDefaultTimeout() - Expect(len(check.OutputToStringArray())).To(Equal(1)) + Expect(check.OutputToStringArray()).To(HaveLen(1)) }) It("podman create pod with same name as ctr", func() { @@ -86,7 +86,7 @@ var _ = Describe("Podman pod create", func() { check := podmanTest.Podman([]string{"pod", "ps", "-q"}) check.WaitWithDefaultTimeout() - Expect(len(check.OutputToStringArray())).To(Equal(0)) + Expect(check.OutputToStringArray()).To(BeEmpty()) }) It("podman create pod without network portbindings", func() { @@ -517,7 +517,7 @@ entrypoint ["/fromimage"] session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) Expect(session.OutputToString()).To(ContainSubstring("inet 127.0.0.1/8 scope host lo")) - Expect(len(session.OutputToStringArray())).To(Equal(1)) + Expect(session.OutputToStringArray()).To(HaveLen(1)) }) It("podman pod create --infra-image w/untagged image", func() { @@ -729,7 +729,7 @@ ENTRYPOINT ["sleep","99999"] m[l] = l } // check for no duplicates - Expect(len(m)).To(Equal(5)) + Expect(m).To(HaveLen(5)) }) It("podman pod create --userns=auto:size=%d", func() { diff --git a/test/e2e/pod_infra_container_test.go b/test/e2e/pod_infra_container_test.go index 6d57c3887..4a5a8c6b0 100644 --- a/test/e2e/pod_infra_container_test.go +++ b/test/e2e/pod_infra_container_test.go @@ -43,11 +43,11 @@ var _ = Describe("Podman pod create", func() { check := podmanTest.Podman([]string{"pod", "ps", "-q", "--no-trunc"}) check.WaitWithDefaultTimeout() Expect(check.OutputToString()).To(ContainSubstring(podID)) - Expect(len(check.OutputToStringArray())).To(Equal(1)) + Expect(check.OutputToStringArray()).To(HaveLen(1)) check = podmanTest.Podman([]string{"ps", "-qa", "--no-trunc"}) check.WaitWithDefaultTimeout() - Expect(len(check.OutputToStringArray())).To(Equal(1)) + Expect(check.OutputToStringArray()).To(HaveLen(1)) }) It("podman start infra container", func() { @@ -63,7 +63,7 @@ var _ = Describe("Podman pod create", func() { check := podmanTest.Podman([]string{"ps", "-qa", "--no-trunc", "--filter", "status=running"}) check.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(check.OutputToStringArray())).To(Equal(1)) + Expect(check.OutputToStringArray()).To(HaveLen(1)) }) It("podman start infra container different image", func() { @@ -95,13 +95,13 @@ var _ = Describe("Podman pod create", func() { check := podmanTest.Podman([]string{"ps", "-a", "--no-trunc", "--ns", "--format", "{{.Namespaces.IPC}} {{.Namespaces.NET}}"}) check.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(check.OutputToStringArray())).To(Equal(2)) + Expect(check.OutputToStringArray()).To(HaveLen(2)) Expect(check.OutputToStringArray()[0]).To(Equal(check.OutputToStringArray()[1])) check = podmanTest.Podman([]string{"ps", "-a", "--no-trunc", "--ns", "--format", "{{.IPC}} {{.NET}}"}) check.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(check.OutputToStringArray())).To(Equal(2)) + Expect(check.OutputToStringArray()).To(HaveLen(2)) Expect(check.OutputToStringArray()[0]).To(Equal(check.OutputToStringArray()[1])) }) @@ -169,7 +169,7 @@ var _ = Describe("Podman pod create", func() { check.WaitWithDefaultTimeout() Expect(check).Should(Exit(0)) PIDs := check.OutputToStringArray() - Expect(len(PIDs)).To(Equal(3)) + Expect(PIDs).To(HaveLen(3)) ctrPID, _ := strconv.Atoi(PIDs[1]) infraPID, _ := strconv.Atoi(PIDs[2]) @@ -243,13 +243,13 @@ var _ = Describe("Podman pod create", func() { check.WaitWithDefaultTimeout() Expect(check).Should(Exit(0)) outputArray := check.OutputToStringArray() - Expect(len(outputArray)).To(Equal(2)) + Expect(outputArray).To(HaveLen(2)) check = podmanTest.Podman([]string{"ps", "-a", "--ns", "--format", "{{.PIDNS}}"}) check.WaitWithDefaultTimeout() Expect(check).Should(Exit(0)) outputArray = check.OutputToStringArray() - Expect(len(outputArray)).To(Equal(2)) + Expect(outputArray).To(HaveLen(2)) PID1 := outputArray[0] PID2 := outputArray[1] @@ -274,7 +274,7 @@ var _ = Describe("Podman pod create", func() { check.WaitWithDefaultTimeout() Expect(check).Should(Exit(0)) outputArray := check.OutputToStringArray() - Expect(len(outputArray)).To(Equal(2)) + Expect(outputArray).To(HaveLen(2)) PID1 := outputArray[0] PID2 := outputArray[1] @@ -299,7 +299,7 @@ var _ = Describe("Podman pod create", func() { check.WaitWithDefaultTimeout() Expect(check).Should(Exit(0)) outputArray := check.OutputToStringArray() - Expect(len(outputArray)).To(Equal(2)) + Expect(outputArray).To(HaveLen(2)) PID1 := outputArray[0] PID2 := outputArray[1] diff --git a/test/e2e/pod_inspect_test.go b/test/e2e/pod_inspect_test.go index 8a6f2a367..0fc16b507 100644 --- a/test/e2e/pod_inspect_test.go +++ b/test/e2e/pod_inspect_test.go @@ -97,7 +97,7 @@ var _ = Describe("Podman pod inspect", func() { err := json.Unmarshal(inspectOut.Out.Contents(), inspectJSON) Expect(err).To(BeNil()) Expect(inspectJSON.InfraConfig).To(Not(BeNil())) - Expect(len(inspectJSON.InfraConfig.PortBindings["80/tcp"])).To(Equal(1)) + Expect(inspectJSON.InfraConfig.PortBindings["80/tcp"]).To(HaveLen(1)) Expect(inspectJSON.InfraConfig.PortBindings["80/tcp"][0].HostPort).To(Equal("8383")) }) diff --git a/test/e2e/pod_pod_namespaces_test.go b/test/e2e/pod_pod_namespaces_test.go index 9e9b9b2d3..293fd02ae 100644 --- a/test/e2e/pod_pod_namespaces_test.go +++ b/test/e2e/pod_pod_namespaces_test.go @@ -52,7 +52,7 @@ var _ = Describe("Podman pod create", func() { check.WaitWithDefaultTimeout() Expect(check).Should(Exit(0)) outputArray := check.OutputToStringArray() - Expect(len(outputArray)).To(Equal(2)) + Expect(outputArray).To(HaveLen(2)) NAMESPACE1 := outputArray[0] fmt.Println("NAMESPACE1:", NAMESPACE1) @@ -98,7 +98,7 @@ var _ = Describe("Podman pod create", func() { check.WaitWithDefaultTimeout() Expect(check).Should(Exit(0)) outputArray := check.OutputToStringArray() - Expect(len(outputArray)).To(Equal(2)) + Expect(outputArray).To(HaveLen(2)) NAMESPACE1 := outputArray[0] fmt.Println("NAMESPACE1:", NAMESPACE1) diff --git a/test/e2e/pod_prune_test.go b/test/e2e/pod_prune_test.go index 6273fcec3..84348f30c 100644 --- a/test/e2e/pod_prune_test.go +++ b/test/e2e/pod_prune_test.go @@ -56,7 +56,7 @@ var _ = Describe("Podman pod prune", func() { result = podmanTest.Podman([]string{"ps", "-qa"}) result.WaitWithDefaultTimeout() - Expect(len(result.OutputToStringArray())).To(Equal(1)) + Expect(result.OutputToStringArray()).To(HaveLen(1)) }) It("podman pod prune removes a pod with a stopped container", func() { @@ -72,6 +72,6 @@ var _ = Describe("Podman pod prune", func() { result = podmanTest.Podman([]string{"ps", "-qa"}) result.WaitWithDefaultTimeout() - Expect(len(result.OutputToStringArray())).To(Equal(0)) + Expect(result.OutputToStringArray()).To(BeEmpty()) }) }) diff --git a/test/e2e/pod_ps_test.go b/test/e2e/pod_ps_test.go index b4a0df904..4b2a3b66d 100644 --- a/test/e2e/pod_ps_test.go +++ b/test/e2e/pod_ps_test.go @@ -135,14 +135,14 @@ var _ = Describe("Podman ps", func() { Expect(result).Should(Exit(0)) output := result.OutputToStringArray() - Expect(len(output)).To(Equal(2)) + Expect(output).To(HaveLen(2)) result = podmanTest.Podman([]string{"pod", "ps", "-q", "--no-trunc", "--filter", "name=mypod$"}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) output = result.OutputToStringArray() - Expect(len(output)).To(Equal(1)) + Expect(output).To(HaveLen(1)) Expect(output[0]).To(Equal(podid)) }) @@ -368,7 +368,7 @@ var _ = Describe("Podman ps", func() { infra := podmanTest.Podman([]string{"pod", "ps", "--format", "{{.InfraId}}"}) infra.WaitWithDefaultTimeout() - Expect(len(infra.OutputToString())).To(BeZero()) + Expect(infra.OutputToString()).To(BeEmpty()) }) It("podman pod ps format with labels", func() { diff --git a/test/e2e/pod_rm_test.go b/test/e2e/pod_rm_test.go index d9b0761fa..636503a0c 100644 --- a/test/e2e/pod_rm_test.go +++ b/test/e2e/pod_rm_test.go @@ -96,7 +96,7 @@ var _ = Describe("Podman pod rm", func() { result = podmanTest.Podman([]string{"ps", "-qa"}) result.WaitWithDefaultTimeout() - Expect(len(result.OutputToStringArray())).To(Equal(0)) + Expect(result.OutputToStringArray()).To(BeEmpty()) }) It("podman pod rm -f does remove a running container", func() { diff --git a/test/e2e/pod_top_test.go b/test/e2e/pod_top_test.go index 253d4adf5..602546141 100644 --- a/test/e2e/pod_top_test.go +++ b/test/e2e/pod_top_test.go @@ -120,7 +120,7 @@ var _ = Describe("Podman top", func() { result := podmanTest.Podman([]string{"pod", "top", podid}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).To(Equal(3)) + Expect(result.OutputToStringArray()).To(HaveLen(3)) }) It("podman pod top on pod with containers in different namespace", func() { @@ -145,6 +145,6 @@ var _ = Describe("Podman top", func() { result := podmanTest.Podman([]string{"pod", "top", podid}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).To(Equal(3)) + Expect(result.OutputToStringArray()).To(HaveLen(3)) }) }) diff --git a/test/e2e/prune_test.go b/test/e2e/prune_test.go index 223fcc5b2..6a70fd556 100644 --- a/test/e2e/prune_test.go +++ b/test/e2e/prune_test.go @@ -98,22 +98,21 @@ var _ = Describe("Podman prune", func() { session := podmanTest.Podman([]string{"images", "-a"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - hasNone, _ := session.GrepString("<none>") - Expect(hasNone).To(BeFalse()) + Expect(session.OutputToString()).To(Not(ContainSubstring("<none>"))) numImages := len(session.OutputToStringArray()) // Since there's no dangling image, none should be removed. session = podmanTest.Podman([]string{"image", "prune", "-f"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) // Let's be extra sure that the same number of images is // reported. session = podmanTest.Podman([]string{"images", "-a"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(numImages)) + Expect(session.OutputToStringArray()).To(HaveLen(numImages)) // Now build an image and untag it. The (intermediate) images // should be removed recursively during pruning. @@ -125,8 +124,7 @@ var _ = Describe("Podman prune", func() { session = podmanTest.Podman([]string{"images", "-a"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - hasNone, _ = session.GrepString("<none>") - Expect(hasNone).To(BeTrue()) // ! we have dangling ones + Expect(session.OutputToString()).To(ContainSubstring("<none>")) numImages = len(session.OutputToStringArray()) // Since there's at least one dangling image, prune should @@ -135,14 +133,14 @@ var _ = Describe("Podman prune", func() { session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) numPrunedImages := len(session.OutputToStringArray()) - Expect(numPrunedImages >= 1).To(BeTrue()) + Expect(numPrunedImages).To(BeNumerically(">=", 1), "numPrunedImages") // Now make sure that exactly the number of pruned images has // been removed. session = podmanTest.Podman([]string{"images", "-a"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(numImages - numPrunedImages)) + Expect(session.OutputToStringArray()).To(HaveLen(numImages - numPrunedImages)) }) It("podman image prune - handle empty images", func() { @@ -159,7 +157,7 @@ var _ = Describe("Podman prune", func() { session = podmanTest.Podman([]string{"image", "prune", "-f"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) // Now the image will be untagged, and its parent images will // be removed recursively. @@ -170,7 +168,7 @@ var _ = Describe("Podman prune", func() { session = podmanTest.Podman([]string{"image", "prune", "-f"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) }) It("podman image prune dangling images", func() { @@ -180,7 +178,7 @@ var _ = Describe("Podman prune", func() { none.WaitWithDefaultTimeout() Expect(none).Should(Exit(0)) hasNone, result := none.GrepString("<none>") - Expect(len(result)).To(Equal(2)) + Expect(result).To(HaveLen(2)) Expect(hasNone).To(BeTrue()) prune := podmanTest.Podman([]string{"image", "prune", "-f"}) @@ -189,11 +187,11 @@ var _ = Describe("Podman prune", func() { after := podmanTest.Podman([]string{"images", "-a"}) after.WaitWithDefaultTimeout() - Expect(none).Should(Exit(0)) - hasNoneAfter, result := none.GrepString("<none>") + Expect(after).Should(Exit(0)) + hasNoneAfter, result := after.GrepString("<none>") Expect(hasNoneAfter).To(BeTrue()) - Expect(len(after.OutputToStringArray()) > 1).To(BeTrue()) - Expect(len(result) > 0).To(BeTrue()) + Expect(len(after.OutputToStringArray())).To(BeNumerically(">", 1)) + Expect(len(result)).To(BeNumerically(">", 0)) }) It("podman image prune unused images", func() { @@ -212,7 +210,7 @@ var _ = Describe("Podman prune", func() { images.WaitWithDefaultTimeout() Expect(images).Should(Exit(0)) // all images are unused, so they all should be deleted! - Expect(len(images.OutputToStringArray())).To(Equal(len(CACHE_IMAGES))) + Expect(images.OutputToStringArray()).To(HaveLen(len(CACHE_IMAGES))) }) It("podman system image prune unused images", func() { @@ -225,7 +223,7 @@ var _ = Describe("Podman prune", func() { images := podmanTest.Podman([]string{"images", "-aq"}) images.WaitWithDefaultTimeout() // all images are unused, so they all should be deleted! - Expect(len(images.OutputToStringArray())).To(Equal(len(CACHE_IMAGES))) + Expect(images.OutputToStringArray()).To(HaveLen(len(CACHE_IMAGES))) }) It("podman system prune pods", func() { @@ -249,7 +247,7 @@ var _ = Describe("Podman prune", func() { pods := podmanTest.Podman([]string{"pod", "ps"}) pods.WaitWithDefaultTimeout() Expect(pods).Should(Exit(0)) - Expect(len(pods.OutputToStringArray())).To(Equal(3)) + Expect(pods.OutputToStringArray()).To(HaveLen(3)) prune := podmanTest.Podman([]string{"system", "prune", "-f"}) prune.WaitWithDefaultTimeout() @@ -258,7 +256,7 @@ var _ = Describe("Podman prune", func() { pods = podmanTest.Podman([]string{"pod", "ps"}) pods.WaitWithDefaultTimeout() Expect(pods).Should(Exit(0)) - Expect(len(pods.OutputToStringArray())).To(Equal(2)) + Expect(pods.OutputToStringArray()).To(HaveLen(2)) }) It("podman system prune - pod,container stopped", func() { @@ -346,7 +344,7 @@ var _ = Describe("Podman prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(3)) + Expect(session.OutputToStringArray()).To(HaveLen(3)) session = podmanTest.Podman([]string{"system", "prune", "--force", "--volumes"}) session.WaitWithDefaultTimeout() @@ -356,7 +354,7 @@ var _ = Describe("Podman prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) // One Pod should not be pruned as it was running Expect(podmanTest.NumberOfPods()).To(Equal(1)) @@ -367,7 +365,7 @@ var _ = Describe("Podman prune", func() { // Image should not be pruned and number should be same. images := podmanTest.Podman([]string{"images"}) images.WaitWithDefaultTimeout() - Expect(len(images.OutputToStringArray())).To(Equal(numberOfImages)) + Expect(images.OutputToStringArray()).To(HaveLen(numberOfImages)) }) It("podman system prune - with dangling images true", func() { @@ -410,12 +408,12 @@ var _ = Describe("Podman prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) images := podmanTest.Podman([]string{"images", "-aq"}) images.WaitWithDefaultTimeout() // all images are unused, so they all should be deleted! - Expect(len(images.OutputToStringArray())).To(Equal(len(CACHE_IMAGES))) + Expect(images.OutputToStringArray()).To(HaveLen(len(CACHE_IMAGES))) }) It("podman system prune --volumes --filter", func() { @@ -446,7 +444,7 @@ var _ = Describe("Podman prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(7)) + Expect(session.OutputToStringArray()).To(HaveLen(7)) session = podmanTest.Podman([]string{"system", "prune", "--force", "--volumes", "--filter", "label=label1=value1"}) session.WaitWithDefaultTimeout() @@ -455,7 +453,7 @@ var _ = Describe("Podman prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(6)) + Expect(session.OutputToStringArray()).To(HaveLen(6)) session = podmanTest.Podman([]string{"system", "prune", "--force", "--volumes", "--filter", "label=sharedlabel1=slv1"}) session.WaitWithDefaultTimeout() @@ -464,7 +462,7 @@ var _ = Describe("Podman prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(5)) + Expect(session.OutputToStringArray()).To(HaveLen(5)) session = podmanTest.Podman([]string{"system", "prune", "--force", "--volumes", "--filter", "label=sharedlabel1"}) session.WaitWithDefaultTimeout() @@ -473,7 +471,7 @@ var _ = Describe("Podman prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(3)) + Expect(session.OutputToStringArray()).To(HaveLen(3)) podmanTest.Cleanup() }) diff --git a/test/e2e/ps_test.go b/test/e2e/ps_test.go index 3334250db..a9f334f5c 100644 --- a/test/e2e/ps_test.go +++ b/test/e2e/ps_test.go @@ -118,7 +118,7 @@ var _ = Describe("Podman ps", func() { result := podmanTest.Podman([]string{"ps", "-q", "--latest"}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).Should(Equal(1)) + Expect(result.OutputToStringArray()).To(HaveLen(1)) }) It("podman ps last flag", func() { @@ -133,7 +133,7 @@ var _ = Describe("Podman ps", func() { result := podmanTest.Podman([]string{"ps", "--last", "2"}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).Should(Equal(2)) // 1 container + Expect(result.OutputToStringArray()).Should(HaveLen(2)) // 1 container _, ec, _ := podmanTest.RunLsContainer("test1") Expect(ec).To(Equal(0)) @@ -147,17 +147,17 @@ var _ = Describe("Podman ps", func() { result = podmanTest.Podman([]string{"ps", "--last", "2"}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).Should(Equal(3)) // 2 containers + Expect(result.OutputToStringArray()).Should(HaveLen(3)) // 2 containers result = podmanTest.Podman([]string{"ps", "--last", "3"}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).Should(Equal(4)) // 3 containers + Expect(result.OutputToStringArray()).Should(HaveLen(4)) // 3 containers result = podmanTest.Podman([]string{"ps", "--last", "100"}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) - Expect(len(result.OutputToStringArray())).Should(Equal(5)) // 4 containers (3 running + 1 created) + Expect(result.OutputToStringArray()).Should(HaveLen(5)) // 4 containers (3 running + 1 created) }) It("podman ps no-trunc", func() { @@ -357,7 +357,7 @@ var _ = Describe("Podman ps", func() { Expect(result).Should(Exit(0)) output := result.OutputToStringArray() - Expect(len(output)).To(Equal(1)) + Expect(output).To(HaveLen(1)) Expect(output[0]).To(Equal(fullCid)) }) @@ -580,14 +580,14 @@ var _ = Describe("Podman ps", func() { Expect(result).Should(Exit(0)) output := result.OutputToStringArray() - Expect(len(output)).To(Equal(2)) + Expect(output).To(HaveLen(2)) result = podmanTest.Podman([]string{"ps", "-aq", "--no-trunc", "--filter", "name=test1$"}) result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) output = result.OutputToStringArray() - Expect(len(output)).To(Equal(1)) + Expect(output).To(HaveLen(1)) Expect(output[0]).To(Equal(fullCid)) }) @@ -602,7 +602,7 @@ var _ = Describe("Podman ps", func() { Expect(result).Should(Exit(0)) output := result.OutputToStringArray() - Expect(len(output)).To(Equal(1)) + Expect(output).To(HaveLen(1)) Expect(output[0]).To(Equal(ctrName)) }) @@ -669,7 +669,7 @@ var _ = Describe("Podman ps", func() { session = podmanTest.Podman([]string{"ps", "--all", "--filter", "name=test"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(5)) + Expect(session.OutputToStringArray()).To(HaveLen(5)) Expect(session.OutputToString()).To(ContainSubstring("test1")) Expect(session.OutputToString()).To(ContainSubstring("test2")) Expect(session.OutputToString()).To(ContainSubstring("test3")) @@ -678,7 +678,7 @@ var _ = Describe("Podman ps", func() { session = podmanTest.Podman([]string{"ps", "--all", "--filter", "name=test1", "--filter", "name=test2"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(3)) + Expect(session.OutputToStringArray()).To(HaveLen(3)) Expect(session.OutputToString()).To(ContainSubstring("test1")) Expect(session.OutputToString()).To(ContainSubstring("test2")) @@ -686,19 +686,19 @@ var _ = Describe("Podman ps", func() { session = podmanTest.Podman([]string{"ps", "--all", "--filter", "id=" + cid1[:40], "--filter", "id=" + cid1 + "$"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToString()).To(ContainSubstring("test1")) session = podmanTest.Podman([]string{"ps", "--filter", "status=created"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToString()).To(ContainSubstring("test3")) session = podmanTest.Podman([]string{"ps", "--filter", "status=created", "--filter", "status=exited"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(4)) + Expect(session.OutputToStringArray()).To(HaveLen(4)) Expect(session.OutputToString()).To(ContainSubstring("test2")) Expect(session.OutputToString()).To(ContainSubstring("test3")) Expect(session.OutputToString()).To(ContainSubstring("test4")) @@ -706,63 +706,63 @@ var _ = Describe("Podman ps", func() { session = podmanTest.Podman([]string{"ps", "--all", "--filter", "label=foo=1"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(3)) + Expect(session.OutputToStringArray()).To(HaveLen(3)) Expect(session.OutputToString()).To(ContainSubstring("test1")) Expect(session.OutputToString()).To(ContainSubstring("test2")) session = podmanTest.Podman([]string{"ps", "--filter", "label=foo=1", "--filter", "status=exited"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToString()).To(ContainSubstring("test2")) session = podmanTest.Podman([]string{"ps", "--all", "--filter", "label=foo=1", "--filter", "label=non=1"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(1)) + Expect(session.OutputToStringArray()).To(HaveLen(1)) session = podmanTest.Podman([]string{"ps", "--all", "--filter", "label=foo=1", "--filter", "label=bar=2"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToString()).To(ContainSubstring("test1")) session = podmanTest.Podman([]string{"ps", "--all", "--filter", "exited=1"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToString()).To(ContainSubstring("test2")) session = podmanTest.Podman([]string{"ps", "--all", "--filter", "exited=1", "--filter", "exited=0"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(3)) + Expect(session.OutputToStringArray()).To(HaveLen(3)) Expect(session.OutputToString()).To(ContainSubstring("test2")) Expect(session.OutputToString()).To(ContainSubstring("test4")) session = podmanTest.Podman([]string{"ps", "--all", "--filter", "volume=volume1"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(3)) + Expect(session.OutputToStringArray()).To(HaveLen(3)) Expect(session.OutputToString()).To(ContainSubstring("test1")) Expect(session.OutputToString()).To(ContainSubstring("test4")) session = podmanTest.Podman([]string{"ps", "--all", "--filter", "volume=/:/test2"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToString()).To(ContainSubstring("test4")) session = podmanTest.Podman([]string{"ps", "--all", "--filter", "before=test2"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToString()).To(ContainSubstring("test1")) session = podmanTest.Podman([]string{"ps", "--all", "--filter", "since=test2"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(3)) + Expect(session.OutputToStringArray()).To(HaveLen(3)) Expect(session.OutputToString()).To(ContainSubstring("test3")) Expect(session.OutputToString()).To(ContainSubstring("test4")) }) @@ -790,28 +790,28 @@ var _ = Describe("Podman ps", func() { session = podmanTest.Podman([]string{"ps", "-q", "--no-trunc", "--filter", "pod=pod1"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToStringArray()).To(ContainElement(con1.OutputToString())) // filter by full pod id session = podmanTest.Podman([]string{"ps", "-q", "--no-trunc", "--filter", "pod=" + pod1.OutputToString()}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToStringArray()).To(ContainElement(con1.OutputToString())) // filter by partial pod id session = podmanTest.Podman([]string{"ps", "-q", "--no-trunc", "--filter", "pod=" + pod1.OutputToString()[0:12]}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToStringArray()).To(ContainElement(con1.OutputToString())) // filter by multiple pods is inclusive session = podmanTest.Podman([]string{"ps", "-q", "--no-trunc", "--filter", "pod=pod1", "--filter", "pod=pod2"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(4)) + Expect(session.OutputToStringArray()).To(HaveLen(4)) Expect(session.OutputToStringArray()).To(ContainElement(con1.OutputToString())) Expect(session.OutputToStringArray()).To(ContainElement(con2.OutputToString())) diff --git a/test/e2e/pull_test.go b/test/e2e/pull_test.go index b2474b223..f22acca6e 100644 --- a/test/e2e/pull_test.go +++ b/test/e2e/pull_test.go @@ -443,7 +443,7 @@ var _ = Describe("Podman pull", func() { Expect(setup).Should(Exit(0)) data := setup.InspectImageJSON() // returns []inspect.ImageData - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) return data[0].ID } @@ -457,8 +457,8 @@ var _ = Describe("Podman pull", func() { Expect(setup).Should(Exit(0)) data := setup.InspectImageJSON() // returns []inspect.ImageData - Expect(len(data)).To(Equal(1)) - Expect(len(data[0].RepoTags)).To(Equal(0)) + Expect(data).To(HaveLen(1)) + Expect(data[0].RepoTags).To(BeEmpty()) } tag := func(image, tag string) { @@ -511,8 +511,8 @@ var _ = Describe("Podman pull", func() { Expect(setup).Should(Exit(0)) data := setup.InspectImageJSON() // returns []inspect.ImageData - Expect(len(data)).To(Equal(1)) - Expect(len(data[0].RepoTags)).To(Equal(1)) + Expect(data).To(HaveLen(1)) + Expect(data[0].RepoTags).To(HaveLen(1)) Expect(data[0].RepoTags[0]).To(Equal(t.tag1)) Expect(data[0].ID).To(Equal(image1)) } @@ -540,7 +540,7 @@ var _ = Describe("Podman pull", func() { Expect(setup).Should(Exit(0)) data := setup.InspectImageJSON() // returns []inspect.ImageData - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].Os).To(Equal(runtime.GOOS)) Expect(data[0].Architecture).To(Equal("arm64")) }) @@ -567,7 +567,7 @@ var _ = Describe("Podman pull", func() { Expect(setup).Should(Exit(0)) data := setup.InspectImageJSON() // returns []inspect.ImageData - Expect(len(data)).To(Equal(1)) + Expect(data).To(HaveLen(1)) Expect(data[0].Os).To(Equal(runtime.GOOS)) Expect(data[0].Architecture).To(Equal("arm64")) }) diff --git a/test/e2e/push_test.go b/test/e2e/push_test.go index 7038a09e8..a3b5e31bb 100644 --- a/test/e2e/push_test.go +++ b/test/e2e/push_test.go @@ -2,12 +2,14 @@ package integration import ( "fmt" + "io/ioutil" "os" "path/filepath" "strings" "github.com/containers/podman/v3/pkg/rootless" . "github.com/containers/podman/v3/test/utils" + "github.com/containers/storage/pkg/archive" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" . "github.com/onsi/gomega/gexec" @@ -63,6 +65,36 @@ var _ = Describe("Podman push", func() { Expect(session).Should(Exit(0)) }) + It("podman push to oci with compression-format", func() { + SkipIfRemote("Remote push does not support dir transport") + bbdir := filepath.Join(podmanTest.TempDir, "busybox-oci") + session := podmanTest.Podman([]string{"push", "--compression-format=zstd", "--remove-signatures", ALPINE, + fmt.Sprintf("oci:%s", bbdir)}) + session.WaitWithDefaultTimeout() + Expect(session).Should(Exit(0)) + + foundZstdFile := false + + blobsDir := filepath.Join(bbdir, "blobs/sha256") + + blobs, err := ioutil.ReadDir(blobsDir) + Expect(err).To(BeNil()) + + for _, f := range blobs { + blobPath := filepath.Join(blobsDir, f.Name()) + + sourceFile, err := ioutil.ReadFile(blobPath) + Expect(err).To(BeNil()) + + compressionType := archive.DetectCompression(sourceFile) + if compressionType == archive.Zstd { + foundZstdFile = true + break + } + } + Expect(foundZstdFile).To(BeTrue()) + }) + It("podman push to local registry", func() { SkipIfRemote("Remote does not support --digestfile or --remove-signatures") if podmanTest.Host.Arch == "ppc64le" { diff --git a/test/e2e/restart_test.go b/test/e2e/restart_test.go index 6a61c1292..f85a74f47 100644 --- a/test/e2e/restart_test.go +++ b/test/e2e/restart_test.go @@ -154,8 +154,8 @@ var _ = Describe("Podman restart", func() { session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) timeSince := time.Since(startTime) - Expect(timeSince < 10*time.Second).To(BeTrue()) - Expect(timeSince > 2*time.Second).To(BeTrue()) + Expect(timeSince).To(BeNumerically("<", 10*time.Second)) + Expect(timeSince).To(BeNumerically(">", 2*time.Second)) }) It("Podman restart --all", func() { diff --git a/test/e2e/rmi_test.go b/test/e2e/rmi_test.go index 4f6d974fd..658155587 100644 --- a/test/e2e/rmi_test.go +++ b/test/e2e/rmi_test.go @@ -136,13 +136,13 @@ var _ = Describe("Podman rmi", func() { session = podmanTest.Podman([]string{"images", "-q"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(12)) + Expect(session.OutputToStringArray()).To(HaveLen(12)) session = podmanTest.Podman([]string{"images", "--sort", "created", "--format", "{{.Id}}", "--all"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(13), - "Output from 'podman images -q -a':'%s'", session.Out.Contents()) + Expect(session.OutputToStringArray()).To(HaveLen(13), + "Output from 'podman images -q -a'") untaggedImg := session.OutputToStringArray()[1] session = podmanTest.Podman([]string{"rmi", "-f", untaggedImg}) @@ -179,7 +179,7 @@ var _ = Describe("Podman rmi", func() { session = podmanTest.Podman([]string{"images", "-q"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(len(CACHE_IMAGES) + 1)) + Expect(session.OutputToStringArray()).To(HaveLen(len(CACHE_IMAGES) + 1)) }) It("podman rmi with cached images", func() { @@ -221,7 +221,7 @@ var _ = Describe("Podman rmi", func() { session = podmanTest.Podman([]string{"images", "-q", "-a"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(len(CACHE_IMAGES) + 1)) + Expect(session.OutputToStringArray()).To(HaveLen(len(CACHE_IMAGES) + 1)) podmanTest.BuildImage(dockerfile, "test3", "true") @@ -236,7 +236,7 @@ var _ = Describe("Podman rmi", func() { session = podmanTest.Podman([]string{"images", "-q", "-a"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToString())).To(Equal(155)) + Expect(session.OutputToString()).To(HaveLen(155)) }) It("podman rmi -a with no images should be exit 0", func() { @@ -267,7 +267,7 @@ RUN find $LOCAL images := podmanTest.Podman([]string{"images", "-aq"}) images.WaitWithDefaultTimeout() Expect(images).Should(Exit(0)) - Expect(len(images.OutputToStringArray())).To(Equal(len(CACHE_IMAGES))) + Expect(images.OutputToStringArray()).To(HaveLen(len(CACHE_IMAGES))) }) // Don't rerun all tests; just assume that if we get that diagnostic, @@ -276,8 +276,7 @@ RUN find $LOCAL session := podmanTest.Podman([]string{"image", "rm"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(125)) - match, _ := session.ErrorGrepString("image name or ID must be specified") - Expect(match).To(BeTrue()) + Expect(session.ErrorToString()).To(ContainSubstring("image name or ID must be specified")) }) It("podman image rm - concurrent with shared layers", func() { diff --git a/test/e2e/run_dns_test.go b/test/e2e/run_dns_test.go index beb6390e0..8b6d535e5 100644 --- a/test/e2e/run_dns_test.go +++ b/test/e2e/run_dns_test.go @@ -44,7 +44,7 @@ var _ = Describe("Podman run dns", func() { session := podmanTest.Podman([]string{"run", "--dns-search=.", ALPINE, "cat", "/etc/resolv.conf"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(session.LineInOutputStartsWith("search")).To(BeFalse()) + Expect(session.OutputToStringArray()).To(Not(ContainElement(HavePrefix("search")))) }) It("podman run add bad dns server", func() { diff --git a/test/e2e/run_entrypoint_test.go b/test/e2e/run_entrypoint_test.go index f500a3c7c..23c343332 100644 --- a/test/e2e/run_entrypoint_test.go +++ b/test/e2e/run_entrypoint_test.go @@ -64,7 +64,7 @@ ENTRYPOINT ["grep", "Alpine", "/etc/os-release"] session := podmanTest.Podman([]string{"run", "foobar.com/entrypoint:latest"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) }) It("podman run entrypoint with cmd", func() { @@ -76,7 +76,7 @@ ENTRYPOINT ["grep", "Alpine", "/etc/os-release"] session := podmanTest.Podman([]string{"run", "foobar.com/entrypoint:latest"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(4)) + Expect(session.OutputToStringArray()).To(HaveLen(4)) }) It("podman run entrypoint with user cmd overrides image cmd", func() { @@ -88,7 +88,7 @@ ENTRYPOINT ["grep", "Alpine", "/etc/os-release"] session := podmanTest.Podman([]string{"run", "foobar.com/entrypoint:latest", "-i"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(5)) + Expect(session.OutputToStringArray()).To(HaveLen(5)) }) It("podman run entrypoint with user cmd no image cmd", func() { @@ -99,7 +99,7 @@ ENTRYPOINT ["grep", "Alpine", "/etc/os-release"] session := podmanTest.Podman([]string{"run", "foobar.com/entrypoint:latest", "-i"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(5)) + Expect(session.OutputToStringArray()).To(HaveLen(5)) }) It("podman run user entrypoint overrides image entrypoint and image cmd", func() { @@ -129,6 +129,6 @@ ENTRYPOINT ["grep", "Alpine", "/etc/os-release"] session := podmanTest.Podman([]string{"run", "--entrypoint=uname", "foobar.com/entrypoint:latest", "-r"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(session.LineInOutputStartsWith("Linux")).To(BeFalse()) + Expect(session.OutputToStringArray()).To(Not(ContainElement(HavePrefix("Linux")))) }) }) diff --git a/test/e2e/run_env_test.go b/test/e2e/run_env_test.go index 5a62db809..f27f5eda7 100644 --- a/test/e2e/run_env_test.go +++ b/test/e2e/run_env_test.go @@ -68,7 +68,7 @@ var _ = Describe("Podman run", func() { session = podmanTest.Podman([]string{"run", "--rm", "--env", "FOO", ALPINE, "printenv", "FOO"}) session.WaitWithDefaultTimeout() - Expect(len(session.OutputToString())).To(Equal(0)) + Expect(session.OutputToString()).To(BeEmpty()) Expect(session).Should(Exit(1)) session = podmanTest.Podman([]string{"run", "--rm", ALPINE, "printenv"}) diff --git a/test/e2e/run_networking_test.go b/test/e2e/run_networking_test.go index c0840c83b..00db9b727 100644 --- a/test/e2e/run_networking_test.go +++ b/test/e2e/run_networking_test.go @@ -91,9 +91,9 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "-p", "80", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/tcp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostPort).To(Not(Equal("80"))) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostIP).To(Equal("")) }) @@ -103,18 +103,18 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "-p", "80-82", "-p", "8090:8090", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(4)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/tcp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(4)) + Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostPort).To(Not(Equal("80"))) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostIP).To(Equal("")) - Expect(len(inspectOut[0].NetworkSettings.Ports["81/tcp"])).To(Equal(1)) + Expect(inspectOut[0].NetworkSettings.Ports["81/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["81/tcp"][0].HostPort).To(Not(Equal("81"))) Expect(inspectOut[0].NetworkSettings.Ports["81/tcp"][0].HostIP).To(Equal("")) - Expect(len(inspectOut[0].NetworkSettings.Ports["82/tcp"])).To(Equal(1)) + Expect(inspectOut[0].NetworkSettings.Ports["82/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["82/tcp"][0].HostPort).To(Not(Equal("82"))) Expect(inspectOut[0].NetworkSettings.Ports["82/tcp"][0].HostIP).To(Equal("")) - Expect(len(inspectOut[0].NetworkSettings.Ports["8090/tcp"])).To(Equal(1)) + Expect(inspectOut[0].NetworkSettings.Ports["8090/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["8090/tcp"][0].HostPort).To(Equal("8090")) Expect(inspectOut[0].NetworkSettings.Ports["8090/tcp"][0].HostIP).To(Equal("")) }) @@ -124,18 +124,18 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "-p", "80-81", "-p", "8180-8181", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(4)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/tcp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(4)) + Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostPort).To(Not(Equal("80"))) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostIP).To(Equal("")) - Expect(len(inspectOut[0].NetworkSettings.Ports["81/tcp"])).To(Equal(1)) + Expect(inspectOut[0].NetworkSettings.Ports["81/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["81/tcp"][0].HostPort).To(Not(Equal("81"))) Expect(inspectOut[0].NetworkSettings.Ports["81/tcp"][0].HostIP).To(Equal("")) - Expect(len(inspectOut[0].NetworkSettings.Ports["8180/tcp"])).To(Equal(1)) + Expect(inspectOut[0].NetworkSettings.Ports["8180/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["8180/tcp"][0].HostPort).To(Not(Equal("8180"))) Expect(inspectOut[0].NetworkSettings.Ports["8180/tcp"][0].HostIP).To(Equal("")) - Expect(len(inspectOut[0].NetworkSettings.Ports["8181/tcp"])).To(Equal(1)) + Expect(inspectOut[0].NetworkSettings.Ports["8181/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["8181/tcp"][0].HostPort).To(Not(Equal("8181"))) Expect(inspectOut[0].NetworkSettings.Ports["8181/tcp"][0].HostIP).To(Equal("")) }) @@ -145,18 +145,18 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "-p", "80", "-p", "8280-8282:8280-8282", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(4)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/tcp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(4)) + Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostPort).To(Not(Equal("80"))) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostIP).To(Equal("")) - Expect(len(inspectOut[0].NetworkSettings.Ports["8280/tcp"])).To(Equal(1)) + Expect(inspectOut[0].NetworkSettings.Ports["8280/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["8280/tcp"][0].HostPort).To(Equal("8280")) Expect(inspectOut[0].NetworkSettings.Ports["8280/tcp"][0].HostIP).To(Equal("")) - Expect(len(inspectOut[0].NetworkSettings.Ports["8281/tcp"])).To(Equal(1)) + Expect(inspectOut[0].NetworkSettings.Ports["8281/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["8281/tcp"][0].HostPort).To(Equal("8281")) Expect(inspectOut[0].NetworkSettings.Ports["8281/tcp"][0].HostIP).To(Equal("")) - Expect(len(inspectOut[0].NetworkSettings.Ports["8282/tcp"])).To(Equal(1)) + Expect(inspectOut[0].NetworkSettings.Ports["8282/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["8282/tcp"][0].HostPort).To(Equal("8282")) Expect(inspectOut[0].NetworkSettings.Ports["8282/tcp"][0].HostIP).To(Equal("")) }) @@ -166,9 +166,9 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "-p", "8380:80", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/tcp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostPort).To(Equal("8380")) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostIP).To(Equal("")) }) @@ -179,10 +179,10 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "-p", "8480:80/TCP", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) // "tcp" in lower characters - Expect(len(inspectOut[0].NetworkSettings.Ports["80/tcp"])).To(Equal(1)) + Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostPort).To(Equal("8480")) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostIP).To(Equal("")) }) @@ -192,9 +192,9 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "-p", "80/udp", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/udp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["80/udp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/udp"][0].HostPort).To(Not(Equal("80"))) Expect(inspectOut[0].NetworkSettings.Ports["80/udp"][0].HostIP).To(Equal("")) }) @@ -204,9 +204,9 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "-p", "127.0.0.1:8580:80", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/tcp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostPort).To(Equal("8580")) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostIP).To(Equal("127.0.0.1")) }) @@ -216,9 +216,9 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "-p", "127.0.0.1:8680:80/udp", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/udp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["80/udp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/udp"][0].HostPort).To(Equal("8680")) Expect(inspectOut[0].NetworkSettings.Ports["80/udp"][0].HostIP).To(Equal("127.0.0.1")) }) @@ -228,9 +228,9 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "-p", "[::1]:8780:80/udp", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/udp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["80/udp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/udp"][0].HostPort).To(Equal("8780")) Expect(inspectOut[0].NetworkSettings.Ports["80/udp"][0].HostIP).To(Equal("::1")) }) @@ -240,9 +240,9 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "-p", "[::1]:8880:80/tcp", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/tcp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostPort).To(Equal("8880")) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostIP).To(Equal("::1")) }) @@ -252,9 +252,9 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "--expose", "80", "-P", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/tcp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostPort).To(Not(Equal("0"))) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostIP).To(Equal("")) }) @@ -264,9 +264,9 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "--expose", "80/udp", "-P", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/udp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["80/udp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/udp"][0].HostPort).To(Not(Equal("0"))) Expect(inspectOut[0].NetworkSettings.Ports["80/udp"][0].HostIP).To(Equal("")) }) @@ -276,9 +276,9 @@ var _ = Describe("Podman run networking", func() { session := podmanTest.Podman([]string{"create", "-t", "--expose", "80", "-p", "80", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/tcp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostPort).To(Not(Equal("80"))) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostIP).To(Equal("")) }) @@ -297,8 +297,8 @@ EXPOSE 2004-2005/tcp`, ALPINE) inspect := podmanTest.Podman([]string{"inspect", imageName}) inspect.WaitWithDefaultTimeout() image := inspect.InspectImageJSON() - Expect(len(image)).To(Equal(1)) - Expect(len(image[0].Config.ExposedPorts)).To(Equal(3)) + Expect(image).To(HaveLen(1)) + Expect(image[0].Config.ExposedPorts).To(HaveLen(3)) Expect(image[0].Config.ExposedPorts).To(HaveKey("2002/tcp")) Expect(image[0].Config.ExposedPorts).To(HaveKey("2001-2003/tcp")) Expect(image[0].Config.ExposedPorts).To(HaveKey("2004-2005/tcp")) @@ -307,11 +307,11 @@ EXPOSE 2004-2005/tcp`, ALPINE) session := podmanTest.Podman([]string{"create", "--name", containerName, imageName, "true"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(containerName) - Expect(len(inspectOut)).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) // Inspect the network settings with available ports to be mapped to the host // Don't need to verity HostConfig.PortBindings since we used --publish-all - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(5)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(5)) Expect(inspectOut[0].NetworkSettings.Ports).To(HaveKey("2001/tcp")) Expect(inspectOut[0].NetworkSettings.Ports).To(HaveKey("2002/tcp")) Expect(inspectOut[0].NetworkSettings.Ports).To(HaveKey("2003/tcp")) @@ -324,9 +324,9 @@ EXPOSE 2004-2005/tcp`, ALPINE) session := podmanTest.Podman([]string{"create", "-t", "-p", "127.0.0.1::8980/udp", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["8980/udp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["8980/udp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["8980/udp"][0].HostPort).To(Not(Equal("8980"))) Expect(inspectOut[0].NetworkSettings.Ports["8980/udp"][0].HostIP).To(Equal("127.0.0.1")) }) @@ -336,9 +336,9 @@ EXPOSE 2004-2005/tcp`, ALPINE) session := podmanTest.Podman([]string{"create", "-t", "-p", ":8181", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["8181/tcp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["8181/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["8181/tcp"][0].HostPort).To(Not(Equal("8181"))) Expect(inspectOut[0].NetworkSettings.Ports["8181/tcp"][0].HostIP).To(Equal("")) }) @@ -348,9 +348,9 @@ EXPOSE 2004-2005/tcp`, ALPINE) session := podmanTest.Podman([]string{"create", "-t", "-p", "4444:8080", "-p", "5555:8080", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["8080/tcp"])).To(Equal(2)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["8080/tcp"]).To(HaveLen(2)) hp1 := inspectOut[0].NetworkSettings.Ports["8080/tcp"][0].HostPort hp2 := inspectOut[0].NetworkSettings.Ports["8080/tcp"][1].HostPort @@ -364,9 +364,9 @@ EXPOSE 2004-2005/tcp`, ALPINE) session := podmanTest.Podman([]string{"create", "-t", "-p", "0.0.0.0:9280:80", "--name", name, ALPINE, "/bin/sh"}) session.WaitWithDefaultTimeout() inspectOut := podmanTest.InspectContainer(name) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Ports["80/tcp"])).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"]).To(HaveLen(1)) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostPort).To(Equal("9280")) Expect(inspectOut[0].NetworkSettings.Ports["80/tcp"][0].HostIP).To(Equal("")) }) @@ -526,7 +526,7 @@ EXPOSE 2004-2005/tcp`, ALPINE) containerConfig := inspect.InspectContainerToJSON() Expect(containerConfig[0].NetworkSettings.Ports).To(Not(BeNil())) - Expect(containerConfig[0].NetworkSettings.Ports["80/tcp"]).To(Not(BeNil())) + Expect(containerConfig[0].NetworkSettings.Ports).To(HaveKeyWithValue("80/tcp", Not(BeNil()))) Expect(containerConfig[0].NetworkSettings.Ports["80/tcp"][0].HostPort).ToNot(Equal(80)) }) @@ -551,8 +551,7 @@ EXPOSE 2004-2005/tcp`, ALPINE) session := podmanTest.Podman([]string{"run", "--rm", ALPINE, "printenv", "HOSTNAME"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - match, _ := session.GrepString(hostname) - Expect(match).Should(BeFalse()) + Expect(session.OutputToString()).To(Not(ContainSubstring(hostname))) }) It("podman run --net host hostname test", func() { @@ -864,9 +863,8 @@ EXPOSE 2004-2005/tcp`, ALPINE) Expect(ctr).Should(Exit(0)) inspectOut := podmanTest.InspectContainer(ctrName) - Expect(len(inspectOut)).To(Equal(1)) - Expect(len(inspectOut[0].NetworkSettings.Networks)).To(Equal(1)) - _, ok := inspectOut[0].NetworkSettings.Networks["podman"] - Expect(ok).To(BeTrue()) + Expect(inspectOut).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Networks).To(HaveLen(1)) + Expect(inspectOut[0].NetworkSettings.Networks).To(HaveKey("podman")) }) }) diff --git a/test/e2e/run_passwd_test.go b/test/e2e/run_passwd_test.go index 05cdc7d80..6d1d26914 100644 --- a/test/e2e/run_passwd_test.go +++ b/test/e2e/run_passwd_test.go @@ -38,20 +38,20 @@ var _ = Describe("Podman run passwd", func() { session := podmanTest.Podman([]string{"run", "--read-only", BB, "mount"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(session.LineInOutputContains("passwd")).To(BeFalse()) + Expect(session.OutputToString()).To(Not(ContainSubstring("passwd"))) }) It("podman run user specified in container", func() { session := podmanTest.Podman([]string{"run", "--read-only", "-u", "bin", BB, "mount"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(session.LineInOutputContains("passwd")).To(BeFalse()) + Expect(session.OutputToString()).To(Not(ContainSubstring("passwd"))) }) It("podman run UID specified in container", func() { session := podmanTest.Podman([]string{"run", "--read-only", "-u", "2:1", BB, "mount"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(session.LineInOutputContains("passwd")).To(BeFalse()) + Expect(session.OutputToString()).To(Not(ContainSubstring("passwd"))) }) It("podman run UID not specified in container", func() { @@ -77,14 +77,14 @@ USER 1000`, ALPINE) session := podmanTest.Podman([]string{"run", "--read-only", BB, "mount"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(session.LineInOutputContains("/etc/group")).To(BeFalse()) + Expect(session.OutputToString()).To(Not(ContainSubstring("/etc/group"))) }) It("podman run group specified in container", func() { session := podmanTest.Podman([]string{"run", "--read-only", "-u", "root:bin", BB, "mount"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(session.LineInOutputContains("/etc/group")).To(BeFalse()) + Expect(session.OutputToString()).To(Not(ContainSubstring("/etc/group"))) }) It("podman run non-numeric group not specified in container", func() { @@ -97,7 +97,7 @@ USER 1000`, ALPINE) session := podmanTest.Podman([]string{"run", "--read-only", "-u", "root:11", BB, "mount"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(session.LineInOutputContains("/etc/group")).To(BeFalse()) + Expect(session.OutputToString()).To(Not(ContainSubstring("/etc/group"))) }) It("podman run numeric group not specified in container", func() { diff --git a/test/e2e/run_privileged_test.go b/test/e2e/run_privileged_test.go index 321bf27ac..b894c7b1c 100644 --- a/test/e2e/run_privileged_test.go +++ b/test/e2e/run_privileged_test.go @@ -63,9 +63,7 @@ var _ = Describe("Podman privileged container tests", func() { session := podmanTest.Podman([]string{"run", "--privileged", BB, "mount"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - ok, lines := session.GrepString("sysfs") - Expect(ok).To(BeTrue()) - Expect(lines[0]).To(ContainSubstring("sysfs (rw,")) + Expect(session.OutputToString()).To(ContainSubstring("sysfs (rw,")) }) It("podman privileged CapEff", func() { @@ -124,7 +122,7 @@ var _ = Describe("Podman privileged container tests", func() { session := podmanTest.Podman([]string{"run", "-t", BB, "ls", "-l", "/dev"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(17)) + Expect(session.OutputToStringArray()).To(HaveLen(17)) }) It("podman privileged should inherit host devices", func() { diff --git a/test/e2e/run_signal_test.go b/test/e2e/run_signal_test.go index 49f456366..6bb325155 100644 --- a/test/e2e/run_signal_test.go +++ b/test/e2e/run_signal_test.go @@ -116,8 +116,7 @@ var _ = Describe("Podman run with --sig-proxy", func() { } session, pid := podmanTest.PodmanPID([]string{"run", "--name", "test2", "--sig-proxy=false", fedoraMinimal, "bash", "-c", sigCatch2}) - ok := WaitForContainer(podmanTest) - Expect(ok).To(BeTrue()) + Expect(WaitForContainer(podmanTest)).To(BeTrue(), "WaitForContainer()") // Kill with given signal // Should be no output, SIGPOLL is usually ignored @@ -132,8 +131,7 @@ var _ = Describe("Podman run with --sig-proxy", func() { session.WaitWithDefaultTimeout() Expect(session).To(ExitWithError()) - ok, _ = session.GrepString("Received") - Expect(ok).To(BeFalse()) + Expect(session.OutputToString()).To(Not(ContainSubstring("Received"))) }) }) diff --git a/test/e2e/run_test.go b/test/e2e/run_test.go index 6c47e9179..f063c79e9 100644 --- a/test/e2e/run_test.go +++ b/test/e2e/run_test.go @@ -289,7 +289,7 @@ var _ = Describe("Podman run", func() { Expect(result).Should(Exit(0)) conData := result.InspectContainerToJSON() Expect(conData[0].Path).To(Equal("/dev/init")) - Expect(conData[0].Config.Annotations["io.podman.annotations.init"]).To(Equal("TRUE")) + Expect(conData[0].Config.Annotations).To(HaveKeyWithValue("io.podman.annotations.init", "TRUE")) }) It("podman run a container with --init and --init-path", func() { @@ -301,7 +301,7 @@ var _ = Describe("Podman run", func() { Expect(result).Should(Exit(0)) conData := result.InspectContainerToJSON() Expect(conData[0].Path).To(Equal("/dev/init")) - Expect(conData[0].Config.Annotations["io.podman.annotations.init"]).To(Equal("TRUE")) + Expect(conData[0].Config.Annotations).To(HaveKeyWithValue("io.podman.annotations.init", "TRUE")) }) It("podman run a container without --init", func() { @@ -313,7 +313,7 @@ var _ = Describe("Podman run", func() { Expect(result).Should(Exit(0)) conData := result.InspectContainerToJSON() Expect(conData[0].Path).To(Equal("ls")) - Expect(conData[0].Config.Annotations["io.podman.annotations.init"]).To(Equal("FALSE")) + Expect(conData[0].Config.Annotations).To(HaveKeyWithValue("io.podman.annotations.init", "FALSE")) }) forbidGetCWDSeccompProfile := func() string { @@ -871,7 +871,7 @@ USER bin`, BB) session := podmanTest.Podman([]string{"run", "--rm", ALPINE, "id"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(session.LineInOutputContains("27(video),777,65533(nogroup)")).To(BeFalse()) + Expect(session.OutputToString()).To(Not(ContainSubstring("27(video),777,65533(nogroup)"))) }) It("podman run with group-add", func() { @@ -1151,8 +1151,7 @@ USER mail`, BB) session := podmanTest.Podman([]string{"run", "--volume", vol1 + ":/myvol1:z", "--volume", vol2 + ":/myvol2:z", fedoraMinimal, "findmnt", "-o", "TARGET,PROPAGATION"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - match, _ := session.GrepString("shared") - Expect(match).Should(BeFalse()) + Expect(session.OutputToString()).To(Not(ContainSubstring("shared"))) }) It("podman run findmnt shared", func() { @@ -1187,7 +1186,7 @@ USER mail`, BB) session := podmanTest.Podman([]string{"run", "--mount", "type=bind,bind-nonrecursive,slave,src=/,target=/host", fedoraMinimal, "findmnt", "-nR", "/host"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(1)) + Expect(session.OutputToStringArray()).To(HaveLen(1)) }) It("podman run --mount type=devpts,target=/foo/bar", func() { @@ -1445,7 +1444,7 @@ USER mail`, BB) // Get PID and get cgroups of that PID inspectOut := podmanTest.InspectContainer(ctrName) - Expect(len(inspectOut)).To(Equal(1)) + Expect(inspectOut).To(HaveLen(1)) pid := inspectOut[0].State.Pid Expect(pid).To(Not(Equal(0))) @@ -1898,7 +1897,7 @@ WORKDIR /madethis`, BB) running := podmanTest.Podman([]string{"ps", "-q"}) running.WaitWithDefaultTimeout() Expect(running).Should(Exit(0)) - Expect(len(running.OutputToStringArray())).To(Equal(2)) + Expect(running.OutputToStringArray()).To(HaveLen(2)) }) It("podman run with pidfile", func() { diff --git a/test/e2e/run_userns_test.go b/test/e2e/run_userns_test.go index 50f8087f1..c1645af06 100644 --- a/test/e2e/run_userns_test.go +++ b/test/e2e/run_userns_test.go @@ -157,7 +157,7 @@ var _ = Describe("Podman UserNS support", func() { m[l] = l } // check for no duplicates - Expect(len(m)).To(Equal(5)) + Expect(m).To(HaveLen(5)) }) It("podman --userns=auto:size=%d", func() { diff --git a/test/e2e/run_volume_test.go b/test/e2e/run_volume_test.go index 10c191bd9..3d05e0f70 100644 --- a/test/e2e/run_volume_test.go +++ b/test/e2e/run_volume_test.go @@ -103,10 +103,8 @@ var _ = Describe("Podman run with volumes", func() { session = podmanTest.Podman([]string{"run", "--rm", "--mount", mount + ",consistency=delegated,shared", ALPINE, "grep", dest, "/proc/self/mountinfo"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - found, matches := session.GrepString(dest) - Expect(found).Should(BeTrue()) - Expect(matches[0]).To(ContainSubstring("rw")) - Expect(matches[0]).To(ContainSubstring("shared")) + Expect(session.OutputToString()).To(ContainSubstring("rw")) + Expect(session.OutputToString()).To(ContainSubstring("shared")) session = podmanTest.Podman([]string{"run", "--rm", "--mount", "type=tmpfs,target=" + dest, ALPINE, "grep", dest, "/proc/self/mountinfo"}) session.WaitWithDefaultTimeout() @@ -195,20 +193,18 @@ var _ = Describe("Podman run with volumes", func() { session := podmanTest.Podman([]string{"run", "--rm", "-v", mountPath + ":" + dest + ":suid,dev,exec", ALPINE, "grep", dest, "/proc/self/mountinfo"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - found, matches := session.GrepString(dest) - Expect(found).Should(BeTrue()) - Expect(matches[0]).To(Not(ContainSubstring("noexec"))) - Expect(matches[0]).To(Not(ContainSubstring("nodev"))) - Expect(matches[0]).To(Not(ContainSubstring("nosuid"))) + output := session.OutputToString() + Expect(output).To(Not(ContainSubstring("noexec"))) + Expect(output).To(Not(ContainSubstring("nodev"))) + Expect(output).To(Not(ContainSubstring("nosuid"))) session = podmanTest.Podman([]string{"run", "--rm", "--tmpfs", dest + ":suid,dev,exec", ALPINE, "grep", dest, "/proc/self/mountinfo"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - found, matches = session.GrepString(dest) - Expect(found).Should(BeTrue()) - Expect(matches[0]).To(Not(ContainSubstring("noexec"))) - Expect(matches[0]).To(Not(ContainSubstring("nodev"))) - Expect(matches[0]).To(Not(ContainSubstring("nosuid"))) + output = session.OutputToString() + Expect(output).To(Not(ContainSubstring("noexec"))) + Expect(output).To(Not(ContainSubstring("nodev"))) + Expect(output).To(Not(ContainSubstring("nosuid"))) }) // Container should start when workdir is overlay volume @@ -414,7 +410,7 @@ RUN sh -c "cd /etc/apk && ln -s ../../testfile"`, ALPINE) list2.WaitWithDefaultTimeout() Expect(list2).Should(Exit(0)) arr := list2.OutputToStringArray() - Expect(len(arr)).To(Equal(1)) + Expect(arr).To(HaveLen(1)) Expect(arr[0]).To(Not(Equal(""))) }) @@ -433,7 +429,7 @@ RUN sh -c "cd /etc/apk && ln -s ../../testfile"`, ALPINE) list2.WaitWithDefaultTimeout() Expect(list2).Should(Exit(0)) arr := list2.OutputToStringArray() - Expect(len(arr)).To(Equal(1)) + Expect(arr).To(HaveLen(1)) Expect(arr[0]).To(Not(Equal(""))) remove := podmanTest.Podman([]string{"rm", "-v", ctrName}) @@ -462,7 +458,7 @@ RUN sh -c "cd /etc/apk && ln -s ../../testfile"`, ALPINE) list2.WaitWithDefaultTimeout() Expect(list2).Should(Exit(0)) arr := list2.OutputToStringArray() - Expect(len(arr)).To(Equal(1)) + Expect(arr).To(HaveLen(1)) Expect(arr[0]).To(Equal(volName)) remove := podmanTest.Podman([]string{"rm", "-v", ctrName}) @@ -473,7 +469,7 @@ RUN sh -c "cd /etc/apk && ln -s ../../testfile"`, ALPINE) list3.WaitWithDefaultTimeout() Expect(list3).Should(Exit(0)) arr2 := list3.OutputToStringArray() - Expect(len(arr2)).To(Equal(1)) + Expect(arr2).To(HaveLen(1)) Expect(arr2[0]).To(Equal(volName)) }) @@ -515,7 +511,7 @@ RUN sh -c "cd /etc/apk && ln -s ../../testfile"`, ALPINE) runLs.WaitWithDefaultTimeout() Expect(runLs).Should(Exit(0)) outputArr := runLs.OutputToStringArray() - Expect(len(outputArr)).To(Equal(1)) + Expect(outputArr).To(HaveLen(1)) Expect(outputArr[0]).To(ContainSubstring(fileName)) }) @@ -531,8 +527,8 @@ VOLUME /test/`, ALPINE) Expect(create).Should(Exit(0)) data := podmanTest.InspectContainer(ctrName) - Expect(len(data)).To(Equal(1)) - Expect(len(data[0].Mounts)).To(Equal(1)) + Expect(data).To(HaveLen(1)) + Expect(data[0].Mounts).To(HaveLen(1)) Expect(data[0].Mounts[0].Source).To(Equal("/tmp")) Expect(data[0].Mounts[0].Destination).To(Equal("/test")) }) @@ -630,7 +626,7 @@ VOLUME /test/`, ALPINE) session := podmanTest.Podman([]string{"run", "-t", "-i", "-v", fmt.Sprintf("%s:/test1", volName), "-v", fmt.Sprintf("%s:/test2", volName), "--rm", ALPINE, "sh", "-c", "mount | grep /test"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) }) It("podman run with --volume and U flag", func() { diff --git a/test/e2e/search_test.go b/test/e2e/search_test.go index 54bc5252e..5c8e7c064 100644 --- a/test/e2e/search_test.go +++ b/test/e2e/search_test.go @@ -6,7 +6,6 @@ import ( "fmt" "io/ioutil" "os" - "regexp" "strconv" "text/template" @@ -107,10 +106,8 @@ registries = ['{{.Host}}:{{.Port}}']` search.WaitWithDefaultTimeout() Expect(search).Should(Exit(0)) output := string(search.Out.Contents()) - match, _ := regexp.MatchString(`(?m)NAME\s+DESCRIPTION$`, output) - Expect(match).To(BeTrue()) - match, _ = regexp.MatchString(`(?m)quay.io/libpod/whalesay\s+Static image used for automated testing.+$`, output) - Expect(match).To(BeTrue()) + Expect(output).To(MatchRegexp(`(?m)NAME\s+DESCRIPTION$`)) + Expect(output).To(MatchRegexp(`(?m)quay.io/libpod/whalesay\s+Static image used for automated testing.+$`)) }) It("podman search image with --compatible", func() { @@ -118,8 +115,7 @@ registries = ['{{.Host}}:{{.Port}}']` search.WaitWithDefaultTimeout() Expect(search).Should(Exit(0)) output := string(search.Out.Contents()) - match, _ := regexp.MatchString(`(?m)NAME\s+DESCRIPTION\s+STARS\s+OFFICIAL\s+AUTOMATED$`, output) - Expect(match).To(BeTrue()) + Expect(output).To(MatchRegexp(`(?m)NAME\s+DESCRIPTION\s+STARS\s+OFFICIAL\s+AUTOMATED$`)) }) It("podman search format flag", func() { @@ -179,12 +175,12 @@ registries = ['{{.Host}}:{{.Port}}']` search = podmanTest.Podman([]string{"search", "--limit", "3", "docker.io/alpine"}) search.WaitWithDefaultTimeout() Expect(search).Should(Exit(0)) - Expect(len(search.OutputToStringArray())).To(Equal(4)) + Expect(search.OutputToStringArray()).To(HaveLen(4)) search = podmanTest.Podman([]string{"search", "--limit", "30", "docker.io/alpine"}) search.WaitWithDefaultTimeout() Expect(search).Should(Exit(0)) - Expect(len(search.OutputToStringArray())).To(Equal(31)) + Expect(search.OutputToStringArray()).To(HaveLen(31)) }) It("podman search with filter stars", func() { @@ -354,8 +350,7 @@ registries = ['{{.Host}}:{{.Port}}']` Expect(search).Should(Exit(125)) Expect(search.OutputToString()).Should(BeEmpty()) - match, _ := search.ErrorGrepString("error") - Expect(match).Should(BeTrue()) + Expect(search.ErrorToString()).To(ContainSubstring("error")) // cleanup resetRegistriesConfigEnv() @@ -397,8 +392,7 @@ registries = ['{{.Host}}:{{.Port}}']` Expect(search).Should(Exit(125)) Expect(search.OutputToString()).Should(BeEmpty()) - match, _ := search.ErrorGrepString("error") - Expect(match).Should(BeTrue()) + Expect(search.ErrorToString()).To(ContainSubstring("error")) // cleanup resetRegistriesConfigEnv() @@ -451,8 +445,7 @@ registries = ['{{.Host}}:{{.Port}}']` Expect(search).Should(Exit(125)) Expect(search.OutputToString()).Should(BeEmpty()) - match, _ := search.ErrorGrepString("error") - Expect(match).Should(BeTrue()) + Expect(search.ErrorToString()).To(ContainSubstring("error")) // cleanup resetRegistriesConfigEnv() @@ -469,19 +462,19 @@ registries = ['{{.Host}}:{{.Port}}']` search := podmanTest.Podman([]string{"search", "--limit", "30", "registry.redhat.io/*"}) search.WaitWithDefaultTimeout() Expect(search).Should(Exit(0)) - Expect(len(search.OutputToStringArray())).To(Equal(31)) + Expect(search.OutputToStringArray()).To(HaveLen(31)) search = podmanTest.Podman([]string{"search", "registry.redhat.io/*openshift*"}) search.WaitWithDefaultTimeout() Expect(search).Should(Exit(0)) - Expect(len(search.OutputToStringArray()) > 1).To(BeTrue()) + Expect(len(search.OutputToStringArray())).To(BeNumerically(">", 1)) }) It("podman search repository tags", func() { search := podmanTest.Podman([]string{"search", "--list-tags", "--limit", "30", "docker.io/library/alpine"}) search.WaitWithDefaultTimeout() Expect(search).Should(Exit(0)) - Expect(len(search.OutputToStringArray())).To(Equal(31)) + Expect(search.OutputToStringArray()).To(HaveLen(31)) search = podmanTest.Podman([]string{"search", "--list-tags", "docker.io/library/alpine"}) search.WaitWithDefaultTimeout() @@ -494,7 +487,7 @@ registries = ['{{.Host}}:{{.Port}}']` search = podmanTest.Podman([]string{"search", "--list-tags", "docker.io/library/"}) search.WaitWithDefaultTimeout() - Expect(len(search.OutputToStringArray()) == 0).To(BeTrue()) + Expect(search.OutputToStringArray()).To(BeEmpty()) }) It("podman search with limit over 100", func() { diff --git a/test/e2e/secret_test.go b/test/e2e/secret_test.go index 758ed7edc..661ebbdc0 100644 --- a/test/e2e/secret_test.go +++ b/test/e2e/secret_test.go @@ -141,7 +141,7 @@ var _ = Describe("Podman secret", func() { list := podmanTest.Podman([]string{"secret", "ls"}) list.WaitWithDefaultTimeout() Expect(list).Should(Exit(0)) - Expect(len(list.OutputToStringArray())).To(Equal(2)) + Expect(list.OutputToStringArray()).To(HaveLen(2)) }) @@ -158,7 +158,7 @@ var _ = Describe("Podman secret", func() { list.WaitWithDefaultTimeout() Expect(list).Should(Exit(0)) - Expect(len(list.OutputToStringArray())).To(Equal(2), list.OutputToString()) + Expect(list.OutputToStringArray()).To(HaveLen(2), list.OutputToString()) }) It("podman secret rm", func() { @@ -179,7 +179,7 @@ var _ = Describe("Podman secret", func() { session = podmanTest.Podman([]string{"secret", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(1)) + Expect(session.OutputToStringArray()).To(HaveLen(1)) }) It("podman secret rm --all", func() { @@ -201,7 +201,7 @@ var _ = Describe("Podman secret", func() { session = podmanTest.Podman([]string{"secret", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(1)) + Expect(session.OutputToStringArray()).To(HaveLen(1)) }) It("podman secret creates from environment variable", func() { diff --git a/test/e2e/stats_test.go b/test/e2e/stats_test.go index a58e2485c..83a4896d5 100644 --- a/test/e2e/stats_test.go +++ b/test/e2e/stats_test.go @@ -213,7 +213,7 @@ var _ = Describe("Podman stats", func() { // We have three containers. The unlimited ones need to have // the same limit, the limited one a lower one. limits := session.OutputToStringArray() - Expect(len(limits)).To(BeNumerically("==", 3)) + Expect(limits).To(HaveLen(3)) Expect(limits[0]).To(Equal(limits[1])) Expect(limits[0]).ToNot(Equal(limits[2])) diff --git a/test/e2e/system_connection_test.go b/test/e2e/system_connection_test.go index 76b442ce8..95c2fe5b6 100644 --- a/test/e2e/system_connection_test.go +++ b/test/e2e/system_connection_test.go @@ -236,7 +236,7 @@ var _ = Describe("podman system connection", func() { session := podmanTest.Podman(cmd) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).Should(Equal(1)) + Expect(session.OutputToStringArray()).Should(HaveLen(1)) Expect(session.Err.Contents()).Should(BeEmpty()) }) }) diff --git a/test/e2e/system_df_test.go b/test/e2e/system_df_test.go index 4dc1f3591..acb6530cf 100644 --- a/test/e2e/system_df_test.go +++ b/test/e2e/system_df_test.go @@ -57,7 +57,7 @@ var _ = Describe("podman system df", func() { session = podmanTest.Podman([]string{"system", "df"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(4)) + Expect(session.OutputToStringArray()).To(HaveLen(4)) images := strings.Fields(session.OutputToStringArray()[1]) containers := strings.Fields(session.OutputToStringArray()[2]) volumes := strings.Fields(session.OutputToStringArray()[3]) diff --git a/test/e2e/system_reset_test.go b/test/e2e/system_reset_test.go index 93ab166cd..812e98cfd 100644 --- a/test/e2e/system_reset_test.go +++ b/test/e2e/system_reset_test.go @@ -69,16 +69,16 @@ var _ = Describe("podman system reset", func() { session = podmanTest.Podman([]string{"images", "-n"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(l)) + Expect(session.OutputToStringArray()).To(HaveLen(l)) session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) session = podmanTest.Podman([]string{"container", "ls", "-q"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) }) }) diff --git a/test/e2e/systemd_test.go b/test/e2e/systemd_test.go index bbbec1648..1f237fc9e 100644 --- a/test/e2e/systemd_test.go +++ b/test/e2e/systemd_test.go @@ -99,7 +99,7 @@ WantedBy=default.target result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) conData := result.InspectContainerToJSON() - Expect(len(conData)).To(Equal(1)) + Expect(conData).To(HaveLen(1)) Expect(conData[0].Config.SystemdMode).To(BeTrue()) // stats not supported w/ CGv1 rootless or containerized @@ -126,7 +126,7 @@ WantedBy=default.target result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) conData := result.InspectContainerToJSON() - Expect(len(conData)).To(Equal(1)) + Expect(conData).To(HaveLen(1)) Expect(conData[0].Config.SystemdMode).To(BeTrue()) }) @@ -155,7 +155,7 @@ WantedBy=default.target result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) conData := result.InspectContainerToJSON() - Expect(len(conData)).To(Equal(1)) + Expect(conData).To(HaveLen(1)) Expect(conData[0].Config.SystemdMode).To(BeTrue()) }) diff --git a/test/e2e/top_test.go b/test/e2e/top_test.go index 93c4f3f12..1a71ebf33 100644 --- a/test/e2e/top_test.go +++ b/test/e2e/top_test.go @@ -101,6 +101,11 @@ var _ = Describe("Podman top", func() { result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) Expect(len(result.OutputToStringArray())).To(BeNumerically(">", 1)) + + result = podmanTest.Podman([]string{"top", session.OutputToString(), "ax -o args"}) + result.WaitWithDefaultTimeout() + Expect(result).Should(Exit(0)) + Expect(result.OutputToStringArray()).To(Equal([]string{"COMMAND", "top -d 2"})) }) It("podman top with comma-separated options", func() { diff --git a/test/e2e/trust_test.go b/test/e2e/trust_test.go index 9a0d57d7a..9909c0653 100644 --- a/test/e2e/trust_test.go +++ b/test/e2e/trust_test.go @@ -43,7 +43,7 @@ var _ = Describe("Podman trust", func() { session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) outArray := session.OutputToStringArray() - Expect(len(outArray)).To(Equal(3)) + Expect(outArray).To(HaveLen(3)) // Repository order is not guaranteed. So, check that // all expected lines appear in output; we also check total number of lines, so that handles all of them. @@ -69,7 +69,7 @@ var _ = Describe("Podman trust", func() { if err != nil { os.Exit(1) } - Expect(teststruct["default"][0]["type"]).To(Equal("insecureAcceptAnything")) + Expect(teststruct["default"][0]).To(HaveKeyWithValue("type", "insecureAcceptAnything")) }) It("podman image trust show --json", func() { @@ -79,7 +79,7 @@ var _ = Describe("Podman trust", func() { Expect(session.OutputToString()).To(BeValidJSON()) var teststruct []map[string]string json.Unmarshal(session.Out.Contents(), &teststruct) - Expect(len(teststruct)).To(Equal(3)) + Expect(teststruct).To(HaveLen(3)) // To ease comparison, group the unordered array of repos by repo (and we expect only one entry by repo, so order within groups doesn’t matter) repoMap := map[string][]map[string]string{} for _, e := range teststruct { diff --git a/test/e2e/volume_create_test.go b/test/e2e/volume_create_test.go index 90a9bfb0b..bd609943c 100644 --- a/test/e2e/volume_create_test.go +++ b/test/e2e/volume_create_test.go @@ -43,7 +43,7 @@ var _ = Describe("Podman volume create", func() { check := podmanTest.Podman([]string{"volume", "ls", "-q"}) check.WaitWithDefaultTimeout() Expect(check.OutputToString()).To(ContainSubstring(volName)) - Expect(len(check.OutputToStringArray())).To(Equal(1)) + Expect(check.OutputToStringArray()).To(HaveLen(1)) }) It("podman create volume with name", func() { @@ -55,7 +55,7 @@ var _ = Describe("Podman volume create", func() { check := podmanTest.Podman([]string{"volume", "ls", "-q"}) check.WaitWithDefaultTimeout() Expect(check.OutputToString()).To(ContainSubstring(volName)) - Expect(len(check.OutputToStringArray())).To(Equal(1)) + Expect(check.OutputToStringArray()).To(HaveLen(1)) }) It("podman create and export volume", func() { diff --git a/test/e2e/volume_inspect_test.go b/test/e2e/volume_inspect_test.go index 172063b90..3fcdb7728 100644 --- a/test/e2e/volume_inspect_test.go +++ b/test/e2e/volume_inspect_test.go @@ -71,7 +71,7 @@ var _ = Describe("Podman volume inspect", func() { session = podmanTest.Podman([]string{"volume", "inspect", "--format", "{{.Name}}", "--all"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToStringArray()[0]).To(Equal(volName1)) Expect(session.OutputToStringArray()[1]).To(Equal(volName2)) }) diff --git a/test/e2e/volume_ls_test.go b/test/e2e/volume_ls_test.go index c1214366b..52b805718 100644 --- a/test/e2e/volume_ls_test.go +++ b/test/e2e/volume_ls_test.go @@ -42,7 +42,7 @@ var _ = Describe("Podman volume ls", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) }) It("podman ls volume filter with a key pattern", func() { @@ -53,7 +53,7 @@ var _ = Describe("Podman volume ls", func() { session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=hello*"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) }) It("podman ls volume with JSON format", func() { @@ -76,7 +76,7 @@ var _ = Describe("Podman volume ls", func() { session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(1), session.OutputToString()) + Expect(session.OutputToStringArray()).To(HaveLen(1), session.OutputToString()) }) It("podman ls volume with --filter flag", func() { @@ -92,24 +92,24 @@ var _ = Describe("Podman volume ls", func() { session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName)) session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=foo"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=bar"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName)) session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=baz"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) }) It("podman ls volume with --filter until flag", func() { @@ -120,12 +120,12 @@ var _ = Describe("Podman volume ls", func() { session = podmanTest.Podman([]string{"volume", "ls", "--filter", "until=5000000000"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) session = podmanTest.Podman([]string{"volume", "ls", "--filter", "until=50000"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) }) It("podman volume ls with --filter dangling", func() { @@ -171,14 +171,14 @@ var _ = Describe("Podman volume ls", func() { session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo", "--filter", "label=foo2"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(3)) + Expect(session.OutputToStringArray()).To(HaveLen(3)) Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName)) Expect(session.OutputToStringArray()[2]).To(ContainSubstring(anotherVol)) session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=bar", "--filter", "label=foo2=bar2"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(3)) + Expect(session.OutputToStringArray()).To(HaveLen(3)) Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName)) Expect(session.OutputToStringArray()[2]).To(ContainSubstring(anotherVol)) }) diff --git a/test/e2e/volume_plugin_test.go b/test/e2e/volume_plugin_test.go index cdf635b14..a3a445866 100644 --- a/test/e2e/volume_plugin_test.go +++ b/test/e2e/volume_plugin_test.go @@ -72,7 +72,7 @@ var _ = Describe("Podman volume plugins", func() { ls1.WaitWithDefaultTimeout() Expect(ls1).Should(Exit(0)) arrOutput := ls1.OutputToStringArray() - Expect(len(arrOutput)).To(Equal(1)) + Expect(arrOutput).To(HaveLen(1)) Expect(arrOutput[0]).To(ContainSubstring(volName)) remove := podmanTest.Podman([]string{"volume", "rm", volName}) @@ -82,7 +82,7 @@ var _ = Describe("Podman volume plugins", func() { ls2 := podmanTest.Podman([]string{"volume", "ls", "-q"}) ls2.WaitWithDefaultTimeout() Expect(ls2).Should(Exit(0)) - Expect(len(ls2.OutputToStringArray())).To(Equal(0)) + Expect(ls2.OutputToStringArray()).To(BeEmpty()) }) It("volume inspect with running plugin succeeds", func() { @@ -130,7 +130,7 @@ var _ = Describe("Podman volume plugins", func() { ls1.WaitWithDefaultTimeout() Expect(ls1).Should(Exit(0)) arrOutput := ls1.OutputToStringArray() - Expect(len(arrOutput)).To(Equal(1)) + Expect(arrOutput).To(HaveLen(1)) Expect(arrOutput[0]).To(ContainSubstring(volName)) stop := podmanTest.Podman([]string{"stop", "--timeout", "0", ctrName}) @@ -146,7 +146,7 @@ var _ = Describe("Podman volume plugins", func() { ls2 := podmanTest.Podman([]string{"volume", "ls", "-q"}) ls2.WaitWithDefaultTimeout() Expect(ls2).Should(Exit(0)) - Expect(len(ls2.OutputToStringArray())).To(Equal(0)) + Expect(ls2.OutputToStringArray()).To(BeEmpty()) }) It("use plugin in containers", func() { diff --git a/test/e2e/volume_prune_test.go b/test/e2e/volume_prune_test.go index 364ca0ab7..9ea8b1d25 100644 --- a/test/e2e/volume_prune_test.go +++ b/test/e2e/volume_prune_test.go @@ -49,7 +49,7 @@ var _ = Describe("Podman volume prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(4)) + Expect(session.OutputToStringArray()).To(HaveLen(4)) session = podmanTest.Podman([]string{"volume", "prune", "--force"}) session.WaitWithDefaultTimeout() @@ -58,7 +58,7 @@ var _ = Describe("Podman volume prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) podmanTest.Cleanup() }) @@ -71,7 +71,7 @@ var _ = Describe("Podman volume prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) session = podmanTest.Podman([]string{"volume", "prune", "--force", "--filter", "until=50"}) session.WaitWithDefaultTimeout() @@ -80,7 +80,7 @@ var _ = Describe("Podman volume prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(2)) + Expect(session.OutputToStringArray()).To(HaveLen(2)) session = podmanTest.Podman([]string{"volume", "prune", "--force", "--filter", "until=5000000000"}) session.WaitWithDefaultTimeout() @@ -89,7 +89,7 @@ var _ = Describe("Podman volume prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) podmanTest.Cleanup() }) @@ -122,7 +122,7 @@ var _ = Describe("Podman volume prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(7)) + Expect(session.OutputToStringArray()).To(HaveLen(7)) session = podmanTest.Podman([]string{"volume", "prune", "--force", "--filter", "label=label1=value1"}) session.WaitWithDefaultTimeout() @@ -131,7 +131,7 @@ var _ = Describe("Podman volume prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(6)) + Expect(session.OutputToStringArray()).To(HaveLen(6)) session = podmanTest.Podman([]string{"volume", "prune", "--force", "--filter", "label=sharedlabel1=slv1"}) session.WaitWithDefaultTimeout() @@ -140,7 +140,7 @@ var _ = Describe("Podman volume prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(5)) + Expect(session.OutputToStringArray()).To(HaveLen(5)) session = podmanTest.Podman([]string{"volume", "prune", "--force", "--filter", "label=sharedlabel1"}) session.WaitWithDefaultTimeout() @@ -149,7 +149,7 @@ var _ = Describe("Podman volume prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(3)) + Expect(session.OutputToStringArray()).To(HaveLen(3)) podmanTest.Cleanup() }) @@ -170,7 +170,7 @@ var _ = Describe("Podman volume prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(4)) + Expect(session.OutputToStringArray()).To(HaveLen(4)) session = podmanTest.Podman([]string{"system", "prune", "--force", "--volumes"}) session.WaitWithDefaultTimeout() @@ -179,7 +179,7 @@ var _ = Describe("Podman volume prune", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) podmanTest.Cleanup() }) diff --git a/test/e2e/volume_rm_test.go b/test/e2e/volume_rm_test.go index 0119e0f7a..68d94963a 100644 --- a/test/e2e/volume_rm_test.go +++ b/test/e2e/volume_rm_test.go @@ -45,7 +45,7 @@ var _ = Describe("Podman volume rm", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) }) It("podman volume rm with --force flag", func() { @@ -66,7 +66,7 @@ var _ = Describe("Podman volume rm", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) podmanTest.Cleanup() }) @@ -93,7 +93,7 @@ var _ = Describe("Podman volume rm", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) }) It("podman volume rm by partial name", func() { @@ -108,7 +108,7 @@ var _ = Describe("Podman volume rm", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray())).To(Equal(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) }) It("podman volume rm by nonunique partial name", func() { @@ -127,6 +127,6 @@ var _ = Describe("Podman volume rm", func() { session = podmanTest.Podman([]string{"volume", "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - Expect(len(session.OutputToStringArray()) >= 2).To(BeTrue()) + Expect(len(session.OutputToStringArray())).To(BeNumerically(">=", 2)) }) }) |