MCPcopy
hub / github.com/minio/minio-go / testComposeObjectErrorCasesWrapper

Function testComposeObjectErrorCasesWrapper

functional_tests.go:9366–9436  ·  view source on GitHub ↗
(c *minio.Client)

Source from the content-addressed store, hash-verified

9364}
9365
9366func testComposeObjectErrorCasesWrapper(c *minio.Client) {
9367 // initialize logging params
9368 startTime := time.Now()
9369 testName := getFuncName()
9370 function := "ComposeObject(destination, sourceList)"
9371 args := map[string]interface{}{}
9372
9373 // Generate a new random bucket name.
9374 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-")
9375
9376 // Make a new bucket in 'us-east-1' (source bucket).
9377 err := c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
9378 if err != nil {
9379 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
9380 return
9381 }
9382
9383 defer cleanupBucket(bucketName, c)
9384
9385 // Test that more than 10K source objects cannot be
9386 // concatenated.
9387 srcArr := [10001]minio.CopySrcOptions{}
9388 srcSlice := srcArr[:]
9389 dst := minio.CopyDestOptions{
9390 Bucket: bucketName,
9391 Object: "object",
9392 }
9393
9394 args["destination"] = dst
9395 // Just explain about srcArr in args["sourceList"]
9396 // to stop having 10,001 null headers logged
9397 args["sourceList"] = "source array of 10,001 elements"
9398 if _, err := c.ComposeObject(context.Background(), dst, srcSlice...); err == nil {
9399 logError(testName, function, args, startTime, "", "Expected error in ComposeObject", err)
9400 return
9401 } else if err.Error() != "There must be as least one and up to 10000 source objects." {
9402 logError(testName, function, args, startTime, "", "Got unexpected error", err)
9403 return
9404 }
9405
9406 // Create a source with invalid offset spec and check that
9407 // error is returned:
9408 // 1. Create the source object.
9409 const badSrcSize = 5 * 1024 * 1024
9410 buf := bytes.Repeat([]byte("1"), badSrcSize)
9411 _, err = c.PutObject(context.Background(), bucketName, "badObject", bytes.NewReader(buf), int64(len(buf)), minio.PutObjectOptions{})
9412 if err != nil {
9413 logError(testName, function, args, startTime, "", "PutObject failed", err)
9414 return
9415 }
9416 // 2. Set invalid range spec on the object (going beyond
9417 // object size)
9418 badSrc := minio.CopySrcOptions{
9419 Bucket: bucketName,
9420 Object: "badObject",
9421 MatchRange: true,
9422 Start: 1,
9423 End: badSrcSize,

Callers 2

Calls 10

getFuncNameFunction · 0.85
logErrorFunction · 0.85
cleanupBucketFunction · 0.85
logSuccessFunction · 0.85
MakeBucketMethod · 0.80
ComposeObjectMethod · 0.80
randStringFunction · 0.70
ErrorMethod · 0.45
PutObjectMethod · 0.45
ContainsMethod · 0.45

Tested by

no test coverage detected