summaryrefslogtreecommitdiff
path: root/merge_test.go
diff options
context:
space:
mode:
authorJesse Ezell <[email protected]>2014-03-26 14:42:01 -0700
committerJesse Ezell <[email protected]>2014-03-26 14:42:01 -0700
commit0b48ba2224ec41dfc10a379ce1b7bb86441cc432 (patch)
treed631cd75cb095a32e51daa70389662899f78cc01 /merge_test.go
parenteff3a8b4d04349a5462f54c31d6f39213cecef71 (diff)
Merge analysis and merge file
Diffstat (limited to 'merge_test.go')
-rw-r--r--merge_test.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/merge_test.go b/merge_test.go
index 1c0606e..3f9dc33 100644
--- a/merge_test.go
+++ b/merge_test.go
@@ -20,3 +20,56 @@ func TestMergeWithSelf(t *testing.T) {
err = repo.Merge(mergeHeads, nil, nil)
checkFatal(t, err)
}
+
+func TestMergeAnalysisWithSelf(t *testing.T) {
+
+ repo := createTestRepo(t)
+ seedTestRepo(t, repo)
+
+ master, err := repo.LookupReference("refs/heads/master")
+ checkFatal(t, err)
+
+ mergeHead, err := repo.MergeHeadFromRef(master)
+ checkFatal(t, err)
+
+ mergeHeads := make([]*MergeHead, 1)
+ mergeHeads[0] = mergeHead
+ a, err := repo.MergeAnalysis(mergeHeads)
+ checkFatal(t, err)
+
+ if a != MergeAnalysisUpToDate {
+ t.Fatalf("Expected up to date merge, not %v", a)
+ }
+}
+
+func TestMergeSameFile(t *testing.T) {
+
+ file := MergeFileInput{
+ Path: "test",
+ Mode: 33188,
+ Contents: []byte("hello world"),
+ }
+
+ result, err := MergeFile(file, file, file, nil)
+ checkFatal(t, err)
+ if !result.Automergeable {
+ t.Fatal("expected automergeable")
+ }
+ if result.Path != file.Path {
+ t.Fatal("path was incorrect")
+ }
+ if result.Mode != file.Mode {
+ t.Fatal("mode was incorrect")
+ }
+
+ compareBytes(t, file.Contents, result.Contents)
+
+}
+
+func compareBytes(t *testing.T, expected, actual []byte) {
+ for i, v := range expected {
+ if actual[i] != v {
+ t.Fatalf("Bad bytes")
+ }
+ }
+}