(c *minio.Client)
| 9468 | } |
| 9469 | |
| 9470 | func testComposeObjectErrorCasesWrapper(c *minio.Client) { |
| 9471 | // initialize logging params |
| 9472 | startTime := time.Now() |
| 9473 | testName := getFuncName() |
| 9474 | function := "ComposeObject(destination, sourceList)" |
| 9475 | args := map[string]interface{}{} |
| 9476 | |
| 9477 | // Generate a new random bucket name. |
| 9478 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-") |
| 9479 | |
| 9480 | // Make a new bucket in 'us-east-1' (source bucket). |
| 9481 | err := c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 9482 | if err != nil { |
| 9483 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 9484 | return |
| 9485 | } |
| 9486 | |
| 9487 | defer cleanupBucket(bucketName, c) |
| 9488 | |
| 9489 | // Test that more than 10K source objects cannot be |
| 9490 | // concatenated. |
| 9491 | srcArr := [10001]minio.CopySrcOptions{} |
| 9492 | srcSlice := srcArr[:] |
| 9493 | dst := minio.CopyDestOptions{ |
| 9494 | Bucket: bucketName, |
| 9495 | Object: "object", |
| 9496 | } |
| 9497 | |
| 9498 | args["destination"] = dst |
| 9499 | // Just explain about srcArr in args["sourceList"] |
| 9500 | // to stop having 10,001 null headers logged |
| 9501 | args["sourceList"] = "source array of 10,001 elements" |
| 9502 | if _, err := c.ComposeObject(context.Background(), dst, srcSlice...); err == nil { |
| 9503 | logError(testName, function, args, startTime, "", "Expected error in ComposeObject", err) |
| 9504 | return |
| 9505 | } else if err.Error() != "There must be as least one and up to 10000 source objects." { |
| 9506 | logError(testName, function, args, startTime, "", "Got unexpected error", err) |
| 9507 | return |
| 9508 | } |
| 9509 | |
| 9510 | // Create a source with invalid offset spec and check that |
| 9511 | // error is returned: |
| 9512 | // 1. Create the source object. |
| 9513 | const badSrcSize = 5 * 1024 * 1024 |
| 9514 | buf := bytes.Repeat([]byte("1"), badSrcSize) |
| 9515 | _, err = c.PutObject(context.Background(), bucketName, "badObject", bytes.NewReader(buf), int64(len(buf)), minio.PutObjectOptions{}) |
| 9516 | if err != nil { |
| 9517 | logError(testName, function, args, startTime, "", "PutObject failed", err) |
| 9518 | return |
| 9519 | } |
| 9520 | // 2. Set invalid range spec on the object (going beyond |
| 9521 | // object size) |
| 9522 | badSrc := minio.CopySrcOptions{ |
| 9523 | Bucket: bucketName, |
| 9524 | Object: "badObject", |
| 9525 | MatchRange: true, |
| 9526 | Start: 1, |
| 9527 | End: badSrcSize, |
no test coverage detected