diff options
| author | Carlos Martín Nieto <[email protected]> | 2015-08-04 14:57:10 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <[email protected]> | 2015-08-04 14:59:10 +0200 |
| commit | 47949510f1f5ea851601f323ac243a9079fc0e27 (patch) | |
| tree | 32471a8da14566e788a8f51afcc833c5812b2047 /merge_test.go | |
| parent | 5d989f2caddad21d0296cd9a6a83cabce88858d5 (diff) | |
| parent | ed62fda34df271875320f72f36a870b78248ece2 (diff) | |
Merge remote-tracking branch 'origin/master' into next
Diffstat (limited to 'merge_test.go')
| -rw-r--r-- | merge_test.go | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/merge_test.go b/merge_test.go index 5c62f5c..ad01319 100644 --- a/merge_test.go +++ b/merge_test.go @@ -2,6 +2,7 @@ package git import ( "testing" + "time" ) func TestMergeWithSelf(t *testing.T) { @@ -88,6 +89,64 @@ func TestMergeTreesWithoutAncestor(t *testing.T) { } +func appendCommit(t *testing.T, repo *Repository) (*Oid, *Oid) { + loc, err := time.LoadLocation("Europe/Berlin") + checkFatal(t, err) + sig := &Signature{ + Name: "Rand Om Hacker", + Email: "[email protected]", + When: time.Date(2013, 03, 06, 14, 30, 0, 0, loc), + } + + idx, err := repo.Index() + checkFatal(t, err) + err = idx.AddByPath("README") + checkFatal(t, err) + treeId, err := idx.WriteTree() + checkFatal(t, err) + + message := "This is another commit\n" + tree, err := repo.LookupTree(treeId) + checkFatal(t, err) + + ref, err := repo.References.Lookup("HEAD") + checkFatal(t, err) + + parent, err := ref.Peel(ObjectCommit) + checkFatal(t, err) + + commitId, err := repo.CreateCommit("HEAD", sig, sig, message, tree, parent.(*Commit)) + checkFatal(t, err) + + return commitId, treeId +} + +func TestMergeBase(t *testing.T) { + repo := createTestRepo(t) + defer cleanupTestRepo(t, repo) + + commitAId, _ := seedTestRepo(t, repo) + commitBId, _ := appendCommit(t, repo) + + mergeBase, err := repo.MergeBase(commitAId, commitBId) + checkFatal(t, err) + + if mergeBase.Cmp(commitAId) != 0 { + t.Fatalf("unexpected merge base") + } + + mergeBases, err := repo.MergeBases(commitAId, commitBId) + checkFatal(t, err) + + if len(mergeBases) != 1 { + t.Fatalf("expected merge bases len to be 1, got %v", len(mergeBases)) + } + + if mergeBases[0].Cmp(commitAId) != 0 { + t.Fatalf("unexpected merge base") + } +} + func compareBytes(t *testing.T, expected, actual []byte) { for i, v := range expected { if actual[i] != v { |
