summaryrefslogtreecommitdiffstats
path: root/modules/git/git_test.go
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2024-02-17 10:47:18 +0800
committerGitHub <noreply@github.com>2024-02-17 02:47:18 +0000
commit906a722fca7ed701f814fac584fde1e672fb156b (patch)
tree02591a6c08cf77046e0197a422703518512f1508 /modules/git/git_test.go
parent8cd83ff3916e944f317ce00510221dad9f8b2766 (diff)
downloadgitea-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.go23
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"))))
+}