Skip to content

Commit df947ef

Browse files
committed
add test to ensure that concurrent file uploads don't result in an error
Signed-off-by: Callum Styan <callumstyan@gmail.com>
1 parent a009ba7 commit df947ef

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

coderd/files_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"bytes"
66
"context"
77
"net/http"
8+
"sync"
89
"testing"
910

1011
"github.com/google/uuid"
@@ -69,6 +70,34 @@ func TestPostFiles(t *testing.T) {
6970
_, err = client.Upload(ctx, codersdk.ContentTypeTar, bytes.NewReader(data))
7071
require.NoError(t, err)
7172
})
73+
t.Run("InsertConcurrent", func(t *testing.T) {
74+
t.Parallel()
75+
client := coderdtest.New(t, nil)
76+
_ = coderdtest.CreateFirstUser(t, client)
77+
78+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
79+
defer cancel()
80+
81+
var wg sync.WaitGroup
82+
var end sync.WaitGroup
83+
wg.Add(1)
84+
end.Add(3)
85+
for range 3 {
86+
go func() {
87+
wg.Wait()
88+
data := make([]byte, 1024)
89+
_, err := client.Upload(ctx, codersdk.ContentTypeTar, bytes.NewReader(data))
90+
end.Done()
91+
require.NoError(t, err)
92+
}()
93+
94+
}
95+
wg.Done()
96+
end.Wait()
97+
98+
// _, err = client.Upload(ctx, codersdk.ContentTypeTar, bytes.NewReader(data))
99+
// require.NoError(t, err)
100+
})
72101
}
73102

74103
func TestDownload(t *testing.T) {

0 commit comments

Comments
 (0)