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
diff options
context:
space:
mode:
authorAlessio Caiazza <376774-nolith@users.noreply.gitlab.com>2021-03-29 11:37:35 +0300
committerAlessio Caiazza <376774-nolith@users.noreply.gitlab.com>2021-03-29 11:37:35 +0300
commit08b7c91002fee0efb684028007eca2b456a884eb (patch)
tree635e6265197dee2286185117e3a798760340a195
parent575fec0d865d576c295aa7263d190744bd0a0328 (diff)
parenta0c274cb5c114689264a14d5126c3f10c8c9a777 (diff)
Merge branch 'reduce-acceptance-test-execution' into 'master'
Add retriever config for acceptance tests See merge request gitlab-org/gitlab-pages!450
-rw-r--r--.gitlab/ci/test.yml2
-rw-r--r--Makefile.util.mk2
-rw-r--r--test/acceptance/helpers_test.go26
-rw-r--r--test/acceptance/serving_test.go16
4 files changed, 36 insertions, 10 deletions
diff --git a/.gitlab/ci/test.yml b/.gitlab/ci/test.yml
index 74d49ee6..b4f1eefd 100644
--- a/.gitlab/ci/test.yml
+++ b/.gitlab/ci/test.yml
@@ -53,7 +53,9 @@ race:
extends: .tests-common
script:
- echo "Running race detector"
+ - make setup
- make race
+ - make junit-report
cover:
extends: .tests-common
diff --git a/Makefile.util.mk b/Makefile.util.mk
index 5d5355e4..8d470564 100644
--- a/Makefile.util.mk
+++ b/Makefile.util.mk
@@ -14,7 +14,7 @@ test: .GOPATH/.ok gitlab-pages
go test $(if $V,-v) $(allpackages) 2>&1 | tee tests.out
race: .GOPATH/.ok gitlab-pages
- CGO_ENABLED=1 go test -race $(if $V,-v) $(allpackages)
+ CGO_ENABLED=1 go test -race $(if $V,-v) $(allpackages) 2>&1 | tee tests.out
acceptance: .GOPATH/.ok gitlab-pages
go test $(if $V,-v) ./test/acceptance ${ARGS} 2>&1 | tee tests.out
diff --git a/test/acceptance/helpers_test.go b/test/acceptance/helpers_test.go
index 1ece8148..d2c3c31e 100644
--- a/test/acceptance/helpers_test.go
+++ b/test/acceptance/helpers_test.go
@@ -353,6 +353,13 @@ func getPagesArgs(t *testing.T, listeners []ListenSpec, promPort string, extraAr
args = append(args, "-pages-root", "../../shared/pages")
}
+ // default resolver configuration to execute tests faster
+ if !contains(extraArgs, "-gitlab-retrieval-") {
+ args = append(args, "-gitlab-retrieval-timeout", "50ms",
+ "-gitlab-retrieval-interval", "10ms",
+ "-gitlab-retrieval-retries", "1")
+ }
+
if promPort != "" {
args = append(args, "-metrics-address", promPort)
}
@@ -365,7 +372,7 @@ func getPagesArgs(t *testing.T, listeners []ListenSpec, promPort string, extraAr
func contains(slice []string, s string) bool {
for _, e := range slice {
- if e == s {
+ if strings.Contains(e, s) {
return true
}
}
@@ -538,6 +545,7 @@ func waitForRoundtrips(t *testing.T, listeners []ListenSpec, timeout time.Durati
}
type stubOpts struct {
+ m sync.RWMutex
apiCalled bool
statusReadyCount int
statusHandler http.HandlerFunc
@@ -578,6 +586,20 @@ func NewGitlabDomainsSourceStub(t *testing.T, opts *stubOpts) *httptest.Server {
return httptest.NewServer(mux)
}
+func (o *stubOpts) setAPICalled(v bool) {
+ o.m.Lock()
+ defer o.m.Unlock()
+
+ o.apiCalled = v
+}
+
+func (o *stubOpts) getAPICalled() bool {
+ o.m.RLock()
+ defer o.m.RUnlock()
+
+ return o.apiCalled
+}
+
func lookupFromFile(t *testing.T, domain string, w http.ResponseWriter) {
fixture, err := os.Open("../../shared/lookups/" + domain + ".json")
if os.IsNotExist(err) {
@@ -605,7 +627,7 @@ func defaultAPIHandler(t *testing.T, opts *stubOpts) http.HandlerFunc {
return
}
- opts.apiCalled = true
+ opts.setAPICalled(true)
if opts.pagesStatusResponse != 0 {
w.WriteHeader(opts.pagesStatusResponse)
diff --git a/test/acceptance/serving_test.go b/test/acceptance/serving_test.go
index 07dc0345..7824dda9 100644
--- a/test/acceptance/serving_test.go
+++ b/test/acceptance/serving_test.go
@@ -527,7 +527,7 @@ func TestDomainsSource(t *testing.T) {
require.Equal(t, tt.want.content, string(body), "content mismatch")
}
- require.Equal(t, tt.want.apiCalled, opts.apiCalled, "api called mismatch")
+ require.Equal(t, tt.want.apiCalled, opts.getAPICalled(), "api called mismatch")
})
}
}
@@ -553,17 +553,17 @@ func TestGitLabSourceBecomesUnauthorized(t *testing.T) {
failedResponse, err := GetPageFromListener(t, httpListener, domain, "/")
require.NoError(t, err)
- require.True(t, opts.apiCalled, "API should be called")
+ require.True(t, opts.getAPICalled(), "API should be called")
require.Equal(t, http.StatusBadGateway, failedResponse.StatusCode, "first response should fail with 502")
// make request again
- opts.apiCalled = false
+ opts.setAPICalled(false)
response, err := GetPageFromListener(t, httpListener, domain, "/")
require.NoError(t, err)
defer response.Body.Close()
- require.False(t, opts.apiCalled, "API should not be called after the first failure")
+ require.False(t, opts.getAPICalled(), "API should not be called after the first failure")
require.Equal(t, http.StatusOK, response.StatusCode, "second response should succeed")
body, err := ioutil.ReadAll(response.Body)
@@ -624,7 +624,7 @@ func TestDomainResolverError(t *testing.T) {
return
}
- opts.apiCalled = true
+ opts.setAPICalled(true)
if test.panic {
panic("server failed")
}
@@ -639,7 +639,8 @@ func TestDomainResolverError(t *testing.T) {
pagesArgs := []string{"-gitlab-server", source.URL, "-api-secret-key", gitLabAPISecretKey, "-domain-config-source", "gitlab"}
if test.timeout != 0 {
- pagesArgs = append(pagesArgs, "-gitlab-client-http-timeout", test.timeout.String())
+ pagesArgs = append(pagesArgs, "-gitlab-client-http-timeout", test.timeout.String(),
+ "-gitlab-retrieval-timeout", "200ms", "-gitlab-retrieval-interval", "200ms", "-gitlab-retrieval-retries", "1")
}
teardown := RunPagesProcessWithEnvs(t, true, *pagesBinary, listeners, "", []string{}, pagesArgs...)
@@ -649,7 +650,8 @@ func TestDomainResolverError(t *testing.T) {
require.NoError(t, err)
defer response.Body.Close()
- require.True(t, opts.apiCalled, "api must have been called")
+ require.True(t, opts.getAPICalled(), "api must have been called")
+
require.Equal(t, http.StatusBadGateway, response.StatusCode)
body, err := ioutil.ReadAll(response.Body)