aboutsummaryrefslogtreecommitdiffstats
path: root/modules/git/repo_compare_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/git/repo_compare_test.go')
-rw-r--r--modules/git/repo_compare_test.go76
1 files changed, 61 insertions, 15 deletions
diff --git a/modules/git/repo_compare_test.go b/modules/git/repo_compare_test.go
index 301e085aae..82d3257c0f 100644
--- a/modules/git/repo_compare_test.go
+++ b/modules/git/repo_compare_test.go
@@ -17,17 +17,33 @@ import (
func TestGetFormatPatch(t *testing.T) {
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare")
- clonedPath, err := cloneRepo(bareRepo1Path, testReposDir, "repo1_TestGetFormatPatch")
+ clonedPath, err := cloneRepo(bareRepo1Path, "repo1_TestGetFormatPatch")
+ if err != nil {
+ assert.NoError(t, err)
+ return
+ }
defer util.RemoveAll(clonedPath)
- assert.NoError(t, err)
+
repo, err := OpenRepository(clonedPath)
+ if err != nil {
+ assert.NoError(t, err)
+ return
+ }
defer repo.Close()
- assert.NoError(t, err)
+
rd := &bytes.Buffer{}
err = repo.GetPatch("8d92fc95^", "8d92fc95", rd)
- assert.NoError(t, err)
+ if err != nil {
+ assert.NoError(t, err)
+ return
+ }
+
patchb, err := io.ReadAll(rd)
- assert.NoError(t, err)
+ if err != nil {
+ assert.NoError(t, err)
+ return
+ }
+
patch := string(patchb)
assert.Regexp(t, "^From 8d92fc95", patch)
assert.Contains(t, patch, "Subject: [PATCH] Add file2.txt")
@@ -37,17 +53,25 @@ func TestReadPatch(t *testing.T) {
// Ensure we can read the patch files
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare")
repo, err := OpenRepository(bareRepo1Path)
+ if err != nil {
+ assert.NoError(t, err)
+ return
+ }
defer repo.Close()
- assert.NoError(t, err)
// This patch doesn't exist
noFile, err := repo.ReadPatchCommit(0)
assert.Error(t, err)
+
// This patch is an empty one (sometimes it's a 404)
noCommit, err := repo.ReadPatchCommit(1)
assert.Error(t, err)
+
// This patch is legit and should return a commit
oldCommit, err := repo.ReadPatchCommit(2)
- assert.NoError(t, err)
+ if err != nil {
+ assert.NoError(t, err)
+ return
+ }
assert.Empty(t, noFile)
assert.Empty(t, noCommit)
@@ -58,23 +82,45 @@ func TestReadPatch(t *testing.T) {
func TestReadWritePullHead(t *testing.T) {
// Ensure we can write SHA1 head corresponding to PR and open them
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare")
- repo, err := OpenRepository(bareRepo1Path)
- assert.NoError(t, err)
+
+ // As we are writing we should clone the repository first
+ clonedPath, err := cloneRepo(bareRepo1Path, "TestReadWritePullHead")
+ if err != nil {
+ assert.NoError(t, err)
+ return
+ }
+ defer util.RemoveAll(clonedPath)
+
+ repo, err := OpenRepository(clonedPath)
+ if err != nil {
+ assert.NoError(t, err)
+ return
+ }
defer repo.Close()
+
// Try to open non-existing Pull
_, err = repo.GetRefCommitID(PullPrefix + "0/head")
assert.Error(t, err)
+
// Write a fake sha1 with only 40 zeros
newCommit := "feaf4ba6bc635fec442f46ddd4512416ec43c2c2"
err = repo.SetReference(PullPrefix+"1/head", newCommit)
- assert.NoError(t, err)
- // Remove file after the test
- defer func() {
- _ = repo.RemoveReference(PullPrefix + "1/head")
- }()
+ if err != nil {
+ assert.NoError(t, err)
+ return
+ }
+
// Read the file created
headContents, err := repo.GetRefCommitID(PullPrefix + "1/head")
- assert.NoError(t, err)
+ if err != nil {
+ assert.NoError(t, err)
+ return
+ }
+
assert.Len(t, string(headContents), 40)
assert.True(t, string(headContents) == newCommit)
+
+ // Remove file after the test
+ err = repo.RemoveReference(PullPrefix + "1/head")
+ assert.NoError(t, err)
}