@@ -123,26 +123,26 @@ func TestCopyMove(t *testing.T) {
123123}
124124
125125/*
126- func TestPutWithBufferAppend(t *testing.T) {
127- s := BUF_CONTENT
128- for k := 0; k < 3; k++ {
129- r := strings.NewReader(s)
130- err := up.Put(&PutObjectConfig{
131- Path: REST_FILE_BUF_BUF,
132- Reader: r,
133- Headers: map[string]string{
134- "Content-Length": fmt.Sprint(len(s)),
135- },
136- AppendContent: true,
137- UseMD5: true,
138- })
139- if k != 0 {
140- NotNil(t, err)
141- } else {
142- Nil(t, err)
126+ func TestPutWithBufferAppend(t *testing.T) {
127+ s := BUF_CONTENT
128+ for k := 0; k < 3; k++ {
129+ r := strings.NewReader(s)
130+ err := up.Put(&PutObjectConfig{
131+ Path: REST_FILE_BUF_BUF,
132+ Reader: r,
133+ Headers: map[string]string{
134+ "Content-Length": fmt.Sprint(len(s)),
135+ },
136+ AppendContent: true,
137+ UseMD5: true,
138+ })
139+ if k != 0 {
140+ NotNil(t, err)
141+ } else {
142+ Nil(t, err)
143+ }
143144 }
144145 }
145- }
146146*/
147147func testMultiUpload (t * testing.T , key string , data []byte , partSize int64 , parts []int , completed bool ) * InitMultipartUploadResult {
148148 uploadResult , err := up .InitMultipartUpload (& InitMultipartUploadConfig {
@@ -253,22 +253,24 @@ func TestResumePut(t *testing.T) {
253253 testPoint := & BreakPointConfig {UploadID : result .UploadID , PartSize : result .PartSize ,
254254 FileSize : fileInfo .Size (), FileModTime : fileInfo .ModTime (), LastTime : now }
255255
256- // imitate upload some part and failed after testBreak part
257- for i := 0 ; i <= testBreak ; i ++ {
258- fragFile , err := newFragmentFile ( fd , curSize , DefaultPartSize )
259- Nil ( t , err )
256+ ch := make ( chan * Chunk , 1 )
257+ go GetReadChunk ( fd , fileInfo . Size (), DefaultPartSize , ch )
258+ // initate upload some part and failed after testBreak part
259+ for chunk := range ch {
260260 err = up .UploadPart (result , & UploadPartConfig {
261- Reader : fragFile ,
262- PartSize : DefaultPartSize ,
263- PartID : i ,
261+ Reader : chunk ,
262+ PartSize : int64 ( chunk . Len ()) ,
263+ PartID : chunk . ID () ,
264264 })
265265 Nil (t , err )
266+ if testBreak == chunk .ID () {
267+ break
268+ }
269+ testPoint .PartID = chunk .ID () + 1
270+ curSize += int64 (chunk .Len ())
266271 res , err := up .GetResumeProcess (result .Path )
267272 Nil (t , err )
268- Equal (t , int64 (i + 1 ), res .NextPartID )
269-
270- curSize += DefaultPartSize
271- testPoint .PartID = i + 1
273+ Equal (t , int64 (testPoint .PartID ), res .NextPartID )
272274 resSize += res .NextPartSize
273275 }
274276 Equal (t , curSize , resSize )
@@ -565,28 +567,28 @@ func TestResumeUpload(t *testing.T) {
565567 maxPartID := int ((fileInfo .Size ()+ result .PartSize - 1 )/ result .PartSize - 1 )
566568 now := time .Now ()
567569
568- // imitate break part
570+ // initate break part
569571 testBreak := 5
570-
571- var curSize int64 = 0
572+ ch := make ( chan * Chunk , 1 )
573+ go GetReadChunk ( fd , fileInfo . Size (), DefaultPartSize , ch )
572574 testPoint := & BreakPointConfig {UploadID : result .UploadID }
573- for i := 0 ; i <= testBreak ; i ++ {
574- fragFile , err := newFragmentFile (fd , curSize , DefaultPartSize )
575- Nil (t , err )
575+ for chunk := range ch {
576576 err = up .UploadPart (result , & UploadPartConfig {
577- Reader : fragFile ,
578- PartSize : DefaultPartSize ,
579- PartID : i ,
577+ Reader : chunk ,
578+ PartSize : int64 ( chunk . Len ()) ,
579+ PartID : chunk . ID () ,
580580 })
581581 Nil (t , err )
582- curSize += DefaultPartSize
583- testPoint .PartID = i + 1
582+ testPoint .PartID = chunk .ID () + 1
583+ if testBreak == chunk .ID () {
584+ break
585+ }
584586 }
585587 tests := []struct {
586588 BreakPointConfig
587589 expected BreakPointConfig
588590 }{
589- // imitate failed in upload part stage
591+ // initate failed in upload part stage
590592 {
591593 BreakPointConfig {
592594 UploadID : result .UploadID , PartID : testBreak + 1 , PartSize : result .PartSize ,
@@ -610,7 +612,7 @@ func TestResumeUpload(t *testing.T) {
610612 },
611613 }
612614
613- // imitate breakPoint
615+ // initate breakPoint
614616 for _ , test := range tests {
615617 point := test .BreakPointConfig
616618 // resume upload
@@ -673,33 +675,26 @@ func TestGetDisorderResumeProcess(t *testing.T) {
673675 })
674676 Nil (t , err )
675677
676- // imitate upload part failed
677- testBreak := 10
678+ // initate upload part failed
678679 var curSize int64 = 0
679680 fileSize := fileInfo .Size ()
680681
681- // imitate upload some part and failed after testBreak part
682- for i := 0 ; i <= testBreak ; i ++ {
683- fragFile , err := newFragmentFile (fd , curSize , DefaultPartSize )
684- Nil (t , err )
685- partSize := int64 (DefaultPartSize )
686- res := fileSize - curSize
687- if res < DefaultPartSize {
688- partSize = res
689- }
682+ ch := make (chan * Chunk , 1 )
683+ go GetReadChunk (fd , fileSize , DefaultPartSize , ch )
684+ // initate upload some part and failed after testBreak part
685+ for chunk := range ch {
690686 err = up .UploadPart (result , & UploadPartConfig {
691- Reader : fragFile ,
692- PartSize : partSize ,
693- PartID : i ,
687+ Reader : chunk ,
688+ PartSize : int64 ( chunk . Len ()) ,
689+ PartID : chunk . ID () ,
694690 })
695691 Nil (t , err )
696-
697- curSize += partSize
692+ curSize += int64 (chunk .Len ())
698693 }
699694 resp , err := up .GetResumeProcess (result .Path )
700695
701696 Nil (t , err )
702- Equal (t , testBreak + 1 , len (resp .Parts ))
697+ Equal (t , 11 , len (resp .Parts ))
703698 Equal (t , curSize , fileSize )
704699 err = up .CompleteMultipartUpload (result , & CompleteMultipartUploadConfig {})
705700 Nil (t , err )
0 commit comments