From 6dbb60fc8ba37e39acca269589721d77c8edfad8 Mon Sep 17 00:00:00 2001 From: Paul Holzinger Date: Thu, 13 Apr 2023 10:55:52 +0200 Subject: [PATCH] test/e2e: fix Cleanup() Only check exit codes last, othwerwise in case of errors it will return early and miss other commands. Also explicitly stop before rm, rm is not working in all cases (#18180). Signed-off-by: Paul Holzinger --- test/e2e/common_test.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/test/e2e/common_test.go b/test/e2e/common_test.go index 74d3f490b78d..1c2734fb1423 100644 --- a/test/e2e/common_test.go +++ b/test/e2e/common_test.go @@ -561,6 +561,11 @@ func (p *PodmanTestIntegration) Quadlet(args []string, sourceDir string) *Podman // Cleanup cleans up the temporary store func (p *PodmanTestIntegration) Cleanup() { + // first stop everything, rm -fa is unreliable + // https://github.com/containers/podman/issues/18180 + stop := p.Podman([]string{"stop", "--all", "-t", "0"}) + stop.WaitWithDefaultTimeout() + // Remove all pods... podrm := p.Podman([]string{"pod", "rm", "-fa", "-t", "0"}) podrm.WaitWithDefaultTimeout() @@ -569,10 +574,6 @@ func (p *PodmanTestIntegration) Cleanup() { rmall := p.Podman([]string{"rm", "-fa", "-t", "0"}) rmall.WaitWithDefaultTimeout() - // make sure to only check exit code after both commands ran otherwise we leak when pod rm fails - Expect(podrm).To(Exit(0)) - Expect(rmall).To(Exit(0)) - p.StopRemoteService() // FIXME: something is causing errors in rootless netns cleanup @@ -599,6 +600,12 @@ func (p *PodmanTestIntegration) Cleanup() { // Clean up the registries configuration file ENV variable set in Create resetRegistriesConfigEnv() + + // Make sure to only check exit codes after all cleanup is done. + // An error would cause it to stop and return early otherwise. + Expect(stop).To(Exit(0)) + Expect(podrm).To(Exit(0)) + Expect(rmall).To(Exit(0)) } // CleanupVolume cleans up the temporary store