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<x>", 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 <santiago@redhat.com>
This commit is contained in:
Ed Santiago
2024-02-20 09:41:56 -07:00
parent 95236927a8
commit 1c61f766d4

View File

@ -75,19 +75,20 @@ registries = []`
}) })
It("podman search format flag", func() { 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() search.WaitWithDefaultTimeout()
Expect(search).Should(ExitCleanly()) Expect(search).Should(ExitCleanly())
Expect(len(search.OutputToStringArray())).To(BeNumerically(">", 1)) 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() { 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() search.WaitWithDefaultTimeout()
Expect(search).Should(ExitCleanly()) Expect(search).Should(ExitCleanly())
Expect(search.OutputToString()).To(BeValidJSON()) 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 // Test for https://github.com/containers/podman/issues/11894
contents := make([]entities.ImageSearchReport, 0) contents := make([]entities.ImageSearchReport, 0)
@ -123,17 +124,17 @@ registries = []`
}) })
It("podman search limit flag", func() { It("podman search limit flag", func() {
search := podmanTest.Podman([]string{"search", "docker.io/alpine"}) search := podmanTest.Podman([]string{"search", "quay.io/alpine"})
search.WaitWithDefaultTimeout() search.WaitWithDefaultTimeout()
Expect(search).Should(ExitCleanly()) Expect(search).Should(ExitCleanly())
Expect(len(search.OutputToStringArray())).To(BeNumerically(">", 10)) 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() search.WaitWithDefaultTimeout()
Expect(search).Should(ExitCleanly()) Expect(search).Should(ExitCleanly())
Expect(search.OutputToStringArray()).To(HaveLen(4)) 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() search.WaitWithDefaultTimeout()
Expect(search).Should(ExitCleanly()) Expect(search).Should(ExitCleanly())
Expect(search.OutputToStringArray()).To(HaveLen(31)) Expect(search.OutputToStringArray()).To(HaveLen(31))
@ -382,23 +383,34 @@ registries = []`
}) })
It("podman search repository tags", func() { 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() search.WaitWithDefaultTimeout()
Expect(search).Should(ExitCleanly()) Expect(search).Should(ExitCleanly())
Expect(search.OutputToStringArray()).To(HaveLen(31)) 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() search.WaitWithDefaultTimeout()
Expect(search).Should(ExitCleanly()) Expect(search).Should(ExitCleanly())
Expect(len(search.OutputToStringArray())).To(BeNumerically(">", 2)) 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() 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() search.WaitWithDefaultTimeout()
Expect(search).To(Exit(125))
Expect(search.OutputToStringArray()).To(BeEmpty()) 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() { It("podman search with limit over 100", func() {