You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: z4_e2e_client_concurrent_test.go
    path of file: ./repos/plik/plik
    
    the code of the file until where you have to start completion: package plik

import (
	"bytes"
	"fmt"
	"io"
	"sync"
	"testing"

	"github.com/stretchr/testify/require"

	"github.com/root-gg/plik/server/common"
)

func downloadSequence(file *File, delete bool) (err error) {
	url, err := file.upload.GetURL()
	if err != nil || url == nil {
		return fmt.Errorf("upload url error : %s", err)
	}

	url, err = file.GetURL()
	if err != nil || url == nil {
		return fmt.Errorf("file url error : %s", err)
	}

	reader, err := file.Download()
	if err != nil {
		return fmt.Errorf("download error : %s", err)
	}
	defer func() { _
    
func TestMultipleUploadsInParallel(t *testing.T) {
	ps, pc := newPlikServerAndClient()
	defer shutdown(ps)

	err := start(ps)
	require.NoError(t, err, "unable to start plik server")

	count := 10
	errors := make(chan error, count)
	var wg sync.WaitGroup
	for i := 1; i <= count; i++ {
		wg.Add(1)
		go func(i int) {
			defer wg.Done()
			upload := pc.NewUpload()
			filename := fmt.Sprintf("file_%d", i)
			data := fmt.Sprintf("data data data %s", filename)
			file := upload.AddFileFromReader(filename, NewSlowReaderRandom(bytes.NewBufferString(data)))

			err := upload.Upload()
			if err != nil {
				errors <- fmt.Errorf("upload error : %s", err)
				return
			}

			errors <- downloadSequence(file, true)
		}(i)
	}

	wg.Wait()
	err = drainErrors(errors)
	require.NoError(t, err, "an error occurred")
}