Reproduces issue https://github.com/minio/minio-go/issues/1137
()
| 5563 | |
| 5564 | // Reproduces issue https://github.com/minio/minio-go/issues/1137 |
| 5565 | func testGetObjectReadAtWhenEOFWasReached() { |
| 5566 | // initialize logging params |
| 5567 | startTime := time.Now() |
| 5568 | testName := getFuncName() |
| 5569 | function := "GetObject(bucketName, objectName)" |
| 5570 | args := map[string]interface{}{} |
| 5571 | |
| 5572 | c, err := NewClient(ClientConfig{}) |
| 5573 | if err != nil { |
| 5574 | logError(testName, function, args, startTime, "", "MinIO client object creation failed", err) |
| 5575 | return |
| 5576 | } |
| 5577 | |
| 5578 | // Generate a new random bucket name. |
| 5579 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-") |
| 5580 | args["bucketName"] = bucketName |
| 5581 | |
| 5582 | // Make a new bucket. |
| 5583 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 5584 | if err != nil { |
| 5585 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 5586 | return |
| 5587 | } |
| 5588 | |
| 5589 | defer cleanupBucket(bucketName, c) |
| 5590 | |
| 5591 | // Generate 33K of data. |
| 5592 | bufSize := dataFileMap["datafile-33-kB"] |
| 5593 | reader := getDataReader("datafile-33-kB") |
| 5594 | defer reader.Close() |
| 5595 | |
| 5596 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 5597 | args["objectName"] = objectName |
| 5598 | |
| 5599 | buf, err := io.ReadAll(reader) |
| 5600 | if err != nil { |
| 5601 | logError(testName, function, args, startTime, "", "ReadAll failed", err) |
| 5602 | return |
| 5603 | } |
| 5604 | |
| 5605 | // Save the data |
| 5606 | _, err = c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), minio.PutObjectOptions{ContentType: "binary/octet-stream"}) |
| 5607 | if err != nil { |
| 5608 | logError(testName, function, args, startTime, "", "PutObject failed", err) |
| 5609 | return |
| 5610 | } |
| 5611 | |
| 5612 | // read the data back |
| 5613 | r, err := c.GetObject(context.Background(), bucketName, objectName, minio.GetObjectOptions{}) |
| 5614 | if err != nil { |
| 5615 | logError(testName, function, args, startTime, "", "PutObject failed", err) |
| 5616 | return |
| 5617 | } |
| 5618 | |
| 5619 | // read directly |
| 5620 | buf1 := make([]byte, len(buf)) |
| 5621 | buf2 := make([]byte, 512) |
| 5622 |
no test coverage detected