|
|
@ -38,7 +38,7 @@ func Test_UploaderSingleUpload(t *testing.T) {
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
wg.Add(1)
|
|
|
|
wg.Add(1)
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader) error {
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader, sum []byte) error {
|
|
|
|
defer wg.Done()
|
|
|
|
defer wg.Done()
|
|
|
|
uploadedData, err = io.ReadAll(reader)
|
|
|
|
uploadedData, err = io.ReadAll(reader)
|
|
|
|
return err
|
|
|
|
return err
|
|
|
@ -68,7 +68,7 @@ func Test_UploaderSingleUploadCompress(t *testing.T) {
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
wg.Add(1)
|
|
|
|
wg.Add(1)
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader) error {
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader, sum []byte) error {
|
|
|
|
defer wg.Done()
|
|
|
|
defer wg.Done()
|
|
|
|
|
|
|
|
|
|
|
|
// Wrap a gzip reader about the reader, to ensure the data is compressed.
|
|
|
|
// Wrap a gzip reader about the reader, to ensure the data is compressed.
|
|
|
@ -108,7 +108,7 @@ func Test_UploaderDoubleUpload(t *testing.T) {
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
wg.Add(2)
|
|
|
|
wg.Add(2)
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader) error {
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader, sum []byte) error {
|
|
|
|
defer wg.Done()
|
|
|
|
defer wg.Done()
|
|
|
|
uploadedData = nil // Wipe out any previous state.
|
|
|
|
uploadedData = nil // Wipe out any previous state.
|
|
|
|
uploadedData, err = io.ReadAll(reader)
|
|
|
|
uploadedData, err = io.ReadAll(reader)
|
|
|
@ -138,7 +138,7 @@ func Test_UploaderFailThenOK(t *testing.T) {
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
wg.Add(2)
|
|
|
|
wg.Add(2)
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader) error {
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader, sum []byte) error {
|
|
|
|
defer wg.Done()
|
|
|
|
defer wg.Done()
|
|
|
|
if uploadCount == 0 {
|
|
|
|
if uploadCount == 0 {
|
|
|
|
uploadCount++
|
|
|
|
uploadCount++
|
|
|
@ -172,7 +172,7 @@ func Test_UploaderOKThenFail(t *testing.T) {
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
wg.Add(2)
|
|
|
|
wg.Add(2)
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader) error {
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader, sum []byte) error {
|
|
|
|
defer wg.Done()
|
|
|
|
defer wg.Done()
|
|
|
|
|
|
|
|
|
|
|
|
if uploadCount == 1 {
|
|
|
|
if uploadCount == 1 {
|
|
|
@ -203,7 +203,7 @@ func Test_UploaderContextCancellation(t *testing.T) {
|
|
|
|
var uploadCount int32
|
|
|
|
var uploadCount int32
|
|
|
|
|
|
|
|
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader) error {
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader, sum []byte) error {
|
|
|
|
atomic.AddInt32(&uploadCount, 1)
|
|
|
|
atomic.AddInt32(&uploadCount, 1)
|
|
|
|
return nil
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
},
|
|
|
@ -246,7 +246,7 @@ func Test_UploaderEnabledTrue(t *testing.T) {
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
wg.Add(1)
|
|
|
|
wg.Add(1)
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
sc := &mockStorageClient{
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader) error {
|
|
|
|
uploadFn: func(ctx context.Context, reader io.Reader, sum []byte) error {
|
|
|
|
defer wg.Done()
|
|
|
|
defer wg.Done()
|
|
|
|
uploadedData, err = io.ReadAll(reader)
|
|
|
|
uploadedData, err = io.ReadAll(reader)
|
|
|
|
return err
|
|
|
|
return err
|
|
|
@ -287,12 +287,12 @@ func Test_UploaderStats(t *testing.T) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
type mockStorageClient struct {
|
|
|
|
type mockStorageClient struct {
|
|
|
|
uploadFn func(ctx context.Context, reader io.Reader) error
|
|
|
|
uploadFn func(ctx context.Context, reader io.Reader, sum []byte) error
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (mc *mockStorageClient) Upload(ctx context.Context, reader io.Reader) error {
|
|
|
|
func (mc *mockStorageClient) Upload(ctx context.Context, reader io.Reader, sum []byte) error {
|
|
|
|
if mc.uploadFn != nil {
|
|
|
|
if mc.uploadFn != nil {
|
|
|
|
return mc.uploadFn(ctx, reader)
|
|
|
|
return mc.uploadFn(ctx, reader, sum)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|