aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/filer_multipart_test.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-03-23 01:05:14 -0700
committerchrislu <chris.lu@gmail.com>2022-03-23 01:05:14 -0700
commite48764be75d285fe7edfbd88ca7ff419580c48d1 (patch)
tree9a4c5553a1179de27983a910d1bc47b4eec4c9a5 /weed/s3api/filer_multipart_test.go
parent18ae8943ef599a1cbadfad9598653dc28db01d1f (diff)
downloadseaweedfs-e48764be75d285fe7edfbd88ca7ff419580c48d1.tar.xz
seaweedfs-e48764be75d285fe7edfbd88ca7ff419580c48d1.zip
s3: multipart upload verifies uploaded parts
Diffstat (limited to 'weed/s3api/filer_multipart_test.go')
-rw-r--r--weed/s3api/filer_multipart_test.go83
1 files changed, 83 insertions, 0 deletions
diff --git a/weed/s3api/filer_multipart_test.go b/weed/s3api/filer_multipart_test.go
index 9e1d2307b..52425b5b2 100644
--- a/weed/s3api/filer_multipart_test.go
+++ b/weed/s3api/filer_multipart_test.go
@@ -4,6 +4,7 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/s3"
"github.com/chrislusf/seaweedfs/weed/s3api/s3err"
+ "github.com/stretchr/testify/assert"
"testing"
"time"
)
@@ -48,3 +49,85 @@ func TestListPartsResult(t *testing.T) {
}
}
+
+func Test_findByPartNumber(t *testing.T) {
+ type args struct {
+ fileName string
+ parts []CompletedPart
+ }
+
+ parts := []CompletedPart{
+ CompletedPart{
+ ETag: "xxx",
+ PartNumber: 1,
+ },
+ CompletedPart{
+ ETag: "yyy",
+ PartNumber: 3,
+ },
+ CompletedPart{
+ ETag: "zzz",
+ PartNumber: 5,
+ },
+ }
+
+ tests := []struct {
+ name string
+ args args
+ wantEtag string
+ wantFound bool
+ }{
+ {
+ "first",
+ args{
+ "0001.part",
+ parts,
+ },
+ "xxx",
+ true,
+ },
+ {
+ "second",
+ args{
+ "0002.part",
+ parts,
+ },
+ "",
+ false,
+ },
+ {
+ "third",
+ args{
+ "0003.part",
+ parts,
+ },
+ "yyy",
+ true,
+ },
+ {
+ "fourth",
+ args{
+ "0004.part",
+ parts,
+ },
+ "",
+ false,
+ },
+ {
+ "fifth",
+ args{
+ "0005.part",
+ parts,
+ },
+ "zzz",
+ true,
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ gotEtag, gotFound := findByPartNumber(tt.args.fileName, tt.args.parts)
+ assert.Equalf(t, tt.wantEtag, gotEtag, "findByPartNumber(%v, %v)", tt.args.fileName, tt.args.parts)
+ assert.Equalf(t, tt.wantFound, gotFound, "findByPartNumber(%v, %v)", tt.args.fileName, tt.args.parts)
+ })
+ }
+}