mirror of
https://github.com/go-gitea/gitea.git
synced 2026-08-01 21:04:20 +00:00
b06002f449
1. simplify "StorageRepo" code 2. simplify git.OpenRepository code 3. by the way, clean up some unused files in git test fixtures.
81 lines
2.3 KiB
Go
81 lines
2.3 KiB
Go
// Copyright 2024 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package git
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestGrepSearch(t *testing.T) {
|
|
repo, err := OpenRepositoryLocal(filepath.Join(testReposDir, "language_stats_repo"))
|
|
assert.NoError(t, err)
|
|
defer repo.Close()
|
|
|
|
res, err := GrepSearch(t.Context(), repo, "void", GrepOptions{})
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, []*GrepResult{
|
|
{
|
|
Filename: "java-hello/main.java",
|
|
LineNumbers: []int{3},
|
|
LineCodes: []string{" public static void main(String[] args)"},
|
|
},
|
|
{
|
|
Filename: "main.vendor.java",
|
|
LineNumbers: []int{3},
|
|
LineCodes: []string{" public static void main(String[] args)"},
|
|
},
|
|
}, res)
|
|
|
|
res, err = GrepSearch(t.Context(), repo, "void", GrepOptions{PathspecList: []string{":(glob)java-hello/*"}})
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, []*GrepResult{
|
|
{
|
|
Filename: "java-hello/main.java",
|
|
LineNumbers: []int{3},
|
|
LineCodes: []string{" public static void main(String[] args)"},
|
|
},
|
|
}, res)
|
|
|
|
res, err = GrepSearch(t.Context(), repo, "void", GrepOptions{PathspecList: []string{":(glob,exclude)java-hello/*"}})
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, []*GrepResult{
|
|
{
|
|
Filename: "main.vendor.java",
|
|
LineNumbers: []int{3},
|
|
LineCodes: []string{" public static void main(String[] args)"},
|
|
},
|
|
}, res)
|
|
|
|
res, err = GrepSearch(t.Context(), repo, "void", GrepOptions{MaxResultLimit: 1})
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, []*GrepResult{
|
|
{
|
|
Filename: "java-hello/main.java",
|
|
LineNumbers: []int{3},
|
|
LineCodes: []string{" public static void main(String[] args)"},
|
|
},
|
|
}, res)
|
|
|
|
res, err = GrepSearch(t.Context(), repo, "void", GrepOptions{MaxResultLimit: 1, MaxLineLength: 39})
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, []*GrepResult{
|
|
{
|
|
Filename: "java-hello/main.java",
|
|
LineNumbers: []int{3},
|
|
LineCodes: []string{" public static void main(String[] arg"},
|
|
},
|
|
}, res)
|
|
|
|
res, err = GrepSearch(t.Context(), repo, "no-such-content", GrepOptions{})
|
|
assert.NoError(t, err)
|
|
assert.Empty(t, res)
|
|
|
|
res, err = GrepSearch(t.Context(), &Repository{RepositoryBase: RepositoryBase{Path: "no-such-git-repo"}}, "no-such-content", GrepOptions{})
|
|
assert.Error(t, err)
|
|
assert.Empty(t, res)
|
|
}
|