code.gitea.io/gitea@v1.19.3/modules/git/blob_test.go (about) 1 // Copyright 2015 The Gogs Authors. All rights reserved. 2 // Copyright 2019 The Gitea Authors. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 5 package git 6 7 import ( 8 "io" 9 "path/filepath" 10 "testing" 11 12 "github.com/stretchr/testify/assert" 13 "github.com/stretchr/testify/require" 14 ) 15 16 func TestBlob_Data(t *testing.T) { 17 output := "file2\n" 18 bareRepo1Path := filepath.Join(testReposDir, "repo1_bare") 19 repo, err := openRepositoryWithDefaultContext(bareRepo1Path) 20 if !assert.NoError(t, err) { 21 t.Fatal() 22 } 23 defer repo.Close() 24 25 testBlob, err := repo.GetBlob("6c493ff740f9380390d5c9ddef4af18697ac9375") 26 assert.NoError(t, err) 27 28 r, err := testBlob.DataAsync() 29 assert.NoError(t, err) 30 require.NotNil(t, r) 31 32 data, err := io.ReadAll(r) 33 assert.NoError(t, r.Close()) 34 35 assert.NoError(t, err) 36 assert.Equal(t, output, string(data)) 37 } 38 39 func Benchmark_Blob_Data(b *testing.B) { 40 bareRepo1Path := filepath.Join(testReposDir, "repo1_bare") 41 repo, err := openRepositoryWithDefaultContext(bareRepo1Path) 42 if err != nil { 43 b.Fatal(err) 44 } 45 defer repo.Close() 46 47 testBlob, err := repo.GetBlob("6c493ff740f9380390d5c9ddef4af18697ac9375") 48 if err != nil { 49 b.Fatal(err) 50 } 51 52 for i := 0; i < b.N; i++ { 53 r, err := testBlob.DataAsync() 54 if err != nil { 55 b.Fatal(err) 56 } 57 io.ReadAll(r) 58 _ = r.Close() 59 } 60 }