diff --git a/test/e2e/mpi_job_test.go b/test/e2e/mpi_job_test.go index b7f358156..8e59503b1 100644 --- a/test/e2e/mpi_job_test.go +++ b/test/e2e/mpi_job_test.go @@ -18,6 +18,7 @@ import ( "context" "fmt" "io" + "time" "github.com/google/go-cmp/cmp" "github.com/onsi/ginkgo" @@ -164,6 +165,29 @@ var _ = ginkgo.Describe("MPIJob", func() { mpiJob := createJobAndWaitForCompletion(mpiJob) expectConditionToBeTrue(mpiJob, kubeflow.JobSucceeded) }) + + ginkgo.It("should not complete when managed externaly", func() { + mpiJob.Spec.RunPolicy.ManagedBy = ptr.To(kubeflow.MultiKueueController) + ctx := context.Background() + mpiJob = createJob(ctx, mpiJob) + + gomega.Consistently(func() error { + updatedJob, err := mpiClient.KubeflowV2beta1().MPIJobs(mpiJob.Namespace).Get(ctx, mpiJob.Name, metav1.GetOptions{}) + if err != nil { + return err + } + mpiJob = updatedJob + return nil + }, 5*time.Second, waitInterval).Should(gomega.Succeed()) + + // job should be created, but never succeeded + condition := getJobCondition(mpiJob, kubeflow.JobCreated) + gomega.Expect(condition).ToNot(gomega.BeNil()) + gomega.Expect(condition.Status).To(gomega.Equal(corev1.ConditionTrue)) + + condition = getJobCondition(mpiJob, kubeflow.JobSucceeded) + gomega.Expect(condition).To(gomega.BeNil()) + }) }) })