(c *minio.Client)
| 9364 | } |
| 9365 | |
| 9366 | func 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, |
no test coverage detected