diff --git a/controllers/leveltriggered/controller_remote_test.go b/controllers/leveltriggered/controller_remote_test.go index 26b939f..d98e099 100644 --- a/controllers/leveltriggered/controller_remote_test.go +++ b/controllers/leveltriggered/controller_remote_test.go @@ -33,6 +33,7 @@ func TestRemoteTargets(t *testing.T) { if err != nil { t.Error("starting leaf test env failed", err) } + envsToStop = append(envsToStop, leafEnv) user, err := leafEnv.ControlPlane.AddUser(envtest.User{ Name: "leaf-admin", diff --git a/controllers/leveltriggered/suite_test.go b/controllers/leveltriggered/suite_test.go index c118476..2dcb801 100644 --- a/controllers/leveltriggered/suite_test.go +++ b/controllers/leveltriggered/suite_test.go @@ -34,6 +34,8 @@ var kubeConfig []byte var eventRecorder *testEventRecorder var pipelineReconciler *PipelineReconciler +var envsToStop []*envtest.Environment + type testEvent struct { object runtime.Object eventType string @@ -100,6 +102,7 @@ func TestMain(m *testing.M) { if err != nil { log.Fatalf("starting test env failed: %s", err) } + envsToStop = append(envsToStop, testEnv) user, err := testEnv.ControlPlane.AddUser(envtest.User{ Name: "envtest-admin", @@ -178,11 +181,18 @@ func TestMain(m *testing.M) { wg.Wait() log.Println("manager exited") - err = testEnv.Stop() - if err != nil { - log.Fatalf("stopping test env failed: %s", err) + var failedToStopEnvs bool + for _, env := range envsToStop { + err = env.Stop() + if err != nil { + failedToStopEnvs = true + log.Printf("stopping test env failed: %s\n", err) + } + } + if failedToStopEnvs { + log.Fatalf("failed to stop all test envs") } - log.Println("test env stopped") + log.Println("test envs stopped") os.Exit(retCode) }