From 43b75b0775c712fbeb2edf7d4c99e11d8519e8b5 Mon Sep 17 00:00:00 2001 From: Jakub Al-Khalili Date: Tue, 17 Sep 2019 08:29:25 +0200 Subject: [PATCH] Improve e2e test with waiting enhancement --- test/e2e/configuration_test.go | 21 ++++++++++++++++----- test/e2e/restorebackup_test.go | 15 ++++++++++++++- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/test/e2e/configuration_test.go b/test/e2e/configuration_test.go index 7802500f..3404d093 100644 --- a/test/e2e/configuration_test.go +++ b/test/e2e/configuration_test.go @@ -3,15 +3,15 @@ package e2e import ( "context" "fmt" - "testing" - "time" - + "github.com/jenkinsci/kubernetes-operator/internal/try" + "github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/groovy" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" - "github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" + "testing" + "time" "github.com/bndr/gojenkins" framework "github.com/operator-framework/operator-sdk/pkg/test" @@ -129,7 +129,18 @@ func TestPlugins(t *testing.T) { i, err := job.InvokeSimple(map[string]string{}) require.NoError(t, err, i) - time.Sleep(time.Minute * 2) + time.Sleep(time.Second * 5) + err = try.Until(func() (end bool, err error) { + running, _ := job.IsRunning() + queued, _ := job.IsQueued() + + if !running && !queued { + return true, nil + } + + return false, nil + }, time.Second*5, time.Minute*2) + require.NoError(t, err) job, err = jenkinsClient.GetJob(jobID) require.NoError(t, err, job) diff --git a/test/e2e/restorebackup_test.go b/test/e2e/restorebackup_test.go index 475e3292..5c0cb010 100644 --- a/test/e2e/restorebackup_test.go +++ b/test/e2e/restorebackup_test.go @@ -36,7 +36,20 @@ func TestBackupAndRestore(t *testing.T) { require.NoError(t, err, job) i, err := job.InvokeSimple(map[string]string{}) require.NoError(t, err, i) - time.Sleep(60 * time.Second) // wait for the build to complete + + time.Sleep(time.Second * 10) + err = try.Until(func() (end bool, err error) { + t.Log("Running job...") + running, _ := job.IsRunning() + queued, _ := job.IsQueued() + + if !running && !queued { + return true, nil + } + + return false, nil + }, time.Second*10, time.Minute*2) + require.NoError(t, err) restartJenkinsMasterPod(t, jenkins) waitForRecreateJenkinsMasterPod(t, jenkins)