Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJaime Martinez <jmartinez@gitlab.com>2022-07-04 05:13:36 +0300
committerJaime Martinez <jmartinez@gitlab.com>2022-07-04 05:13:36 +0300
commit79e339d31c7770e73d3f54b63d3675d3604c3b0d (patch)
tree17f7a7bc714d353fa336e27fe029f3d5193d0378 /test
parent30f67e89a01173207bd1e40d151c700c18ccddc7 (diff)
parentb8060e2c4a5fbb3e17ffa784f3c74bfee0e8a763 (diff)
Merge branch 'refactor/test-ping' into 'master'
refactor: use healthcheck path during test ping See merge request gitlab-org/gitlab-pages!795
Diffstat (limited to 'test')
-rw-r--r--test/acceptance/helpers_test.go42
-rw-r--r--test/acceptance/ratelimiter_test.go22
-rw-r--r--test/acceptance/status_test.go3
3 files changed, 30 insertions, 37 deletions
diff --git a/test/acceptance/helpers_test.go b/test/acceptance/helpers_test.go
index 4c365c5e..5ee409bf 100644
--- a/test/acceptance/helpers_test.go
+++ b/test/acceptance/helpers_test.go
@@ -190,33 +190,36 @@ func (l ListenSpec) QuickTimeoutClient() *http.Client {
// Returns only once this spec points at a working TCP server
func (l ListenSpec) WaitUntilRequestSucceeds(done chan struct{}) error {
timeout := 5 * time.Second
- for start := time.Now(); time.Since(start) < timeout; {
+
+ ctx, cancel := context.WithTimeout(context.Background(), timeout)
+ defer cancel()
+
+ ticker := time.NewTicker(100 * time.Millisecond)
+ defer ticker.Stop()
+
+ for {
select {
case <-done:
return fmt.Errorf("server has shut down already")
- default:
- }
+ case <-ctx.Done():
+ return fmt.Errorf("ctx done: %w for listener %v", ctx.Err(), l)
+ case <-ticker.C:
+ req, err := http.NewRequestWithContext(ctx, http.MethodGet, l.URL("/@healthcheck"), nil)
+ if err != nil {
+ return err
+ }
- req, err := http.NewRequest("GET", l.URL("/"), nil)
- if err != nil {
- return err
- }
+ response, err := l.QuickTimeoutClient().Transport.RoundTrip(req)
- response, err := l.QuickTimeoutClient().Transport.RoundTrip(req)
- if err != nil {
- time.Sleep(100 * time.Millisecond)
- continue
- }
- response.Body.Close()
+ if err == nil {
+ response.Body.Close()
- if code := response.StatusCode; code >= 200 && code < 500 {
- return nil
+ if code := response.StatusCode; code >= 200 && code < 500 {
+ return nil
+ }
+ }
}
-
- time.Sleep(100 * time.Millisecond)
}
-
- return fmt.Errorf("timed out after %v waiting for listener %v", timeout, l)
}
func (l ListenSpec) JoinHostPort() string {
@@ -339,6 +342,7 @@ func runPagesProcess(t *testing.T, wait bool, pagesBinary string, listeners []Li
func getPagesArgs(t *testing.T, listeners []ListenSpec, promPort string, extraArgs []string) (args []string) {
var hasHTTPS bool
args = append(args, "-log-verbose=true")
+ args = append(args, "-pages-status=/@healthcheck")
for _, spec := range listeners {
if spec.Type == "unix" {
diff --git a/test/acceptance/ratelimiter_test.go b/test/acceptance/ratelimiter_test.go
index ef49aa19..85e0f6aa 100644
--- a/test/acceptance/ratelimiter_test.go
+++ b/test/acceptance/ratelimiter_test.go
@@ -16,19 +16,14 @@ var ratelimitedListeners = map[string]struct {
listener ListenSpec
header http.Header
clientIP string
- // We perform requests to server while we're waiting for it to boot up,
- // successful request gets counted in IP rate limit
- includeWaitRequest bool
}{
"http_listener": {
- listener: httpListener,
- clientIP: "127.0.0.1",
- includeWaitRequest: true,
+ listener: httpListener,
+ clientIP: "127.0.0.1",
},
"https_listener": {
- listener: httpsListener,
- clientIP: "127.0.0.1",
- includeWaitRequest: true,
+ listener: httpsListener,
+ clientIP: "127.0.0.1",
},
"proxy_listener": {
listener: proxyListener,
@@ -39,9 +34,8 @@ var ratelimitedListeners = map[string]struct {
clientIP: "172.16.123.1",
},
"proxyv2_listener": {
- listener: httpsProxyv2Listener,
- clientIP: "10.1.1.1",
- includeWaitRequest: true,
+ listener: httpsProxyv2Listener,
+ clientIP: "10.1.1.1",
},
}
@@ -57,10 +51,6 @@ func TestIPRateLimits(t *testing.T) {
withExtraArgument("rate-limit-source-ip-burst", fmt.Sprint(rateLimit)),
)
- if tc.includeWaitRequest {
- rateLimit-- // we've already used one of requests while checking if server is up
- }
-
for i := 0; i < 10; i++ {
rsp, err := GetPageFromListenerWithHeaders(t, tc.listener, "group.gitlab-example.com", "project/", tc.header)
require.NoError(t, err)
diff --git a/test/acceptance/status_test.go b/test/acceptance/status_test.go
index c48aaff7..a57ae043 100644
--- a/test/acceptance/status_test.go
+++ b/test/acceptance/status_test.go
@@ -12,10 +12,9 @@ import (
func TestStatusPage(t *testing.T) {
RunPagesProcess(t,
withListeners([]ListenSpec{httpListener}),
- withExtraArgument("pages-status", "/@statuscheck"),
)
- rsp, err := GetPageFromListener(t, httpListener, "group.gitlab-example.com", "@statuscheck")
+ rsp, err := GetPageFromListener(t, httpListener, "group.gitlab-example.com", "@healthcheck")
require.NoError(t, err)
testhelpers.Close(t, rsp.Body)
require.Equal(t, http.StatusOK, rsp.StatusCode)