Add test and runtime.KeepAlive()
This commit is contained in:
parent
627447092f
commit
a140f2310f
19
merge.go
19
merge.go
|
@ -58,7 +58,9 @@ func (r *Repository) AnnotatedCommitFromFetchHead(branchName string, remoteURL s
|
||||||
return nil, MakeGitError(ret)
|
return nil, MakeGitError(ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
return newAnnotatedCommitFromC(ptr, r), nil
|
annotatedCommit := newAnnotatedCommitFromC(ptr, r)
|
||||||
|
runtime.KeepAlive(r)
|
||||||
|
return annotatedCommit, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Repository) LookupAnnotatedCommit(oid *Oid) (*AnnotatedCommit, error) {
|
func (r *Repository) LookupAnnotatedCommit(oid *Oid) (*AnnotatedCommit, error) {
|
||||||
|
@ -71,7 +73,10 @@ func (r *Repository) LookupAnnotatedCommit(oid *Oid) (*AnnotatedCommit, error) {
|
||||||
if ret < 0 {
|
if ret < 0 {
|
||||||
return nil, MakeGitError(ret)
|
return nil, MakeGitError(ret)
|
||||||
}
|
}
|
||||||
return newAnnotatedCommitFromC(ptr, r), nil
|
|
||||||
|
annotatedCommit := newAnnotatedCommitFromC(ptr, r)
|
||||||
|
runtime.KeepAlive(r)
|
||||||
|
return annotatedCommit, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Repository) AnnotatedCommitFromRef(ref *Reference) (*AnnotatedCommit, error) {
|
func (r *Repository) AnnotatedCommitFromRef(ref *Reference) (*AnnotatedCommit, error) {
|
||||||
|
@ -85,7 +90,10 @@ func (r *Repository) AnnotatedCommitFromRef(ref *Reference) (*AnnotatedCommit, e
|
||||||
if ret < 0 {
|
if ret < 0 {
|
||||||
return nil, MakeGitError(ret)
|
return nil, MakeGitError(ret)
|
||||||
}
|
}
|
||||||
return newAnnotatedCommitFromC(ptr, r), nil
|
|
||||||
|
annotatedCommit := newAnnotatedCommitFromC(ptr, r)
|
||||||
|
runtime.KeepAlive(r)
|
||||||
|
return annotatedCommit, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Repository) AnnotatedCommitFromRevspec(spec string) (*AnnotatedCommit, error) {
|
func (r *Repository) AnnotatedCommitFromRevspec(spec string) (*AnnotatedCommit, error) {
|
||||||
|
@ -101,7 +109,10 @@ func (r *Repository) AnnotatedCommitFromRevspec(spec string) (*AnnotatedCommit,
|
||||||
if ret < 0 {
|
if ret < 0 {
|
||||||
return nil, MakeGitError(ret)
|
return nil, MakeGitError(ret)
|
||||||
}
|
}
|
||||||
return newAnnotatedCommitFromC(ptr, r), nil
|
|
||||||
|
annotatedCommit := newAnnotatedCommitFromC(ptr, r)
|
||||||
|
runtime.KeepAlive(r)
|
||||||
|
return annotatedCommit, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type MergeTreeFlag int
|
type MergeTreeFlag int
|
||||||
|
|
|
@ -5,6 +5,22 @@ import (
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestAnnotatedCommitFromRevspec(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
repo := createTestRepo(t)
|
||||||
|
defer cleanupTestRepo(t, repo)
|
||||||
|
|
||||||
|
seedTestRepo(t, repo)
|
||||||
|
|
||||||
|
mergeHead, err := repo.AnnotatedCommitFromRevspec("refs/heads/master")
|
||||||
|
checkFatal(t, err)
|
||||||
|
|
||||||
|
expectedId := "473bf778b67b6d53e2ab289e0f1a2e8addef2fc2"
|
||||||
|
if mergeHead.Id().String() != expectedId {
|
||||||
|
t.Errorf("mergeHead.Id() = %v, want %v", mergeHead.Id(), expectedId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestMergeWithSelf(t *testing.T) {
|
func TestMergeWithSelf(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
repo := createTestRepo(t)
|
repo := createTestRepo(t)
|
||||||
|
@ -18,6 +34,11 @@ func TestMergeWithSelf(t *testing.T) {
|
||||||
mergeHead, err := repo.AnnotatedCommitFromRef(master)
|
mergeHead, err := repo.AnnotatedCommitFromRef(master)
|
||||||
checkFatal(t, err)
|
checkFatal(t, err)
|
||||||
|
|
||||||
|
expectedId := "473bf778b67b6d53e2ab289e0f1a2e8addef2fc2"
|
||||||
|
if mergeHead.Id().String() != expectedId {
|
||||||
|
t.Errorf("mergeHead.Id() = %v, want %v", mergeHead.Id(), expectedId)
|
||||||
|
}
|
||||||
|
|
||||||
mergeHeads := make([]*AnnotatedCommit, 1)
|
mergeHeads := make([]*AnnotatedCommit, 1)
|
||||||
mergeHeads[0] = mergeHead
|
mergeHeads[0] = mergeHead
|
||||||
err = repo.Merge(mergeHeads, nil, nil)
|
err = repo.Merge(mergeHeads, nil, nil)
|
||||||
|
|
Loading…
Reference in New Issue