From 1c61f766d464660c3a719fa1c951bccc82e1199a Mon Sep 17 00:00:00 2001 From: Ed Santiago Date: Tue, 20 Feb 2024 09:41:56 -0700 Subject: [PATCH] CI: fix search-test flakes Seeing constant e2e test failures today, in search tests. Reason: tests are searching for "alpine", which is common, and we're hitting pollution. Solution: search for "testdigest_v2s", an image in quay under the libpod namespace. And, in other tests that rely on docker.io, switch to quay. Signed-off-by: Ed Santiago --- test/e2e/search_test.go | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/test/e2e/search_test.go b/test/e2e/search_test.go index df6a9f0d88..568c1bf222 100644 --- a/test/e2e/search_test.go +++ b/test/e2e/search_test.go @@ -75,19 +75,20 @@ registries = []` }) It("podman search format flag", func() { - search := podmanTest.Podman([]string{"search", "--format", "table {{.Index}} {{.Name}}", "alpine"}) + search := podmanTest.Podman([]string{"search", "--format", "table {{.Index}} {{.Name}}", "testdigest_v2s2"}) search.WaitWithDefaultTimeout() Expect(search).Should(ExitCleanly()) Expect(len(search.OutputToStringArray())).To(BeNumerically(">", 1)) - Expect(search.OutputToString()).To(ContainSubstring("docker.io/library/alpine")) + Expect(search.OutputToString()).To(ContainSubstring("quay.io/libpod/testdigest_v2s2")) }) It("podman search format json", func() { - search := podmanTest.Podman([]string{"search", "--format", "json", "busybox"}) + search := podmanTest.Podman([]string{"search", "--format", "json", "testdigest_v2s1"}) search.WaitWithDefaultTimeout() Expect(search).Should(ExitCleanly()) Expect(search.OutputToString()).To(BeValidJSON()) - Expect(search.OutputToString()).To(ContainSubstring("docker.io/library/busybox")) + Expect(search.OutputToString()).To(ContainSubstring("quay.io/libpod/testdigest_v2s1")) + Expect(search.OutputToString()).To(ContainSubstring("Test image used by buildah regression tests")) // Test for https://github.com/containers/podman/issues/11894 contents := make([]entities.ImageSearchReport, 0) @@ -123,17 +124,17 @@ registries = []` }) It("podman search limit flag", func() { - search := podmanTest.Podman([]string{"search", "docker.io/alpine"}) + search := podmanTest.Podman([]string{"search", "quay.io/alpine"}) search.WaitWithDefaultTimeout() Expect(search).Should(ExitCleanly()) Expect(len(search.OutputToStringArray())).To(BeNumerically(">", 10)) - search = podmanTest.Podman([]string{"search", "--limit", "3", "docker.io/alpine"}) + search = podmanTest.Podman([]string{"search", "--limit", "3", "quay.io/alpine"}) search.WaitWithDefaultTimeout() Expect(search).Should(ExitCleanly()) Expect(search.OutputToStringArray()).To(HaveLen(4)) - search = podmanTest.Podman([]string{"search", "--limit", "30", "docker.io/alpine"}) + search = podmanTest.Podman([]string{"search", "--limit", "30", "quay.io/alpine"}) search.WaitWithDefaultTimeout() Expect(search).Should(ExitCleanly()) Expect(search.OutputToStringArray()).To(HaveLen(31)) @@ -382,23 +383,34 @@ registries = []` }) It("podman search repository tags", func() { - search := podmanTest.Podman([]string{"search", "--list-tags", "--limit", "30", "docker.io/library/alpine"}) + search := podmanTest.Podman([]string{"search", "--list-tags", "--limit", "30", "quay.io/podman/stable"}) search.WaitWithDefaultTimeout() Expect(search).Should(ExitCleanly()) Expect(search.OutputToStringArray()).To(HaveLen(31)) - search = podmanTest.Podman([]string{"search", "--list-tags", "docker.io/library/alpine"}) + search = podmanTest.Podman([]string{"search", "--list-tags", "quay.io/podman/stable"}) search.WaitWithDefaultTimeout() Expect(search).Should(ExitCleanly()) Expect(len(search.OutputToStringArray())).To(BeNumerically(">", 2)) - search = podmanTest.Podman([]string{"search", "--filter=is-official", "--list-tags", "docker.io/library/alpine"}) + search = podmanTest.Podman([]string{"search", "--filter=is-official", "--list-tags", "quay.io/podman/stable"}) search.WaitWithDefaultTimeout() - Expect(search).To(ExitWithError()) + Expect(search).To(Exit(125)) + Expect(search.ErrorToString()).To(ContainSubstring("filters are not applicable to list tags result")) - search = podmanTest.Podman([]string{"search", "--list-tags", "docker.io/library/"}) + // With trailing slash + search = podmanTest.Podman([]string{"search", "--list-tags", "quay.io/podman/"}) search.WaitWithDefaultTimeout() + Expect(search).To(Exit(125)) Expect(search.OutputToStringArray()).To(BeEmpty()) + Expect(search.ErrorToString()).To(ContainSubstring("must be a docker reference")) + + // No trailing slash + search = podmanTest.Podman([]string{"search", "--list-tags", "quay.io/podman"}) + search.WaitWithDefaultTimeout() + Expect(search).To(Exit(125)) + Expect(search.OutputToStringArray()).To(BeEmpty()) + Expect(search.ErrorToString()).To(ContainSubstring("fetching tags list: StatusCode: 404")) }) It("podman search with limit over 100", func() {