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

Function TestGetObjectCore

core_test.go:43–236  ·  core_test.go::TestGetObjectCore

Tests for Core GetObject() function.

(t *testing.T)

Source from the content-addressed store, hash-verified

41
42// Tests for Core GetObject() function.
43func TestGetObjectCore(t *testing.T) {
44 if os.Getenv(serverEndpoint) == "" {
45 t.Skip("SERVER_ENDPOINT not set")
46 }
47 if testing.Short() {
48 t.Skip("skipping functional tests for the short runs")
49 }
50
51 // Instantiate new minio core client object.
52 c, err := NewCore(
53 os.Getenv(serverEndpoint),
54 &Options{
55 Creds: credentials.NewStaticV4(os.Getenv(accessKey), os.Getenv(secretKey), ""),
56 Secure: mustParseBool(os.Getenv(enableSecurity)),
57 })
58 if err != nil {
59 t.Fatal("Error:", err)
60 }
61
62 // Enable tracing, write to stderr.
63 // c.TraceOn(os.Stderr)
64
65 // Set user agent.
66 c.SetAppInfo("MinIO-go-FunctionalTest", "0.1.0")
67
68 // Generate a new random bucket name.
69 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test")
70
71 // Make a new bucket.
72 err = c.MakeBucket(context.Background(), bucketName, MakeBucketOptions{Region: "us-east-1"})
73 if err != nil {
74 t.Fatal("Error:", err, bucketName)
75 }
76
77 // Generate data more than 32K
78 buf := bytes.Repeat([]byte("3"), rand.Intn(1<<20)+32*1024)
79
80 // Save the data
81 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
82 _, err = c.Client.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), PutObjectOptions{
83 ContentType: "binary/octet-stream",
84 })
85 if err != nil {
86 t.Fatal("Error:", err, bucketName, objectName)
87 }
88
89 st, err := c.StatObject(context.Background(), bucketName, objectName, StatObjectOptions{})
90 if err != nil {
91 t.Fatal("Stat error:", err, bucketName, objectName)
92 }
93 if st.Size != int64(len(buf)) {
94 t.Fatalf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size)
95 }
96
97 offset := int64(2048)
98
99 // read directly
100 buf1 := make([]byte, 512)

Callers

nothing calls this directly

Calls 15

SetRangeMethod · 0.95
GetObjectMethod · 0.95
SetMatchETagMethod · 0.95
SetMatchETagExceptMethod · 0.95
NewStaticV4Function · 0.92
NewCoreFunction · 0.85
ToErrorResponseFunction · 0.85
SetAppInfoMethod · 0.80
MakeBucketMethod · 0.80
StatObjectMethod · 0.80
EqualMethod · 0.80
RemoveObjectMethod · 0.80

Tested by

no test coverage detected