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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-07-20 18:40:28 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-07-20 18:40:28 +0300
commitb595cb0c1dec83de5bdee18284abe86614bed33b (patch)
tree8c3d4540f193c5ff98019352f554e921b3a41a72 /workhorse/upload_test.go
parent2f9104a328fc8a4bddeaa4627b595166d24671d0 (diff)
Add latest changes from gitlab-org/gitlab@15-2-stable-eev15.2.0-rc42
Diffstat (limited to 'workhorse/upload_test.go')
-rw-r--r--workhorse/upload_test.go63
1 files changed, 41 insertions, 22 deletions
diff --git a/workhorse/upload_test.go b/workhorse/upload_test.go
index dedda4ea655..9947059770f 100644
--- a/workhorse/upload_test.go
+++ b/workhorse/upload_test.go
@@ -20,6 +20,7 @@ import (
"gitlab.com/gitlab-org/gitlab/workhorse/internal/secret"
"gitlab.com/gitlab-org/gitlab/workhorse/internal/testhelper"
"gitlab.com/gitlab-org/gitlab/workhorse/internal/upload"
+ "gitlab.com/gitlab-org/gitlab/workhorse/internal/upload/destination"
)
type uploadArtifactsFunction func(url, contentType string, body io.Reader) (*http.Response, string, error)
@@ -82,7 +83,13 @@ func uploadTestServer(t *testing.T, authorizeTests func(r *http.Request), extraT
require.NoError(t, r.ParseMultipartForm(100000))
- const nValues = 11 // file name, path, remote_url, remote_id, size, md5, sha1, sha256, sha512, upload_duration, gitlab-workhorse-upload for just the upload (no metadata because we are not POSTing a valid zip file)
+ var nValues int // file name, path, remote_url, remote_id, size, md5, sha1, sha256, sha512, upload_duration, gitlab-workhorse-upload for just the upload (no metadata because we are not POSTing a valid zip file)
+ if destination.FIPSEnabled() {
+ nValues = 10
+ } else {
+ nValues = 11
+ }
+
require.Len(t, r.MultipartForm.Value, nValues)
require.Empty(t, r.MultipartForm.File, "multipart form files")
@@ -183,7 +190,11 @@ func TestAcceleratedUpload(t *testing.T) {
require.Contains(t, uploadFields, "remote_url")
require.Contains(t, uploadFields, "remote_id")
require.Contains(t, uploadFields, "size")
- require.Contains(t, uploadFields, "md5")
+ if destination.FIPSEnabled() {
+ require.NotContains(t, uploadFields, "md5")
+ } else {
+ require.Contains(t, uploadFields, "md5")
+ }
require.Contains(t, uploadFields, "sha1")
require.Contains(t, uploadFields, "sha256")
require.Contains(t, uploadFields, "sha512")
@@ -287,30 +298,38 @@ func TestBlockingRewrittenFieldsHeader(t *testing.T) {
}
for _, tc := range testCases {
- ts := testhelper.TestServerWithHandler(regexp.MustCompile(`.`), func(w http.ResponseWriter, r *http.Request) {
- key := upload.RewrittenFieldsHeader
- if tc.present && r.URL.Path != "/api/v4/internal/workhorse/authorize_upload" {
- require.Contains(t, r.Header, key)
- } else {
- require.NotContains(t, r.Header, key)
- }
+ t.Run(tc.desc, func(t *testing.T) {
+ ts := testhelper.TestServerWithHandler(regexp.MustCompile(`.`), func(w http.ResponseWriter, r *http.Request) {
+ switch r.URL.Path {
+ case "/api/v4/internal/workhorse/authorize_upload":
+ w.Header().Set("Content-Type", api.ResponseContentType)
+ io.WriteString(w, `{"TempPath":"`+os.TempDir()+`"}`)
+ default:
+ if tc.present {
+ require.Contains(t, r.Header, upload.RewrittenFieldsHeader)
+ } else {
+ require.NotContains(t, r.Header, upload.RewrittenFieldsHeader)
- require.NotEqual(t, canary, r.Header.Get(key), "Found canary %q in header %q", canary, key)
- })
- defer ts.Close()
- ws := startWorkhorseServer(ts.URL)
- defer ws.Close()
+ }
+ }
+
+ require.NotEqual(t, canary, r.Header.Get(upload.RewrittenFieldsHeader), "Found canary %q in header", canary)
+ })
+ defer ts.Close()
+ ws := startWorkhorseServer(ts.URL)
+ defer ws.Close()
- req, err := http.NewRequest("POST", ws.URL+"/something", tc.body)
- require.NoError(t, err)
+ req, err := http.NewRequest("POST", ws.URL+"/something", tc.body)
+ require.NoError(t, err)
- req.Header.Set("Content-Type", tc.contentType)
- req.Header.Set(upload.RewrittenFieldsHeader, canary)
- resp, err := http.DefaultClient.Do(req)
- require.NoError(t, err)
- defer resp.Body.Close()
+ req.Header.Set("Content-Type", tc.contentType)
+ req.Header.Set(upload.RewrittenFieldsHeader, canary)
+ resp, err := http.DefaultClient.Do(req)
+ require.NoError(t, err)
+ defer resp.Body.Close()
- require.Equal(t, 200, resp.StatusCode, "status code")
+ require.Equal(t, 200, resp.StatusCode, "status code")
+ })
}
}