|  | @@ -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) {
 |