summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/minio/minio-go/api_functional_v4_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/minio/minio-go/api_functional_v4_test.go')
-rw-r--r--vendor/github.com/minio/minio-go/api_functional_v4_test.go163
1 files changed, 45 insertions, 118 deletions
diff --git a/vendor/github.com/minio/minio-go/api_functional_v4_test.go b/vendor/github.com/minio/minio-go/api_functional_v4_test.go
index a553ea2cd..b5e6d128a 100644
--- a/vendor/github.com/minio/minio-go/api_functional_v4_test.go
+++ b/vendor/github.com/minio/minio-go/api_functional_v4_test.go
@@ -18,6 +18,7 @@ package minio
import (
"bytes"
+ crand "crypto/rand"
"encoding/hex"
"errors"
"fmt"
@@ -200,10 +201,14 @@ func TestPutObjectReadAt(t *testing.T) {
}
// Generate data using 4 parts so that all 3 'workers' are utilized and a part is leftover.
- // Use different data for each part for multipart tests to ensure part order at the end.
- var buf []byte
- for i := 0; i < 4; i++ {
- buf = append(buf, bytes.Repeat([]byte(string('a'+i)), minPartSize)...)
+ buf := make([]byte, minPartSize*4)
+ // Use crand.Reader for multipart tests to ensure part order at the end.
+ size, err := io.ReadFull(crand.Reader, buf)
+ if err != nil {
+ t.Fatal("Error:", err)
+ }
+ if size != minPartSize*4 {
+ t.Fatalf("Error: number of bytes does not match, want %v, got %v\n", minPartSize*4, size)
}
// Save the data
@@ -290,10 +295,14 @@ func TestPutObjectWithMetadata(t *testing.T) {
}
// Generate data using 2 parts
- // Use different data in each part for multipart tests to ensure part order at the end.
- var buf []byte
- for i := 0; i < 2; i++ {
- buf = append(buf, bytes.Repeat([]byte(string('a'+i)), minPartSize)...)
+ buf := make([]byte, minPartSize*2)
+ // Use crand.Reader for multipart tests to ensure part order at the end.
+ size, err := io.ReadFull(crand.Reader, buf)
+ if err != nil {
+ t.Fatal("Error:", err)
+ }
+ if size != minPartSize*2 {
+ t.Fatalf("Error: number of bytes does not match, want %v, got %v\n", minPartSize*2, size)
}
// Save the data
@@ -847,6 +856,7 @@ func TestResumablePutObject(t *testing.T) {
t.Fatal("Error:", err)
}
r := bytes.NewReader(bytes.Repeat([]byte("b"), minPartSize*2))
+ // Copy 11MiB worth of random data.
n, err := io.CopyN(file, r, minPartSize*2)
if err != nil {
t.Fatal("Error:", err)
@@ -962,13 +972,16 @@ func TestResumableFPutObject(t *testing.T) {
}
// Upload 4 parts to use all 3 multipart 'workers' and have an extra part.
- // Use different data in each part for multipart tests to ensure parts are uploaded in correct order.
- var buffer []byte
- for i := 0; i < 4; i++ {
- buffer = append(buffer, bytes.Repeat([]byte(string('a'+i)), minPartSize)...)
+ buffer := make([]byte, minPartSize*4)
+ // Use crand.Reader for multipart tests to ensure parts are uploaded in correct order.
+ size, err := io.ReadFull(crand.Reader, buffer)
+ if err != nil {
+ t.Fatal("Error:", err)
}
-
- size, err := file.Write(buffer)
+ if size != minPartSize*4 {
+ t.Fatalf("Error: number of bytes does not match, want %v, got %v\n", minPartSize*4, size)
+ }
+ size, err = file.Write(buffer)
if err != nil {
t.Fatal("Error:", err)
}
@@ -1050,12 +1063,16 @@ func TestFPutObjectMultipart(t *testing.T) {
}
// Upload 4 parts to utilize all 3 'workers' in multipart and still have a part to upload.
- var buffer []byte
- for i := 0; i < 4; i++ {
- buffer = append(buffer, bytes.Repeat([]byte(string('a'+i)), minPartSize)...)
- }
+ buffer := make([]byte, minPartSize*4)
- size, err := file.Write(buffer)
+ size, err := io.ReadFull(crand.Reader, buffer)
+ if err != nil {
+ t.Fatal("Error:", err)
+ }
+ if size != minPartSize*4 {
+ t.Fatalf("Error: number of bytes does not match, want %v, got %v\n", minPartSize*4, size)
+ }
+ size, err = file.Write(buffer)
if err != nil {
t.Fatal("Error:", err)
}
@@ -1151,14 +1168,18 @@ func TestFPutObject(t *testing.T) {
}
// Upload 4 parts worth of data to use all 3 of multiparts 'workers' and have an extra part.
- // Use different data in part for multipart tests to check parts are uploaded in correct order.
- var buffer []byte
- for i := 0; i < 4; i++ {
- buffer = append(buffer, bytes.Repeat([]byte(string('a'+i)), minPartSize)...)
+ buffer := make([]byte, minPartSize*4)
+ // Use random data for multipart tests to check parts are uploaded in correct order.
+ size, err := io.ReadFull(crand.Reader, buffer)
+ if err != nil {
+ t.Fatal("Error:", err)
+ }
+ if size != minPartSize*4 {
+ t.Fatalf("Error: number of bytes does not match, want %v, got %v\n", minPartSize*4, size)
}
// Write the data to the file.
- size, err := file.Write(buffer)
+ size, err = file.Write(buffer)
if err != nil {
t.Fatal("Error:", err)
}
@@ -2477,97 +2498,3 @@ func TestGetObjectObjectModified(t *testing.T) {
t.Errorf("Expected ReadAt to fail with error %s but received %s", s3ErrorResponseMap["PreconditionFailed"], err.Error())
}
}
-
-// Test validates putObject to upload a file seeked at a given offset.
-func TestPutObjectUploadSeekedObject(t *testing.T) {
- if testing.Short() {
- t.Skip("skipping functional tests for the short runs")
- }
-
- // Instantiate new minio client object.
- c, err := NewV4(
- os.Getenv("S3_ADDRESS"),
- os.Getenv("ACCESS_KEY"),
- os.Getenv("SECRET_KEY"),
- mustParseBool(os.Getenv("S3_SECURE")),
- )
- if err != nil {
- t.Fatal("Error:", err)
- }
-
- // Enable tracing, write to stderr.
- // c.TraceOn(os.Stderr)
-
- // Set user agent.
- c.SetAppInfo("Minio-go-FunctionalTest", "0.1.0")
-
- // Make a new bucket.
- bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test")
- err = c.MakeBucket(bucketName, "us-east-1")
- if err != nil {
- t.Fatal("Error:", err, bucketName)
- }
- defer c.RemoveBucket(bucketName)
-
- tempfile, err := ioutil.TempFile("", "minio-go-upload-test-")
- if err != nil {
- t.Fatal("Error:", err)
- }
-
- var length = 120000
- data := bytes.Repeat([]byte("1"), length)
-
- if _, err = tempfile.Write(data); err != nil {
- t.Fatal("Error:", err)
- }
-
- objectName := fmt.Sprintf("test-file-%v", rand.Uint32())
-
- offset := length / 2
- if _, err := tempfile.Seek(int64(offset), 0); err != nil {
- t.Fatal("Error:", err)
- }
-
- n, err := c.PutObject(bucketName, objectName, tempfile, "binary/octet-stream")
- if err != nil {
- t.Fatal("Error:", err)
- }
- if n != int64(length-offset) {
- t.Fatalf("Invalid length returned, want %v, got %v", int64(length-offset), n)
- }
- tempfile.Close()
- if err = os.Remove(tempfile.Name()); err != nil {
- t.Fatal("Error:", err)
- }
-
- length = int(n)
-
- obj, err := c.GetObject(bucketName, objectName)
- if err != nil {
- t.Fatal("Error:", err)
- }
-
- n, err = obj.Seek(int64(offset), 0)
- if err != nil {
- t.Fatal("Error:", err)
- }
- if n != int64(offset) {
- t.Fatalf("Invalid offset returned, want %v, got %v", int64(offset), n)
- }
-
- n, err = c.PutObject(bucketName, objectName+"getobject", obj, "binary/octet-stream")
- if err != nil {
- t.Fatal("Error:", err)
- }
- if n != int64(length-offset) {
- t.Fatalf("Invalid length returned, want %v, got %v", int64(length-offset), n)
- }
-
- if err = c.RemoveObject(bucketName, objectName); err != nil {
- t.Fatal("Error:", err)
- }
-
- if err = c.RemoveObject(bucketName, objectName+"getobject"); err != nil {
- t.Fatal("Error:", err)
- }
-}