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

Function testComposeObjectErrorCasesWrapper

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

Source from the content-addressed store, hash-verified

9468}
9469
9470func 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,

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