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  }