From a027bf10214e39795e9c0da8d53bdc153c899f78 Mon Sep 17 00:00:00 2001 From: Ed Santiago Date: Wed, 26 Apr 2023 09:20:28 -0600 Subject: [PATCH] e2e cleanup: push with auth: add error checks Add actual tests (for expected errors, not just exit-status) to the "push to local registry with authorization" test. As it is now, if the registry is unreachable, the test passes a number of steps and only fails later, with a misleading diagnostic. Followup to, but does not fix, #18286 Signed-off-by: Ed Santiago --- test/e2e/push_test.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/e2e/push_test.go b/test/e2e/push_test.go index 64ad87fa2d..9b761a8e9e 100644 --- a/test/e2e/push_test.go +++ b/test/e2e/push_test.go @@ -286,10 +286,12 @@ var _ = Describe("Podman push", func() { push := podmanTest.Podman([]string{"push", "--tls-verify=true", "--format=v2s2", "--creds=podmantest:test", ALPINE, "localhost:5000/tlstest"}) push.WaitWithDefaultTimeout() Expect(push).To(ExitWithError()) + Expect(push.ErrorToString()).To(ContainSubstring("x509: certificate signed by unknown authority")) push = podmanTest.Podman([]string{"push", "--creds=podmantest:test", "--tls-verify=false", ALPINE, "localhost:5000/tlstest"}) push.WaitWithDefaultTimeout() Expect(push).Should(Exit(0)) + Expect(push.ErrorToString()).To(ContainSubstring("Writing manifest to image destination")) setup := SystemExec("cp", []string{filepath.Join(certPath, "domain.crt"), "/etc/containers/certs.d/localhost:5000/ca.crt"}) Expect(setup).Should(Exit(0)) @@ -297,17 +299,20 @@ var _ = Describe("Podman push", func() { push = podmanTest.Podman([]string{"push", "--creds=podmantest:wrongpasswd", ALPINE, "localhost:5000/credstest"}) push.WaitWithDefaultTimeout() Expect(push).To(ExitWithError()) + Expect(push.ErrorToString()).To(ContainSubstring("/credstest: authentication required")) if !IsRemote() { // remote does not support --cert-dir push = podmanTest.Podman([]string{"push", "--tls-verify=true", "--creds=podmantest:test", "--cert-dir=fakedir", ALPINE, "localhost:5000/certdirtest"}) push.WaitWithDefaultTimeout() Expect(push).To(ExitWithError()) + Expect(push.ErrorToString()).To(ContainSubstring("x509: certificate signed by unknown authority")) } push = podmanTest.Podman([]string{"push", "--creds=podmantest:test", ALPINE, "localhost:5000/defaultflags"}) push.WaitWithDefaultTimeout() Expect(push).Should(Exit(0)) + Expect(push.ErrorToString()).To(ContainSubstring("Writing manifest to image destination")) }) It("podman push and encrypt to oci", func() {