Jelajahi Sumber

Merge pull request #751 from docker/fix-string-len-e2e

Fix e2e-aci tests on comparing with empty string
Guillaume Tardif 5 tahun lalu
induk
melakukan
4380adeed5
2 mengubah file dengan 7 tambahan dan 4 penghapusan
  1. 2 2
      tests/aci-e2e/e2e-aci_test.go
  2. 5 2
      tests/framework/e2e.go

+ 2 - 2
tests/aci-e2e/e2e-aci_test.go

@@ -384,7 +384,7 @@ func TestContainerRunAttached(t *testing.T) {
 
 		checkRunning := func(t poll.LogT) poll.Result {
 			res := c.RunDockerOrExitError("inspect", container)
-			if res.ExitCode == 0 && strings.Contains(res.Stdout(), `"Status": "Running"`) {
+			if res.ExitCode == 0 && strings.Contains(res.Stdout(), `"Status": "Running"`) && !strings.Contains(res.Stdout(), `"HostIP": ""`) {
 				return poll.Success()
 			}
 			return poll.Continue("waiting for container to be running, current inspect result: \n%s", res.Combined())
@@ -404,7 +404,7 @@ func TestContainerRunAttached(t *testing.T) {
 
 		assert.Assert(t, is.Len(containerInspect.Ports, 1))
 		port := containerInspect.Ports[0]
-		assert.Assert(t, len(port.HostIP) > 0)
+		assert.Assert(t, port.HostIP != "", "empty hostIP, inspect: \n"+inspectRes.Stdout())
 		assert.Equal(t, port.ContainerPort, uint32(80))
 		assert.Equal(t, port.HostPort, uint32(80))
 		assert.Equal(t, containerInspect.Config.FQDN, fqdn)

+ 5 - 2
tests/framework/e2e.go

@@ -207,7 +207,7 @@ func ParseContainerInspect(stdout string) (*containers.Container, error) {
 	return &res, nil
 }
 
-// HTTPGetWithRetry performs an HTTP GET on an `endpoint`.
+// HTTPGetWithRetry performs an HTTP GET on an `endpoint`, using retryDelay also as a request timeout.
 // In the case of an error or the response status is not the expeted one, it retries the same request,
 // returning the response body as a string (empty if we could not reach it)
 func HTTPGetWithRetry(t *testing.T, endpoint string, expectedStatus int, retryDelay time.Duration, timeout time.Duration) string {
@@ -215,8 +215,11 @@ func HTTPGetWithRetry(t *testing.T, endpoint string, expectedStatus int, retryDe
 		r   *http.Response
 		err error
 	)
+	client := &http.Client{
+		Timeout: retryDelay * time.Second,
+	}
 	checkUp := func(t poll.LogT) poll.Result {
-		r, err = http.Get(endpoint)
+		r, err = client.Get(endpoint)
 		if err != nil {
 			return poll.Continue("reaching %q: Error %s", endpoint, err.Error())
 		}