Improve e2e test with waiting enhancement

This commit is contained in:
Jakub Al-Khalili 2019-09-17 08:29:25 +02:00
parent cb1e49ea42
commit 43b75b0775
2 changed files with 30 additions and 6 deletions

View File

@ -3,15 +3,15 @@ package e2e
import ( import (
"context" "context"
"fmt" "fmt"
"testing" "github.com/jenkinsci/kubernetes-operator/internal/try"
"time" "github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2"
jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" 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"
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" "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/groovy"
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins"
"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" "testing"
"time"
"github.com/bndr/gojenkins" "github.com/bndr/gojenkins"
framework "github.com/operator-framework/operator-sdk/pkg/test" 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{}) i, err := job.InvokeSimple(map[string]string{})
require.NoError(t, err, i) 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) job, err = jenkinsClient.GetJob(jobID)
require.NoError(t, err, job) require.NoError(t, err, job)

View File

@ -36,7 +36,20 @@ func TestBackupAndRestore(t *testing.T) {
require.NoError(t, err, job) require.NoError(t, err, job)
i, err := job.InvokeSimple(map[string]string{}) i, err := job.InvokeSimple(map[string]string{})
require.NoError(t, err, i) 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) restartJenkinsMasterPod(t, jenkins)
waitForRecreateJenkinsMasterPod(t, jenkins) waitForRecreateJenkinsMasterPod(t, jenkins)