1
0
Эх сурвалжийг харах

Merge pull request #531 from docker/ecs_flaky_test

Fix flakiness in ECS E2E
Guillaume Tardif 5 жил өмнө
parent
commit
5a36fb9f5d

+ 17 - 7
tests/ecs-e2e/e2e-ecs_test.go

@@ -27,9 +27,11 @@ import (
 	"time"
 
 	"gotest.tools/v3/assert"
+	"gotest.tools/v3/poll"
 
-	. "github.com/docker/api/tests/framework"
 	"gotest.tools/v3/icmd"
+
+	. "github.com/docker/api/tests/framework"
 )
 
 var binDir string
@@ -99,12 +101,20 @@ func TestCompose(t *testing.T) {
 	})
 
 	t.Run("nginx GET", func(t *testing.T) {
-		r, err := http.Get(url)
-		assert.NilError(t, err)
-		assert.Equal(t, r.StatusCode, http.StatusOK)
-		b, err := ioutil.ReadAll(r.Body)
-		assert.NilError(t, err)
-		assert.Assert(t, strings.Contains(string(b), "Welcome to nginx!"))
+		checkUp := func(t poll.LogT) poll.Result {
+			r, err := http.Get(url)
+			if err != nil {
+				return poll.Continue("Err while getting %s : %v", url, err)
+			} else if r.StatusCode != http.StatusOK {
+				return poll.Continue("status %s while getting %s", r.Status, url)
+			}
+			b, err := ioutil.ReadAll(r.Body)
+			if err == nil && strings.Contains(string(b), "Welcome to nginx!") {
+				return poll.Success()
+			}
+			return poll.Error(fmt.Errorf("No nginx welcome page received at %s: \n%s", url, string(b)))
+		}
+		poll.WaitOn(t, checkUp, poll.WithDelay(2*time.Second), poll.WithTimeout(60*time.Second))
 	})
 
 	t.Run("compose down", func(t *testing.T) {