Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.3 KiB
61 lines
1.3 KiB
// Copyright 2015 The Gogs Authors. All rights reserved. |
|
// Copyright 2019 The Gitea Authors. All rights reserved. |
|
// Use of this source code is governed by a MIT-style |
|
// license that can be found in the LICENSE file. |
|
|
|
package git |
|
|
|
import ( |
|
"io" |
|
"path/filepath" |
|
"testing" |
|
|
|
"github.com/stretchr/testify/assert" |
|
"github.com/stretchr/testify/require" |
|
) |
|
|
|
func TestBlob_Data(t *testing.T) { |
|
output := "file2\n" |
|
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare") |
|
repo, err := OpenRepository(bareRepo1Path) |
|
if !assert.NoError(t, err) { |
|
t.Fatal() |
|
} |
|
defer repo.Close() |
|
|
|
testBlob, err := repo.GetBlob("6c493ff740f9380390d5c9ddef4af18697ac9375") |
|
assert.NoError(t, err) |
|
|
|
r, err := testBlob.DataAsync() |
|
assert.NoError(t, err) |
|
require.NotNil(t, r) |
|
|
|
data, err := io.ReadAll(r) |
|
assert.NoError(t, r.Close()) |
|
|
|
assert.NoError(t, err) |
|
assert.Equal(t, output, string(data)) |
|
} |
|
|
|
func Benchmark_Blob_Data(b *testing.B) { |
|
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare") |
|
repo, err := OpenRepository(bareRepo1Path) |
|
if err != nil { |
|
b.Fatal(err) |
|
} |
|
defer repo.Close() |
|
|
|
testBlob, err := repo.GetBlob("6c493ff740f9380390d5c9ddef4af18697ac9375") |
|
if err != nil { |
|
b.Fatal(err) |
|
} |
|
|
|
for i := 0; i < b.N; i++ { |
|
r, err := testBlob.DataAsync() |
|
if err != nil { |
|
b.Fatal(err) |
|
} |
|
io.ReadAll(r) |
|
_ = r.Close() |
|
} |
|
}
|
|
|