gitea源码

git_test.go 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // Copyright 2019 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package git
  4. import (
  5. "fmt"
  6. "os"
  7. "testing"
  8. "code.gitea.io/gitea/modules/setting"
  9. "code.gitea.io/gitea/modules/tempdir"
  10. "github.com/hashicorp/go-version"
  11. "github.com/stretchr/testify/assert"
  12. )
  13. func testRun(m *testing.M) error {
  14. gitHomePath, cleanup, err := tempdir.OsTempDir("gitea-test").MkdirTempRandom("git-home")
  15. if err != nil {
  16. return fmt.Errorf("unable to create temp dir: %w", err)
  17. }
  18. defer cleanup()
  19. setting.Git.HomePath = gitHomePath
  20. if err = InitFull(); err != nil {
  21. return fmt.Errorf("failed to call Init: %w", err)
  22. }
  23. exitCode := m.Run()
  24. if exitCode != 0 {
  25. return fmt.Errorf("run test failed, ExitCode=%d", exitCode)
  26. }
  27. return nil
  28. }
  29. func TestMain(m *testing.M) {
  30. if err := testRun(m); err != nil {
  31. _, _ = fmt.Fprintf(os.Stderr, "Test failed: %v", err)
  32. os.Exit(1)
  33. }
  34. }
  35. func TestParseGitVersion(t *testing.T) {
  36. v, err := parseGitVersionLine("git version 2.29.3")
  37. assert.NoError(t, err)
  38. assert.Equal(t, "2.29.3", v.String())
  39. v, err = parseGitVersionLine("git version 2.29.3.windows.1")
  40. assert.NoError(t, err)
  41. assert.Equal(t, "2.29.3", v.String())
  42. _, err = parseGitVersionLine("git version")
  43. assert.Error(t, err)
  44. _, err = parseGitVersionLine("git version windows")
  45. assert.Error(t, err)
  46. }
  47. func TestCheckGitVersionCompatibility(t *testing.T) {
  48. assert.NoError(t, checkGitVersionCompatibility(version.Must(version.NewVersion("2.43.0"))))
  49. assert.ErrorContains(t, checkGitVersionCompatibility(version.Must(version.NewVersion("2.43.1"))), "regression bug of GIT_FLUSH")
  50. assert.NoError(t, checkGitVersionCompatibility(version.Must(version.NewVersion("2.43.2"))))
  51. }