summaryrefslogtreecommitdiff
path: root/revparse_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'revparse_test.go')
-rw-r--r--revparse_test.go58
1 files changed, 58 insertions, 0 deletions
diff --git a/revparse_test.go b/revparse_test.go
new file mode 100644
index 0000000..c046a20
--- /dev/null
+++ b/revparse_test.go
@@ -0,0 +1,58 @@
+package git
+
+import (
+ "os"
+ "testing"
+)
+
+func TestRevparse(t *testing.T) {
+ repo := createTestRepo(t)
+ defer os.RemoveAll(repo.Workdir())
+
+ commitId, _ := seedTestRepo(t, repo)
+
+ revSpec, err := repo.Revparse("HEAD")
+ checkFatal(t, err)
+
+ checkObject(t, revSpec.From(), commitId)
+}
+
+func TestRevparseSingle(t *testing.T) {
+ repo := createTestRepo(t)
+ defer os.RemoveAll(repo.Workdir())
+
+ commitId, _ := seedTestRepo(t, repo)
+
+ obj, err := repo.RevparseSingle("HEAD")
+ checkFatal(t, err)
+
+ checkObject(t, obj, commitId)
+}
+
+func TestRevparseExt(t *testing.T) {
+ repo := createTestRepo(t)
+ defer os.RemoveAll(repo.Workdir())
+
+ _, treeId := seedTestRepo(t, repo)
+
+ ref, err := repo.CreateReference("refs/heads/master", treeId, true, nil, "")
+ checkFatal(t, err)
+
+ obj, ref, err := repo.RevparseExt("master")
+ checkFatal(t, err)
+
+ checkObject(t, obj, treeId)
+ if ref == nil {
+ t.Fatalf("bad reference")
+ }
+}
+
+func checkObject(t *testing.T, obj Object, id *Oid) {
+ if obj == nil {
+ t.Fatalf("bad object")
+ }
+
+ if !obj.Id().Equal(id) {
+ t.Fatalf("bad object, expected %s, got %s", id.String(), obj.Id().String())
+ }
+}