diff options
author | Nick Thomas <nick@gitlab.com> | 2018-03-14 18:12:55 +0300 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2018-03-14 18:12:55 +0300 |
commit | fe1561978ed164220e471129c9b2fa6b89d07992 (patch) | |
tree | df64b291f841be9b7023f61ee86099c67606282b | |
parent | 6da2f42ce87582107902e5c81d12d07d398b5601 (diff) | |
parent | 8efe1a3a46bdd523a5013e804816260d91111fa7 (diff) |
Merge branch 'wait-for-roundtrip' into 'master'
Wait for a successful roundtrip
See merge request gitlab-org/gitlab-pages!72
-rw-r--r-- | acceptance_test.go | 4 | ||||
-rw-r--r-- | helpers_test.go | 12 |
2 files changed, 12 insertions, 4 deletions
diff --git a/acceptance_test.go b/acceptance_test.go index 360b4c2e..f1e5a04e 100644 --- a/acceptance_test.go +++ b/acceptance_test.go @@ -303,7 +303,7 @@ func TestStatusNotYetReady(t *testing.T) { teardown := RunPagesProcessWithoutWait(t, *pagesBinary, listeners, "", "-pages-status=/@statuscheck", "-pages-root=shared/invalid-pages") defer teardown() - waitForTCPListeners(t, listeners, 5*time.Second) + waitForRoundtrips(t, listeners, 5*time.Second) rsp, err := GetPageFromListener(t, httpListener, "group.gitlab-example.com", "@statuscheck") require.NoError(t, err) defer rsp.Body.Close() @@ -314,7 +314,7 @@ func TestPageNotAvailableIfNotLoaded(t *testing.T) { skipUnlessEnabled(t) teardown := RunPagesProcessWithoutWait(t, *pagesBinary, listeners, "", "-pages-root=shared/invalid-pages") defer teardown() - waitForTCPListeners(t, listeners, 5*time.Second) + waitForRoundtrips(t, listeners, 5*time.Second) rsp, err := GetPageFromListener(t, httpListener, "group.gitlab-example.com", "index.html") require.NoError(t, err) diff --git a/helpers_test.go b/helpers_test.go index d3e24b92..44fc3797 100644 --- a/helpers_test.go +++ b/helpers_test.go @@ -268,15 +268,23 @@ func GetRedirectPage(t *testing.T, spec ListenSpec, host, urlsuffix string) (*ht return InsecureHTTPSClient.Transport.RoundTrip(req) } -func waitForTCPListeners(t *testing.T, listeners []ListenSpec, timeout time.Duration) { +func waitForRoundtrips(t *testing.T, listeners []ListenSpec, timeout time.Duration) { nListening := 0 start := time.Now() for _, spec := range listeners { for time.Since(start) < timeout { - if _, err := net.DialTimeout("tcp", spec.JoinHostPort(), 100*time.Millisecond); err == nil { + req, err := http.NewRequest("GET", spec.URL("/"), nil) + if err != nil { + t.Fatal(err) + } + + if response, err := InsecureHTTPSClient.Transport.RoundTrip(req); err == nil { nListening++ + response.Body.Close() break } + + time.Sleep(100 * time.Millisecond) } } |