summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKN4CK3R <admin@oldschoolhack.me>2022-12-10 01:11:46 +0100
committerGitHub <noreply@github.com>2022-12-10 02:11:46 +0200
commitb54c064f89725b803bcc2a2017eec6895ad07175 (patch)
treeb192e674dfdd9e0eccdd11273c608335c936ce82 /tests
parentc0ca9c612b70c14f41d6d9a0f915ece899bd0188 (diff)
downloadgitea-b54c064f89725b803bcc2a2017eec6895ad07175.tar.gz
gitea-b54c064f89725b803bcc2a2017eec6895ad07175.zip
Workaround for container registry push/pull errors (#21862) (#22068)
Backport of #21862 Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/integration/api_packages_container_test.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/integration/api_packages_container_test.go b/tests/integration/api_packages_container_test.go
index ba76ee4baa..60cbecd067 100644
--- a/tests/integration/api_packages_container_test.go
+++ b/tests/integration/api_packages_container_test.go
@@ -6,10 +6,12 @@ package integration
import (
"bytes"
+ "crypto/sha256"
"encoding/base64"
"fmt"
"net/http"
"strings"
+ "sync"
"testing"
"code.gitea.io/gitea/models/db"
@@ -594,6 +596,32 @@ func TestPackageContainer(t *testing.T) {
})
}
+ // https://github.com/go-gitea/gitea/issues/19586
+ t.Run("ParallelUpload", func(t *testing.T) {
+ defer tests.PrintCurrentTest(t)()
+
+ url := fmt.Sprintf("%sv2/%s/parallel", setting.AppURL, user.Name)
+
+ var wg sync.WaitGroup
+ for i := 0; i < 10; i++ {
+ wg.Add(1)
+
+ content := []byte{byte(i)}
+ digest := fmt.Sprintf("sha256:%x", sha256.Sum256(content))
+
+ go func() {
+ defer wg.Done()
+
+ req := NewRequestWithBody(t, "POST", fmt.Sprintf("%s/blobs/uploads?digest=%s", url, digest), bytes.NewReader(content))
+ addTokenAuthHeader(req, userToken)
+ resp := MakeRequest(t, req, http.StatusCreated)
+
+ assert.Equal(t, digest, resp.Header().Get("Docker-Content-Digest"))
+ }()
+ }
+ wg.Wait()
+ })
+
t.Run("OwnerNameChange", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()