diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2024-02-17 10:47:18 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-17 02:47:18 +0000 |
commit | 906a722fca7ed701f814fac584fde1e672fb156b (patch) | |
tree | 02591a6c08cf77046e0197a422703518512f1508 /modules/git/git_test.go | |
parent | 8cd83ff3916e944f317ce00510221dad9f8b2766 (diff) | |
download | gitea-906a722fca7ed701f814fac584fde1e672fb156b.tar.gz gitea-906a722fca7ed701f814fac584fde1e672fb156b.zip |
Refactor git version functions and check compatibility (#29155) (#29157)
Backport #29155 with an extra change: tolerate the git 2.43.1 GIT_FLUSH
bug in Gitea 1.21.x, more details in the comment of repo_attribute.go
Manually tested with git 2.43.1 and an old git (2.39.2)
Diffstat (limited to 'modules/git/git_test.go')
-rw-r--r-- | modules/git/git_test.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/modules/git/git_test.go b/modules/git/git_test.go index 37ab669ea4..fc92bebe04 100644 --- a/modules/git/git_test.go +++ b/modules/git/git_test.go @@ -13,6 +13,7 @@ import ( "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/util" + "github.com/hashicorp/go-version" "github.com/stretchr/testify/assert" ) @@ -93,3 +94,25 @@ func TestSyncConfig(t *testing.T) { assert.True(t, gitConfigContains("[sync-test]")) assert.True(t, gitConfigContains("cfg-key-a = CfgValA")) } + +func TestParseGitVersion(t *testing.T) { + v, err := parseGitVersionLine("git version 2.29.3") + assert.NoError(t, err) + assert.Equal(t, "2.29.3", v.String()) + + v, err = parseGitVersionLine("git version 2.29.3.windows.1") + assert.NoError(t, err) + assert.Equal(t, "2.29.3", v.String()) + + _, err = parseGitVersionLine("git version") + assert.Error(t, err) + + _, err = parseGitVersionLine("git version windows") + assert.Error(t, err) +} + +func TestCheckGitVersionCompatibility(t *testing.T) { + assert.NoError(t, checkGitVersionCompatibility(version.Must(version.NewVersion("2.43.0")))) + assert.ErrorContains(t, checkGitVersionCompatibility(version.Must(version.NewVersion("2.43.1"))), "regression bug of GIT_FLUSH") + assert.NoError(t, checkGitVersionCompatibility(version.Must(version.NewVersion("2.43.2")))) +} |